JasperReports: Ein Überblick

In Software-Projekten erhalte ich oft die Anforderung zur Realisierung von Drucklösungen und formatierten Exporten. Rechnungen, Broschüren, Einsatzpläne und Statusberichte sind nur einige Beispiele – also Dokumente mit identischer Vorlage und unterschiedlichen Inhalten.

Dafür verwende ich gerne die Open-Source-Lösung von JasperReports, eine weit verbreitetes Reporting-Tool von TIBCO. Damit lassen sich professionelle Dokumente in den Formaten PDF, Excel, Word und vielen weiteren designen und generieren und  stellt eine Alternative zum umfangreichen, aber auch teuren „BI-Publisher“ von Oracle dar.

JasperReports (JR) ist eine ganze Tool-Sammlung bestehend aus der JR-Engine, dem JR Studio und dem JR Server. Alle drei Tools sind in Java umgesetzt und Open-Source.

Bestandteile von JasperReports

Die JasperReports Engine ist die zentrale Bibliothek, die aus  den Eingangsdaten und dem Reportlayout die Exportdateien generiert. Die Daten können aus verschiedenen Quellen wie z. B. Datenbanken, CSV- oder XML-Dateien gelesen werden. Ebenso gibt es die üblichen Zielformate wie PDF, XLS(X), DOC(X), PPT(X), RTF und viele weitere mehr. Ganz spezielle Formate können – Open-Source sei dank – per Java erweitert werden. Das Report-Layout liegt entweder in .xml (hier JRXML) oder im vorkompilierten Binärformat .jasper vor.

Man kann die XML-Dateien per Editor erstellen oder deutlich benutzerfreundlicher mit dem JasperReports Studio (früher iReport). Wer Oracle APEX kennt und liebt, wird auch hier den deklarativen Ansatz dieses Designers mögen. Mit ihm lassen sich schnell und einfach Dokumenten-Layouts mit Reports, Charts, Grafiken, Unterreports usw. erstellen. Über Templates werden wiederverwendbare Vorlagen im Corporate Design erzeugt, in denen die Farben, Schriftarten und das Logo des Unternehmens festgelegt werden. Das Ergebnis sind die zuvor erwähnten .jrxml- bzw. .jasper-Dateien.

Den JasperReports Server nutze ich vor allem als Repository und zur Generierung und Auslieferung der Reports. Er läuft auf einem Application Server (im Standard Apache Tomcat) und enthält Report-Layouts und Datenquellen. Die Reports können über simple URLs erzeugt werden.

Integration in Oracle APEX

Dadurch ist eine Integration in andere Applikationen (bei mir meistens APEX) sehr einfach umsetzbar. Über definierte URL-Parameter nennt man den gewünschten Report, das Zielformat und kann außerdem Report-Parameter übermitteln. Dadurch lassen sich die z. B. die enthaltenen Daten filtern.

Beispiel-URL  (erstelle Bericht  für Projekt „XYZ“ als PDF):

http://localhost/jr/flow.html?reportUnit=/foo/Bar&output=pdf&project=XYZ

In eine Demo-Applikation zeige ich weitere Details zur Integration von JasperReports per JasperReports-Server oder per PL-jrxml2pdf in APEX.

Zur Demo-Applikation auf apex-experts.de

Zum Thema JasperReports habe ich weitere Beiträge geplant. Neben Architektur und Programmablauf gehe ich auf die Vor- und Nachteile verschiedener Integrationsvarianten ein. Außerdem werde ich diese Lösung mit anderen aktuell erhältlichen Alternativen vergleichen.

Wenn Sie JasperReports und die Integration in APEX live sehen möchten, besuchen Sie doch meinen Vortrag auf der DOAG 2016.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.