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