logo
small logo
  • Produkte
  • Shop
  • Support
  • Über uns
  • Customer panel Support
    • en
    • de
    • JP
    • ZH
  • Home
  • /
  • Articles
  • /
  • Der Export des Berichts in FastReport.OpenSource
  • MS Word versus Open Document Text. Was ist besser?

    19. Oktober 2020

    Wenn wir von Texteditoren sprechen, stellen wir uns die Leuchte sofort als Microsoft Word vor,

    read more
  • Wollten Sie Tabellen für den Benutzer generieren - Excel oder OpenOffice Calc?

    8. Oktober 2020

    Tabellen. Seit Jahrhunderten werden sie verwendet, um dieselbe Art von Daten für Buchhaltungszwecke, Zählbeträge und

    read more
  • Wie Sie von FastReport-Open Source-Projekten zu FastReport Core migrieren

    9. März 2019

    FastReport Open Source ist gerade aufgetaucht, aber ich kann einige Fragen der Benutzer antizipieren.

    read more
  • So erstellen Sie eine ZPL Datei in Delphi / C ++ Builder / Lazarus

    22. Dezember 2020

    Was ist ZPL? Im Allgemeinen steht ZPL für Zebra Programmierung Sprache. Teams haben die Möglichkeit,

    read more
  • Compilern der libgdiplus Bibliothek aus dem Quellcode

    2. Oktober 2020

    Bei der Verwendung der Bibliotheken FastReport .NET (Core), FastReport Open Source und FastReport Mono unter

    read more

Der Export des Berichts in FastReport.OpenSource

10. Januar 2019

FastReport.OpenSource hat bei vielen Entwicklern ein großes Interesse geweckt. Es ist ein ausgezeichneter Berichtsgenerator mit einer langen Geschichte. Die Open-Source-Version ist FastReport.Core, der am Anfang 2018 eingeführt wurde, aber mit einigen Einschränkungen. Nämlich war ein abgespeckter Export darin. Daher stehen uns nur die folgenden Formate zur Verfügung:

HTML, BMP, PNG, JPEG, GIF, TIFF, EMF.

Das ist natürlich sehr wenig. Das WebReport-Objekt zeigt den Bericht im HTML-Format an und wurde daher verlassen.

Es ist bemerkenswert, dass wir im WebReport-Objekt den Bericht nur im fpx-Vorschauformat speichern können.

 

Daher müssen Sie den Bericht aus dem Anwendungscode exportieren. Schauen wir uns an, wie es mit einem Beispiel aussehen wird.

Ich werde den gesamten Prozess der Erstellung einer Demo-Anwendung im Detail beschreiben, damit Sie es bei Bedarf wiederholen können.

Wir erstellen ein ASP .Net Core 2.0-Projekt. Als nächstes fügen wir Pakete aus dem NuGet-Speicher hinzu: FastReport.OpenSource und FastReport.OpenSource.Web.

Jetzt muss man die Verwendung der FastReport-Bibliotheken in der Startup.cs-Datei hinzufügen.

Verwenden wir die Index-Ansicht. Ändern wir es so:

1
2
3
4
5
6
7
8
@using (Html.BeginForm("Save", "Home", FormMethod.Get))
{
 <input id="save" type="submit" value="Save report in HTML" />
}
 
<div>
 <img src ='@Url.Action("GetImage")'>
</div>

Wir werden den Bericht im Bildformat sowie einen Link zum Herunterladen des Berichts im HTML-Format anzeigen.

Zuerst wird eine Schaltfläche zum Herunterladen angezeigt, die die HTML-Generierung der Berichtsdatei initiiert. Dann kommt das Bild. Aber die Datei dafür wird von der GetImage-Methode im Controller generiert.

Gehen wir zum HomeController.cs. Wir brauchen Bibliotheken:

1
2
3
4
5
6
7
8
9
using System.IO;
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using OpenSourceReportExport.Models;
using FastReport;
using FastReport.Export.Image;
using FastReport.Export.Html;
using System.Data;
using Microsoft.AspNetCore.Hosting;

