如何用代码将 表自动保存到云端

如果你以预览模式手动设置首选项,使用这些保存选项并不困难。但是如何使用代码来实现自动保存呢?

在预览模式下,你不仅可以访问 表的导出,还可以访问一些用于保存 表的选项,例如Box、DropBox、GoogleDrive等。在“保存”菜单中突出显示了一个特殊部分,其中包含用于将 表保存到各种云服务的选项:

如何用代码将 表自动保存到云端

我们可用的有:

  • Box
  • Dropbox
  • FastCloud
  • GoogleDrive
  • OneDrive
  • XMPP

后一个选项使用FastCloud云服务来存储和构建 表。XMPP协议将 表的链接发送给jabber客户端。如果你以预览模式手动设置首选项,使用这些保存选项并不困难。但是如何使用代码来实现自动保存呢/p>

除了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)FastReportsFastReport.NetDemosReportsText.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)FastReportsFastReport.NetDemosReportsText.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)FastReportsFastReport.NetDemosReportsText.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)FastReportsFastReport.NetDemosReportsText.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)FastReportsFastReport.NetDemosReportsText.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)FastReportsFastReport.NetDemosReportsText.frx");

我们把它传递给xmpp客户端:

messenger.SendReport(report, null);

完成此代码后,我们向FastCloud云服务发送 表。与此同时,jabber用户收到一条带有 表链接的信息。xmpp客户端中的链接如下所示:

https://cloud.fast-report.com/reports/3da0fcd3f76ac1f6d87c21df85f5d5e2

产品介绍 | 下载试用 | 优惠活动 | 在线客服 | 联系Elyn

 

推荐阅读
  • FastReport VCL 表控件开发者手册
  • FastReport Online Designer中文手册
  • Fastreport.Net教程2016
  • Fastreport.Net用户手册
  • FastReport.Net教程2017(持续更新中···)
  • FastReport Online Designer教程2017(持续更新中···)
  • 表教程2017(持续更新中···)
  • FastReport.Net v2018.1版本更新已经发布!

FastReport 2018 最新版本下载
标签: 表专家 表解决方案 表.NET 表控件云服务 表设计云端 表引擎

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月8日
下一篇 2018年1月8日

相关推荐

发表回复

登录后才能评论