Es ist heutzutage nun mal so, dass unsere Welt keinen Stillstand kennt und fast täglich neue Technologien auftauchen. Heutzutage ist es nicht mehr notwendig, die gesamte Infrastruktur in Ihrem Büro bereitzustellen, Personal einzustellen, das die Geräte überwacht, Probleme mit diesen Geräten und andere Schwierigkeiten löst.
Inzwischen gibt es immer mehr Services, die Cloud-Lösungen für Unternehmen anbieten, zum Beispiel die FastReportCloud. Unser Service erspart dem Entwicklungsteam unnötige Arbeit. Sie müssen nicht mehr darüber nachdenken, wie das Projekt bereitgestellt werden soll, wo es am besten und günstigsten ist, Server zu mieten oder zu kaufen und welche Technologien für die Bereitstellung verwendet werden sollen. All diese Herausforderungen haben wir bereits gelöst, Sie müssen diese Lösungen nur noch nutzen.
In diesem Artikel zeigen wir Ihnen anhand eines Beispiels, wie Sie mit FastReport Cloud SDK Berichte erstellen und in ein beliebiges Format exportieren können.
Zunächst erstellen Sie ein Projekt und fügen Sie das Nuget-Paket FastReport.Cloud.SDK.Web hinzu. Mit diesem Packet können Sie bequem mit der FastReport Cloud kommunizieren, ohne eine API zu verwenden.
Sie benötigen auch eine Berichtsvorlage. In diesem Beispiel wird Box.frx aus unserer Demo verwendet:
Nachdem Sie das Projekt erstellt und alle erforderlichen Abhängigkeiten hinzugefügt haben, können Sie mit der Beispielanalyse fortfahren.
Ganz am Anfang müssen Sie einen API-Schlüssel im FastReport Cloud-Arbeitsbereich erstellen; folgen Sie dazu dem Link https://fastreport.cloud/
Klicken Sie auf die Registerkarte mit API-Schlüsseln und erstellen Sie einen neuen Schlüssel. Wenn der Schlüssel bereits vorhanden ist, können Sie ihn einfach kopieren, indem Sie mit der rechten Maustaste darauf klicken und die entsprechende Aktion in der Dropdown-Liste auswählen.
Nachdem Sie den API-Schlüssel erstellt haben, gehen Sie zur Anwendung zurück. Schreiben Sie den Schlüssel in eine separate Variable wie im folgenden Beispiel:
private const string ApiKey = "your API key";
Als nächstes müssen Sie die Hauptobjekte erstellen, die im Programm verwendet werden:
var httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("https://fastreport.cloud"); httpClient.DefaultRequestHeaders.Authorization = new FastReportCloudApiKeyHeader(ApiKey); var subscriptions = new SubscriptionsClient(httpClient); var rpClientTemplates = new TemplatesClient(httpClient); var rpClientExports = new ExportsClient(httpClient); var downloadClient = new DownloadClient(httpClient); var subscription = (await subscriptions.GetSubscriptionsAsync(0, 10)).Subscriptions.First(); var templateFolder = subscription.TemplatesFolder.FolderId; var exportFolder = subscription.ExportsFolder.FolderId;
Danach gehen Sie zum Erstellen eines Berichts für die Cloud über. Sie können es wie folgt machen:
TemplateCreateVM templateCreateVM = new TemplateCreateVM() { Name = "box.frx", Content = Convert.FromBase64String(TestData.BoxReport) //frx-Datei im Byte-Format übertragen };
Im obigen Beispiel haben wir bereits einen Bericht im Byte-Format. Wenn Sie eine Datei im frx-Format haben, können Sie dieses Beispiel verwenden:
TemplateCreateVM templateCreateVM = new TemplateCreateVM() { Name = "box.frx", Content = File.ReadAllBytes("path to report") //frx-Datei im Byte-Format in den Pfad übertragen };
Laden Sie das TemplateCreateVM-Objekt zusammen mit dem Bericht in Ihren FastReport.Cloud-Arbeitsbereich:
TemplateVM uploadedFile = await rpClientTemplates.UploadFileAsync(templateFolder, templateCreateVM);
Exportieren Sie nun den Bericht in das gewünschte Format. Zunächst müssen Sie sich für das Format und den Namen der zukünftigen Datei entscheiden.
ExportTemplateVM export = new ExportTemplateVM() { FileName = "box", Format = ExportFormat.Pdf //Format, in das der Export erfolgen soll };
Exportieren Sie ins PDF-Format:
ExportVM exportedFile = await rpClientTemplates.ExportAsync(uploadedFile.Id, export) as ExportVM; string fileId = exportedFile.Id; int attempts = 3; exportedFile = rpClientExports.GetFile(fileId); while (exportedFile.Status != FileStatus.Success && attempts >= 0) { await Task.Delay(1000); exportedFile = rpClientExports.GetFile(fileId); attempts--; }
Der Hauptteil der Arbeit an dem Bericht ist abgeschlossen. Wir haben eine PDF-Datei aus unserem Bericht erstellt:
Wenn Sie die Datei manuell herunterladen möchten, gehen Sie zu Ihrem Arbeitsbereich und laden Sie sie wie im folgenden Beispiel herunter:
Die Datei kann auch über das SDK wie in dem folgenden Beispiel heruntergeladen werden:
using (var file = await downloadClient.GetExportAsync(fileId)) { using (var pdf = File.Open("report.pdf", FileMode.Create)) { file.Stream.CopyTo(pdf); } }
Jetzt wissen Sie, wie Sie mit dem SDK Dateien erstellen, exportieren und in die FastReport Cloud herunterladen können. Das Beispiel aus diesem Artikel finden Sie unter diesem Link: https://github.com/FastReports/FastReport-Cloud