Saving report in cloud services from a user application code

2017-08-22

You are not only available report exports, but also some options for saving the report, for example, into Box, into DropBox, into Google Drives and others. In the menu "Save" allocated a special section with options for saving the report in a variety of cloud services:

 

We are available:

1)      Box;

2)      Dropbox;

3)      FastCloud;

4)      GoogleDrive;

5)      OneDrive;

6)      XMPP.

The latter option uses the FastCloud cloud service for storing and building reports. The XMPP protocol sends a link to the report to the jabber client. Using these save options is not difficult if you manually set the preferences in preview mode. But how to automate the process of saving, using code?

This will be discussed in this article.

With the exception of FastCloud, all cloud services use OAuth-type authorization. This is an authorization protocol that allows you, without using a real login and password from the service, to give the application access to the cloud service. However, you can restrict access rights. You will be given an identifier and a secret key that you need to use for authorization.

To get the Client Id and the Client Secret, you need to create the application and register it on the OAuth server of your cloud service.

Therefore, we need to specify at least two parameters to save the report to the cloud service. Let’s consider in order.

1)      For the Box service:

First of all, you need to add the FastReport library:

using FastReport;

We create an instance of the ClientInfo class, which will contain information for authorization: 

1
2
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = 
new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret");

 ClientInfo can take three parameters: ClientName, ClientId and ClientSecret. In our case, ClientId and ClientSecret are required. Then create a GoogleDrive client to save the report:

1
2
FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = 
new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo);

 Create a report object and load the report into it:

1
2
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

 If you want to save the report in a format other than native fpx (the format of the report preview), you need to create an export instance:

1
 FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport();

 Save the report using the client:

1
client.SaveReport(report, pdf);

 If you save a report in the fpx format, you can pass null instead of the second parameter:

1
 client.SaveReport(report, null);

 2)  For the DropBox is slightly different. Within OAuth, you can also use access token. This is an access key that is generated as a result of successful authorization. Passing such a token, we seem to restore the previous authorization. Create a client for the DropBox and pass it access token in text format:

1
2
FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = 
new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken");

 Proxy settings:

1
2
3
4
5
drop.ProxySettings.Server = "";
drop.ProxySettings.Port = 999; 
drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
drop.ProxySettings.Username = "Username";
drop.ProxySettings.Password = "Password";

 Next, as in the previous example:

1
2
 Report report = new Report();
 report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

 Save the report:

1
 drop.SaveReport(report, null);

 3)  For the GoogleDrive:

1
2
3
FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = 
new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret");
GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo);

 Proxy settings if needed:

1
2
3
4
5
 client.ProxySettings.Server = "";
 client.ProxySettings.Port = 999; 
 client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
 client.ProxySettings.Username = "Username";
 client.ProxySettings.Password = "Password";

 Create a report:

1
2
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

 Create export:

1
FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport();

 Save the report:           

1
client.SaveReport(report, pdf);

 4)  For the OneDrive:

1
2
3
4
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);

 Proxy settings if needed:            

1
2
3
4
5
one.ProxySettings.Server = "";
 one.ProxySettings.Port = 999; 
 one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
 one.ProxySettings.Username = "Username";
 one.ProxySettings.Password = "Password";

 Create a report:

1
2
3
Report report = new Report();
report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");
one.SaveReport(report, null);

 5) For FastCloud there are differences. It does not use the OAuth protocol. Authorization is carried out by email address and password. Create a FastCloud client:

1
2
FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = 
new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient();

 Assign a token. To generate a token, use the GetAccessToken method: 

1
fast.AccessToken = fast.GetAccessToken("email@mail.com", "password");

  Create an instance of the export:

1
2
3
4
5
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)  Send the report to Jabber (XMPP). Previously, we need to create an xmpp client:

1
2
FastReport.Messaging.Xmpp.XmppMessenger messenger = 
new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp");

 If you need to configure Proxy:

1
2
3
4
5
messenger.ProxySettings.Server = "server";
messenger.ProxySettings.Port = 999;
messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http;
messenger.ProxySettings.Username = "username";
messenger.ProxySettings.Password = "password";

 Then, or before, create a report object:

1
2
Report report = new Report();
report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx");

 And we pass it to xmpp client:

1
messenger.SendReport(report, null);

 Having executed this code, we send the report to the cloud service FastCloud. At the same time, the jabber user receives a message with a link to the report. The link in the xmpp client looks like this:

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

.NET .NET FastReport FastReport Web Storage Web Storage
October 13, 2025

New Features for Exporting Images to Microsoft Word in FastReport .NET

In the latest version of FastReport .NET we have added new image export features. Now you can independently adjust the balance between the quality and size of the final document.
October 13, 2025

How to Use Excel Formulas in a Report When Exporting to MS Excel

Starting with version FastReport .NET 2026.1, it is now possible to export formulas to Microsoft Excel. It is important to set up formula exports correctly and follow the syntax.
September 30, 2025

How to Install the FastReport .NET Report Designer with Pre-installed Plugins

Read the article as from version 2025.2.5 for FastReport .NET WinForms and FastReport .NET WEB allows you to install a report designer with all plugins without building dll files.

© 1998-2025 Fast Reports Inc.