JasperReports-Tutorial: Wozu dient JasperReports? Java?
⚡ Intelligente Zusammenfassung
JasperReports für Java Jaspersoft Studio ist eine Open-Source-Reporting-Engine, die Anwendungsdaten in pixelgenaue Dokumente umwandelt. Dieser Artikel erläutert den Reporting-Lebenszyklus, die Installation von Jaspersoft Studio, die Erstellung von Berichtsvorlagen, die Bandstruktur, einen Vergleich mit Pentaho sowie die praktischen Einschränkungen, auf die Teams stoßen.

Wofür ist JasperReports Java?
JasperReports ist ein Open-Source-Reporting-Tool für Java JasperReports dient der Berichterstellung für Anwendungen. Dieses Berichtstool unterstützt die Ausgabe von umfangreichen Inhalten auf dem Bildschirm, dem Drucker oder in verschiedenen Dateiformaten wie HTML, PDF, XLS, RTF, CSV, XML, ODT und TXT. JasperReports kann auch für folgende Zwecke verwendet werden: Java-fähige Anwendungen wie Java EE- oder Webanwendungen zum Generieren dynamischer Inhalte.
In den meisten Diskussionen tauchen drei Produktnamen gemeinsam auf; eine frühzeitige Trennung beugt späteren Verwirrungen auf dieser Seite vor.
| Name | What It Is | Wer nutzt es? |
|---|---|---|
| JasperReports-Bibliothek | Das Java Bibliothek zum Kompilieren, Ausfüllen und Exportieren von Berichten | Java Entwickler, die Berichte in eine Anwendung einbetten |
| Jaspersoft Studio | Das Eclipse basierend auf einem visuellen Designer, der JRXML-Dateien erzeugt | Berichtsdesigner erstellen Layouts |
| JasperReports-Server | Ein eigenständiger Server, der Berichte speichert, plant und zustellt. | Teams, die Berichte an Geschäftsanwender verteilen |
Diese Seite konzentriert sich auf die Bibliothek und Jaspersoft Studio, da diese beiden Komponenten alles sind, was zum Erstellen und Ausführen eines ersten Berichts benötigt wird. Beachten Sie, dass die Community Edition jetzt nur noch diese beiden Komponenten umfasst, da JasperReports Server nicht mehr als Community-Download angeboten wird.
Warum Jasper Reports verwenden?
Hier sind viele Gründe für die Verwendung eines Jasper-Report-Tools:
- Es bietet Leistung bei der Berichterstellung und Bereitstellung für Benutzer.
- Es hilft Ihnen, Ihre Daten im Text- oder Grafikformat darzustellen.
- Es handelt sich um einen eigenständigen und eingebetteten Berichtsserver für die Erstellung und Ausführung von Berichten.
- Es ermöglicht eine rollenbasierte Zugriffskontrolle auf alle Berichte im Repository.
- Für die Integration mit hauseigenen Authentifizierungssystemen steht ein Spring Security Framework zur Verfügung.
- Es bietet ein sicheres, zeitgesteuertes und automatisch bereitgestelltes interaktives Berichtssystem.
- Sie können Berichte einbetten in Java oder nichtJava um weitere Anwendungsbeispiele zu finden.
- Es können verschiedene Berichtsformate exportiert werden.
- Es kann Wasserzeichen erzeugen, die über das Primärbild gelegt werden.
- Es bietet ein komplettes Set an SOAP, REST und Webdienste.
- Es ermöglicht Ihnen, einzelne Berichtsdaten aus mehreren Datenquellen zu verwenden.
Da die Bibliothek unter der LGPL-Lizenz veröffentlicht wird, kann sie ohne Gebühr pro Nutzer in kommerzielle Produkte eingebunden werden, was der Grund dafür ist, dass viele Java Teams bevorzugen es gegenüber proprietären Reporting-Systemen.
Funktionen von Jasper Reports
Nun werden wir die Funktionen von JasperReports behandeln.
Hier die wichtigsten Funktionen des Jasper Reports-Tools:
- Bietet flexible Berichtslayouts über Bänder, Spalten und Freiformbereiche hinweg.
- Entwickler können Daten auf verschiedene Weise bereitstellen, darunter JavaBeans-Sammlungen, SQL-Abfragen und XML-Dokumente.
- Mehrere Datenquellen können mithilfe von Unterberichten und Datenadaptern in einem einzigen Bericht kombiniert werden.
- Wasserzeichen können auch über das Hauptbild gelegt werden.
- Sie können Unterberichte generieren, die in einem übergeordneten Layout verschachtelt sind.
- Es hilft Ihnen, Berichte in verschiedenen Formaten zu exportieren, z PDFHTML, RTF und Microsoft Excel-Dateien.
- Die Engine ermöglicht es, Berichtsdefinitionen Diagramme wie Balken-, Kreis-, Linien- und Zeitreihendiagramme einzuschließen.
- Berichtsausdrücke können geschrieben werden in Java, Groovyden JavaSkript.
Diese Funktionen werden durch eine festgelegte Verarbeitungssequenz bereitgestellt, die im nächsten Abschnitt Schritt für Schritt beschrieben wird.
Lebenszyklus von JasperReports
Nun werden wir den Lebenszyklus von JasperReports kennenlernen.
Nachfolgend ist der allgemeine Ablauf des Lebenszyklus von Jasper Reports dargestellt:
Das obige Diagramm zeigt die vier Phasen in der richtigen Reihenfolge. Jede Phase erzeugt eine Datei, die als Eingabe für die nächste Phase dient; daher kann die Abfolge nicht umgekehrt werden.
| Praktikum | Eingang | Ausgang | Dateierweiterung |
|---|---|---|---|
| Entwerfen | Layoutentscheidungen | Berichtsvorlage | .jrxml |
| Kompilieren | .jrxml-Datei | Kompilierte Binärvorlage | .Jaspis |
| Ausführen | .jasper-Datei plus Daten | Ausgefüllter Bericht | .jrprint |
| Exportieren | .jrprint-Datei | Abschlussdokument | .pdf, .html, .xls und andere |
Gestaltung des Berichts
Dies ist der erste Schritt, in dem wir die JRXML-Datei erstellen. Es handelt sich dabei um ein einfaches XML-Dokument, das das Layout des Berichts definiert. Sie können diese Datei mit einem beliebigen Texteditor oder einem Berichtsdesigner erstellen.
Wenn Sie jedoch den Berichtsdesigner verwenden, können wir das Layout des Berichts visualisieren, und die tatsächliche Struktur des JRXML kann ignoriert werden.
Zusammenstellung des Berichts
In dieser Phase des Lebenszyklus wird die im ersten Schritt erstellte JRXML-Datei kompiliert und ein Binärobjekt namens Jasper-Datei (Datei mit der Erweiterung jasper) generiert.
Diese Kompilierung wird durchgeführt, um eine bessere Leistung während der Ausführung zu erzielen. Diese generierten Jasper-Dateien sollten zusammen mit Ihrer Anwendung geliefert werden, um die Berichte auszuführen.
Ausführung des Berichts
In dieser Phase werden die Daten aus dem Antrag gesammelt und in das zusammengestellte Berichtsformat eingetragen. Es gibt eine Klasse namens net.sf.jasperreports.engine.JasperFillManager, die Funktionen zum Füllen der Daten in die Berichte bietet.
Die Ausgabe wird in einer Jasper-Druckdatei (Datei mit der Erweiterung jrprint) gespeichert, die zum Drucken oder Exportieren des Berichts verwendet werden kann.
Exportieren des Berichts in das gewünschte Format
In dieser letzten Phase müssen Sie die zuvor erstellte Jasper-Druckdatei mithilfe der Klasse JasperExportManager in ein beliebiges Format exportieren. Da Jasper mehrere Exportformate anbietet, können wir dieselben Eingaben verwenden, um verschiedene Darstellungen der Daten zu erstellen.
So installieren Sie Jasper Reports – Umgebungseinrichtung
Nun lernen wir die schrittweise Einrichtung der JasperReports-Umgebung kennen. Die folgenden Screenshots wurden mit dem Installationsprogramm der Version 6.9 erstellt. Die aktuelle Community-Version ist 6.21.3 (veröffentlicht am 23. April 2024). Die Reihenfolge der Bildschirme ist unverändert, obwohl sich die Versionsnummer im Dateinamen geändert hat.
Schritt 1) Laden Sie die Community Edition von Jasper Reports herunter
Gehe dahin verbindung Klicken Sie auf die Option „Jetzt herunterladen“, um die Jasper Reports Community Edition zu installieren.
Schritt 2) Wählen Sie Jaspersoft Studio CE
Wählen Sie aus den Community-Editionen Jaspersoft Studio CE aus.
Schritt 3) Laden Sie Jaspersoft Studio herunter
Gehe dahin Link Klicken Sie auf die Schaltfläche „Herunterladen“ und öffnen Sie anschließend die heruntergeladene Installationsdatei für Ihr Betriebssystem.
Schritt 4) Klicken Sie auf die Schaltfläche „Zustimmen“.
Der folgende Bildschirm wird angezeigt. Wählen Sie die Schaltfläche „Ich stimme zu“.
Schritt 5) Ort wählen
Wählen Sie Ihren Installationsort aus und klicken Sie auf die Schaltfläche „Weiter“.
Schritt 6) Der Fortschritt läuft jetzt
Den Fortschritt sehen Sie auf dem nächsten Bildschirm.
Schritt 7) Klicken Sie auf die Schaltfläche „Fertig stellen“.
Klicken Sie im nächsten Bildschirm auf die Schaltfläche „Fertig stellen“.
Schritt 8) Der Fortschritt ist abgeschlossen
Der folgende Bildschirm wird in Ihrem Fenster angezeigt.
Schritt 9) Loslegen
Klicken Sie anschließend auf die Option „Los geht’s“.
Schritt 10) Beginnen Sie mit Jasper Reports Studio zu arbeiten
Anschließend erscheint ein Bildschirm, und Sie können mit Jasper Reports Studio arbeiten.
💡 Tipp: Jaspersoft Studio ist ein Eclipse basiert auf einer Anwendung und benötigt eine kompatible Java Die Laufzeitumgebung muss auf dem System vorhanden sein. Falls die Installation fehlschlägt, überprüfen Sie die installierte JDK-Version, bevor Sie die Installation wiederholen.
Beispiel für die Erstellung einer Berichtsvorlage
Nun lernen wir, wie man eine Berichtsvorlage in JasperReports erstellt.
Die in JasperReports verwendete Berichtsvorlagendatei ist eine einfache XML-Datei mit der Dateiendung .jrxml. Diese Datei enthält das Tag `jasperReport` als Wurzelelement. Das JasperReports-Framework kann verschiedene Datentypen verarbeiten.
Eine Berichtsvorlage wird anhand der folgenden Schritte entworfen und erstellt.
Schritt 1) Erstellen der JRXML-Datei in Jaspersoft Studio.
- Gehen Sie zur Option „Datei“.
- Wählen Sie das Untermenü „Neu“.
- Klicken Sie auf die Option Jasper Report.
Schritt 2) Auswahl der gewünschten Vorlage.
- Wählen Sie Ihre Vorlage aus, zum Beispiel Cherry.
- Klicken Sie auf die Schaltfläche "Weiter".
Schritt 3) Auswählen eines übergeordneten Ordners.
- Wählen Sie den Ordner „MyReports“ aus.
- Geben Sie den Dateinamen ein, zum Beispiel „Cherry Report“.
- Klicken Sie auf die Schaltfläche "Weiter".
Schritt 4) Klicken Sie im Fenster „Datenquelle“ auf die Schaltfläche „Neu“, um einen neuen Datenadapter zu erstellen.
Schritt 5) Auswahl eines Datenadapters.
- Wählen Sie den Datenadapter aus der Liste aus. Zum Beispiel „Sammlung von JavaBohnen."
- Klicken Sie auf die Schaltfläche "Weiter".
Schritt 6) Eingabe der Datenadapterdetails und Auswahl der Werksklasse.
- Geben Sie einen Namen für Ihren Adapter ein.
- Wählen Sie die Werksklasse durch Klicken auf die Schaltfläche „…“ aus.
Schritt 7) Eingabe des Präfixes oder Musters.
- Geben Sie das Namenspräfix oder Muster ein.
- Klicken Sie auf passende Artikel.
- Klicken Sie auf die Schaltfläche "OK".
Schritt 8) Die Factory-Klasse definieren und den Pfad zu den JAR-Dateien hinzufügen.
- Geben Sie den Namen einer statischen Methode in der Factory-Klasse ein. In diesem Jasper-Berichtsbeispiel ist dies „createBeanCollection“.
- Wenn dein JavaDie Beans-Definition enthält Feldbeschreibungen, und wenn Sie diese als Namen in Jaspersoft Studio verwenden möchten, aktivieren Sie das Kontrollkästchen „Feldbeschreibung verwenden“.
- Fügen Sie einen Pfad zu Ihren JAR-Dateien hinzu.
- Klicken Sie auf die Schaltfläche „Fertigstellen“.
Schritt 9) Klicken Sie auf die Schaltfläche "Weiter".
Schritt 10) Herzlichen Glückwunsch! Sie haben alle erforderlichen Informationen zur Berichtserstellung erfolgreich hinzugefügt. Klicken Sie auf die Schaltfläche „Fertigstellen“.
Der Bericht wird wie unten dargestellt generiert.
Die obige Datei muss in das JasperReport-Binärformat kompiliert werden, die sogenannte Jasper-Datei.
Die Schnittstelle net.sf.jasperreports.engine.design.JRCompiler, die Teil der JasperReports-Bibliothek ist, spielt eine wichtige Rolle bei der Kompilierung dieser Berichtsvorlagendatei.
Die Implementierung dieser Schnittstelle kann geschrieben werden Java, JavaSkript, Groovy, oder eine andere Skriptsprache.
Sie können eine JRXML-Datei mit den folgenden beiden Methoden kompilieren:
- Programmatische Kompilation von Java Code.
- Kompilierung mit einem Apache-Ameise Aufgabe.
Der folgende Codeausschnitt zeigt den programmatischen Ablauf, wobei eine Zeile die Vorlage kompiliert und eine zweite Zeile sie mit einem JavaBohnensammlung.
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class ReportRunner { public static void main(String[] args) throws JRException { // 1. Compile the JRXML template into a .jasper file JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml"); // 2. Fill the compiled template with a collection of beans JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection()); JasperPrint print = JasperFillManager.fillReport(report, null, source); // 3. Export the filled report to PDF JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf"); System.out.println("Report exported successfully"); } }
Ausgang:
Report exported successfully
Die verschiedenen Berichtsbänder verstehen
Ein JasperReports-Layout ist in horizontale Abschnitte, sogenannte Bänder, unterteilt. Jedes Band hat eine feste Druckregel, und das Verständnis dieser Regeln ermöglicht es einem Designer, genau zu steuern, wo ein Wert im fertigen Dokument erscheint.
Nachfolgend sind die Standard-Berichtskategorien aufgeführt, die von den meisten kommerziellen Berichtsgenerierungstools verwendet werden.
- Titel
- Kopfzeile
- Spaltenüberschrift
- Detail
- Spaltenfuß
- Fußzeile
- Fußzeile der letzten Seite
- Zusammenfassung
- Gruppenüberschrift
- Gruppenfußzeile
- Hintergrund
- Keine Daten
Lassen Sie uns die einzelnen Meldebänder genauer betrachten.
Titel
Dieses Band wird am Anfang des Berichts angezeigt. Es kann auf einer eigenen ersten Seite platziert werden, indem das entsprechende Attribut gesetzt wird. isTitleNewPage="true".
Kopfzeile
Die Seitenkopfzeile wird am Anfang jeder Seite angezeigt. Sie wird auf der ersten Seite nicht angezeigt, wenn die Titelzeile verwendet wird, und auf der letzten Seite nicht, wenn die Zusammenfassungszeile verwendet wird. isSummaryWithPageHeaderAndFooter="false".
Spaltenüberschrift
Spaltenüberschriften werden auf jeder Seite vor dem Detailbereich angezeigt.
Detail
Der Detailbereich wird für jeden Datensatz in der bereitgestellten Datenquelle durchlaufen. Es können auch mehrere Detailbänder (1, 2 usw.) vorhanden sein.
Spaltenfuß
Dieser Abschnitt erscheint unterhalb des Detailbereichs auf jeder Seite, auf der ein Detailbereich vorhanden ist. Standardmäßig befindet er sich am Seitenende, kann aber durch Setzen des entsprechenden Attributs so angepasst werden, dass er unterhalb des letzten Detailbereichs angezeigt wird. isFloatColumnFooter="true".
Fußzeile
Dieser Abschnitt wird am Ende jeder Seite angezeigt, ausgenommen der Zusammenfassungsbereich, der Titelbereich und der letzte Bereich, der keine Zusammenfassung enthält.
Fußzeile der letzten Seite
Dieser Abschnitt erscheint auf der letzten Seite anstelle der normalen Seitenfußzeile, wenn kein Zusammenfassungsbereich angegeben ist.
Zusammenfassung
Der Abschnitt „Zusammenfassung“ erscheint nur am Ende des Berichts auf einer neuen Seite, wenn isSummaryNewPage="true" ist festgelegt, und mit Seitenkopf und -fuß, wenn isSummaryWithPageHeaderAndFooter="true" wird gesetzt.
Gruppenkopfzeile
Dieser Abschnitt wird nur dann angezeigt, wenn er definiert ist, und zwar jedes Mal, wenn sich der Gruppenausdruck ändert, und zwar vor dem Detailband.
Gruppenfußzeile
Dieser Abschnitt wird nur angezeigt, wenn eine Gruppe definiert ist, und zwar jedes Mal vor einer Änderung des Gruppenausdrucks, nach dem Detailbereich.
Hintergrund
Es wird auf allen Seiten als Hintergrund für alle anderen Berichtsbänder angezeigt.
Keine Daten
Dieses Band wird angezeigt, wenn keine Datenquelle übergeben wurde oder die Datenquelle leer ist. whenNoDataType="NoDataSection" wird gesetzt.
Jasper gegen Pentaho
Nun werden wir den Unterschied zwischen Jasper und Pentaho kennenlernen.
Hier die wichtigsten Unterschiede zwischen Jasper und Pentaho:
| Kenngrößen | Jasper | Pentaho |
|---|---|---|
| Reports | Jasper verwendet Jaspersoft Studio für die Gestaltung der Berichte. | Es verwendet den Pentaho Report Designer. |
| ETL-Unterstützung | Jaspersoft verwendet die Talend Open Studio-Version für ETL-Zwecke. | Es verwendet standardmäßig Pentaho Data Integrator ETL-Tool. |
| Dashboard | Die Dashboard-Funktionalität ist nur in der Enterprise Edition von Jaspersoft vorhanden. | Pentaho bietet eine breite Palette an Funktionen in seinen Dashboards. |
| Mobile Business Intelligence | Jaspersoft bietet besseren mobilen BI-Support. | Pentaho ist auf ein Drittanbieter-Tool angewiesen, um das mobile BI-Erlebnis zu verbessern. |
| Dokumentation | Besseres Marketing, bessere Websites und bessere Dokumentation. | Die Dokumentationsunterstützung ist schlecht. |
| bestes Feature | Einfacher zu recherchieren und zu finden, was Sie brauchen. | Bietet Datenanalyse und iPhone-Integration. |
| Bezahlversion | Die kostenpflichtige Version bietet Funktionen wie Ad-hoc-Abfrage Web-UI und Dashboard-Erstellungs-Web-UI. | Bietet Funktionen wie LDAP-Integration, SSO und Auditing. |
Teams, die bereits in die Java Stack-Entwickler wählen in der Regel Jasper, während Teams, die neben Reporting auch eine umfassende Datenintegration benötigen, oft Jasper wählen. Pentaho.
Herausforderungen bei der Erstellung von JasperReports
Hier sind einige Herausforderungen, denen Sie bei der Erstellung von Jasper Reports begegnen werden:
- Kernänderungen – Wenn sich die Geschäftsregeln ändern oder erweitert werden, ist es erforderlich, die Kernlogik des Berichts zu ändern.
- Komplizierte Berichte – Unterberichte und Kreuztabellenberichte sind gute Beispiele.
- Diagrammberichte oder visuelle Diagramme, zum Beispiel Graphen, XY-Liniendiagramme, Kreisdiagramme, Balkendiagramme, Zeitreihendiagramme und Messdiagramme.
Nachteile der Verwendung von Jasper Reports
Hier sind die Nachteile der Verwendung von Jasper Reports.
- Sobald man anfängt, Änderungen an Teilen des Pakets vorzunehmen und Funktionen zu entfernen, ist es sehr schwierig, zum Standardzustand des Pakets zurückzukehren.
- Es ist zu starr, und das Bearbeiten von Zeilen und das Erstellen von Kreuztabellen ist eine schwierige Aufgabe.
- Manche häufige Aufgaben, wie das Festlegen von Zwischensummen für einen gruppierten Bericht, sind in anderen Berichtsdesignern einfacher.
- Jasper erfordert, dass Sie Berichte kompilieren, bevor Sie sie ausführen. Das bedeutet, dass Berichtsentwickler über die gesamte Java SDK installiert.
- Beim Bearbeiten des Berichts wird manchmal nicht dieselbe Vorschau angezeigt wie im Web.






















