原創|使用教程|編輯:我只采一朵|2018-01-11 10:42:37.000|閱讀 638 次
概述:如果你以預覽模式手動設置首選項,使用這些保存選項并不困難。但是如何使用代碼來實現自動保存呢?
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在預覽模式下,你不僅可以訪問報表的導出,還可以訪問一些用于保存報表的選項,例如Box、DropBox、GoogleDrive等。在“保存”菜單中突出顯示了一個特殊部分,其中包含用于將報表保存到各種云服務的選項:
我們可用的有:
后一個選項使用FastCloud云服務來存儲和構建報表。XMPP協議將報表的鏈接發送給jabber客戶端。如果你以預覽模式手動設置首選項,使用這些保存選項并不困難。但是如何使用代碼來實現自動保存呢?
本文將詳細介紹這個解決方案。
除了FastCloud之外,所有的云服務都使用OAuth類型的授權。這是一種授權協議,允許你在不使用服務中的真實登錄名和密碼的情況下為應用程序提供對云服務的訪問權限。但是,你可以限制訪問權限。你將得到一個標識符和一個密鑰,你需要使用它來授權。
要獲取客戶端ID和客戶端密鑰,你需要創建應用程序并將其注冊到云服務的OAuth服務器上。
因此,我們需要至少指定兩個參數來將報表保存到云服務。我們按照順序一一講解。
1. 對于Box服務:
首先,你需要添加FastReport庫:
使用FastReport;我們創建一個ClientInfo類的實例,它將包含授權信息:
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret");
ClientInfo 可以接受三個參數:ClientName、ClientId和ClientSecret。在我們的例子中,ClientId和ClientSecret是必需的。然后創建一個GoogleDrive客戶端來保存報表:
FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo);
創建一個報表對象并將報表加載到該對象中:
Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
如果要以非本地fpx格式(報表預覽格式)保存報表,則需要創建一個導出實例:
FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport();
使用客戶端保存報表:
client.SaveReport(report, pdf);
如果以fpx格式保存報表,則可以傳遞null而不是第二個參數:
client.SaveReport(report, null);
2. 對于DropBox則略有不同。在OAuth中,你也可以使用訪問令牌。這是作為成功授權的結果而生成的訪問密鑰。通過這樣一個令牌,我們似乎恢復了以前的授權。為DropBox創建一個客戶端,并以文本格式傳遞訪問令牌:
FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken");
代理設置:
drop.ProxySettings.Server = ""; drop.ProxySettings.Port = 999; drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; drop.ProxySettings.Username = "Username"; drop.ProxySettings.Password = "Password";
接下來,如前例所示:
Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
保存報表:
drop.SaveReport(report, null);
3. 對于GoogleDrive:
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo);
代理設置,如有必要的話:
client.ProxySettings.Server = ""; client.ProxySettings.Port = 999; client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; client.ProxySettings.Username = "Username"; client.ProxySettings.Password = "Password";
創建一個報表:
Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
創建導出:
FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport();
保存報表:
client.SaveReport(report, pdf);
4. 對于OneDrive:
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient one = new FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient(clientInfo);
代理設置,如有必要的話:
one.ProxySettings.Server = ""; one.ProxySettings.Port = 999; one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; one.ProxySettings.Username = "Username"; one.ProxySettings.Password = "Password";
創建一個報表:
Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); one.SaveReport(report, null);
5. 對于FastCloud則有所不同。它不使用OAuth協議。授權是通過電子郵件地址和密碼進行的。創建一個FastCloud客戶端:
FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient();
分配一個令牌。要生成令牌,請使用 GetAccessToken
方法:
fast.AccessToken = fast.GetAccessToken("email@mail.com", "password");
創建一個導出的實例:
FastReport.Export.RichText.RTFExport rich = new FastReport.Export.RichText.RTFExport(); Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); fast.SaveReport(report, rich);
6. 將報表發送給Jabber(XMPP)。這之前,我們需要創建一個xmpp客戶端:
FastReport.Messaging.Xmpp.XmppMessenger messenger = new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp");
如果你需要配置代理服務器:
messenger.ProxySettings.Server = "server"; messenger.ProxySettings.Port = 999; messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; messenger.ProxySettings.Username = "username"; messenger.ProxySettings.Password = "password";
然后(或者在之前)創建一個報表對象:
Report report = new Report(); report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
我們把它傳遞給xmpp客戶端:
messenger.SendReport(report, null);
完成此代碼后,我們向FastCloud云服務發送報表。與此同時,jabber用戶收到一條帶有報表鏈接的信息。xmpp客戶端中的鏈接如下所示:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn