Speichern des Berichts in Clouds aus dem Code der Anwendung

2017-08-22

Bei der Vorschau des Berichts sind nicht Exports-Features verfügbar, sondern auch einige Varianten vom Speichern, wie Box, DropBox, GoogleDrive usw. Im Menü „Save“ gibt es eine spezielle Sektion mit den verschiedenen Clouds-Services:

 

Für uns sind verfügbar:

1)      Box;

2)      Dropbox;

3)      FastCloud;

4)      GoogleDrive;

5)      OneDrive;

6)      XMPP.

Für letzte Variante verwendet man den Service FastCloud für die Erstellung und das Speichern des Berichts. Durch XMPP wird der Link auf den Bericht in den Jabber-Client wiedergegeben. Bei der Verwendung dieser zwei Varianten trifft man keine Schwierigkeiten, wenn man im Vorschau die Einstellungen mit der Hand eingibt. Aber was zu machen, wenn man das automatisieren soll. Ganau, mit Hilfe des Codes?

Darum geht’s in diesem Artikel.

Fast alle Cloud-Services (ausgenommen FastCloud) verwenden den Autorisations-Typ OAuth. Dieses Protokoll ermöglicht, der Anwendung ohne Verwendung von reellen Login und Passwort einen Zugang zum Cloud-Service zu geben. Die Zugangsrechte können auch in diesem Fall beschränkt werden. Die Anwendung bekommt eine Identifikationsnummer und einen Secret-Schlüssel, die weiter bei der Autorisation verwendet werden können. 

Um den Identifikationswort und den Secret-Schlüssel zu bekommen, brauchen Sie eine Anwendung zu erstellen und sie auf dem OAuth-Server Ihres Clouds Services zu registrieren.  

Auf diese Weise brauchen wir mindestens zwei Parameter fürs Berichts Speichern ins Cloud-Service. Und ein bisschen deutlicher.

1)      Fürs Service Box:

Zuerst die Bibliothek FastReport hinzufügen:

using FastReport;

Wir erstellen weiter ein Exemplar der Classe ClientInfo, die Informationen für Autorisation enthält.

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

ClientInfo hat drei Parameter: ClientName, ClientId und ClientSecret. In unserem Fall brauchen wir ClientId und ClientSecret. Weiter erstellen wir einen GoogleDrive Client furs Berichts Speichern:

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

Wir erstellen ein Berichts Exemplar und laden dorthin den Bericht herunter:

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

Wenn es notwendig ist, den Bericht in einem anderen Format als fpx (das Format für die Vorschau-Regime) zu speichern, dann braucht man ein Exports-Exemplar zu machen:

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

 Starten wir das Speichern des Berichts:

1
client.SaveReport(report, pdf);

Если вы сохраняете отчет в формате fpx, вместо второго параметра можно передать null Fürs Speichern des Berichts in fpx-Format braucht man den zweiten Parameter als null einzusetzen:

1
 client.SaveReport(report, null);

 2)  Für DropBox sieht alles ein bisschen anderes aus. In Rahmen von OAuth verwendet man nur access token. Dieser ist ein Zugangsschlüssel, der nach der erfolgsreichen Autorisation generiert wurde. Nach der Übergabe dieser Token-Datei herstellen wir vorherige Autorisation wieder. Wir erstellen einen Client für Dropbox und senden an ihn access token im Text-Format:

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

Proxy Einstellungen:

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";

Weiter, wie im vorigen Beispiel:

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

 Bericht speichern:

1
 drop.SaveReport(report, null);

 3)  Für 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 Einstellungen, beim Bedarf:

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";

Bericht erstellen:

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

Export erstellen:

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

Bericht speichern:                    

1
client.SaveReport(report, pdf);

 4)  Für 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);

Auch Proxy Einstellungen:         

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";

Bericht erstellen:

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) Für FastCloud gibt es auch einen Unterschied. Hier verwendet man kein Protokoll OAuth. Autorisation führt man mit der Postadresse und mit dem Passwort. Wir erstellen auch einen Client FastCloud:

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

Wir erstellen token mit Hilfe von Methode GetAccessToken:

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

 Weiter ein Exports-Exemplar erstellen:

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)  Den Bericht in Jabber(XMPP) senden. Vorher erstellen wir einen xmpp Client:

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

 Proxy Einstellungen:

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";

 Und ein Bericht-Exemplar erstellen:

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

 Und es an xmpp Client senden:

1
messenger.SendReport(report, null);

Nach dem Durchführen dieses Codes senden wir den Bericht in den Cloud Service FastCloud und die Nachricht mit dem Link auf den Bericht an jabber-User. Der Link in xmpp-Client sieht so aus:

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

20. November 2024

Lokalisierung und Ändern von Sprachen in FastReport VCL

FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern.
1. November 2024

Neue Funktionen des FastReport VCL Berichtseditors

Wir betrachten die neuen Funktionen des Berichtseditors: Hilfslinien, Hervorhebung von sich schneidenden Objekten, aktualisierte Berichts- und Datenbäume.
30. Oktober 2024

Verwendung von Stilen beim Erstellen von Berichten in FastReport VCL

Dieser Artikel beschreibt eine der neuen Funktionen von FastReport VCL - die Verwendung von Stilen und Stilseiten.
Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2024 Fast Reports Inc.