Verwenden Sie die IHostingEnvironment-Schnittstelle, um die richtigen Pfade zu den Dateien auf dem Server festzulegen. Um das zu tun, übergeben wir ein Objekt vom Typ IHostingEnvironment an den Controller-Konstruktor.

1
2
3
4
5
6
 public HomeController(IHostingEnvironment hostingEnvironment)
 {
 _hostingEnvironment = hostingEnvironment;
 }
 
 private IHostingEnvironment _hostingEnvironment;

Die Index-Methode bleiben wir unverändert:

1
2
3
4
public IActionResult Index()
 {
 return View();
 }

 Fügen wir eine neue Methode hinzu, um den Bericht als Bild zu erhalten. Der Export als ein Bild, z. B. im JPEG-Format:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public IActionResult GetImage()
 {
 // Erstellen des Berichtsobjekts
 using (Report report = new Report())
 {
 string path = _hostingEnvironment.WebRootPath;
 // Laden eines Berichts
 report.Load(path + "\\App_Data\\Master-Detail.frx"); 
 DataSet data = new DataSet();
 data.ReadXml(path + "\\App_Data\\nwind.xml"); //XML-Datenbank öffnen
 report.RegisterData(data, "NorthWind"); //Datenquelle im Bericht registrieren
 report.Prepare();//einen Bericht erstellen
 
 // Erstellen des Bildexports
 using (ImageExport image = new ImageExport())
 { 
 image.ImageFormat = ImageExportFormat.Jpeg;
 image.JpegQuality = 100; // die Qualität einrichten
 image.Resolution = 100; // Auflösung einrichten
 image.SeparateFiles = false; // Wir brauchen alle Seiten in einer großen Datei
 
using (MemoryStream st = new MemoryStream())//Verwendung von Stream zum Speichern des Exports
 {
 report.Export(image, st);
 return base.File(st.ToArray(), "image/jpeg");
 }
 }
 }
 }

Die zweite Methode besteht darin, den Export des Berichts im HTML-Format zu speichern. Im Wesentlichen ist es das gleiche wie im vorherigen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[HttpGet]
 public ActionResult Save()
 {
 using (Report report = new Report())
 {
 string path = _hostingEnvironment.WebRootPath;
 // Laden eines Berichts
 report.Load(path + "\\App_Data\\Master-Detail.frx"); 
 DataSet data = new DataSet();
 data.ReadXml(path + "\\App_Data\\nwind.xml"); //XML-Datenbank öffnen
 report.RegisterData(data, "NorthWind"); //Datenquelle im Bericht registrieren
 report.Prepare();// einen Bericht erstellen
 
 // Erstellen des HTML-Exports
 using (HTMLExport html = new HTMLExport())
 {
 using (FileStream st = new FileStream(path + "\\App_Data\\test.html", FileMode.Create))
 {
 report.Export(html, st);
 return File("App_Data/test.html", "application/octet-stream", "Test.html");
 }
 }
 }
 }

In dieser Methode haben wir eine HTML-Datei erhalten. Und das bedeutet, dass es keine Bilder darin geben wird. Um eine HTML-Datei mit Bildern zu speichern, muss man die Dateien in einer Schleife speichern. Ein Beispiel für einen solchen Export finden Sie in der FastReport Open Source-Dokumentation:

https://fastreports.github.io/FastReport.Documentation/Exporting.html.

Lassen Sie uns unsere App starten:

Das Bild enthält alle Berichtsseiten, da wir die Eigenschaft SeparateFiles = false festgelegt haben. Andernfalls müssten wir mehrere Dateien angezeigt werden.

Klicken Sie auf Save report in HTML:

 

Und die Datei wird automatisch vom Browser heruntergeladen.

Das ist alles. Wie Sie sehen können, unterscheidet sich die Implementierung des Exports im Code in FastReport Open Source nicht von FastReport.Core.

about product buy
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
Export FastReport Open Source

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Shop
  • Download
  • Dokumentation
  • Referenzen
  • Informationen zur Deinstallation unserer Produkte
  • FAQ
  • Tutorial Video
  • Forum
  • Articles
  • Unsere Nachrichten
  • Presse über uns
  • Partner
  • Außergewöhnliche Lizenzierung
  • Kontakte

© 1998-2023 by Fast Reports Inc.

  • Datenschutz