Der Report, der aus der Datenbank kommt – PL-jrxml2pdf

Um aus Oracle APEX ein PDF zu generieren gibt es die verschiedensten Produkte und Reporting-Tools, wie z.b. BI Publisher, Jasper Reports, Oracle Reports, BIRT, PL/PDF usw.

Vor allem für kleinere Applikationen wäre es toll, wenn das PDF in der Datenbank erzeugt werden könnte, es aber für das Designen des Reports einen graphischen Editor gäbe.

Genau das bietet das Open-Source-Tool PL-jrxml2pdf.

PL-jrxml2pdf

PL-jrxml2pdf ist ein rein PL/SQL-basierendes Tool, das aufgrund einer XML-Definition in der Datenbank ein PDF erzeugt. Als Reportdefinition wird das jrxml-Format von iReport verwendet. Dieses wird in die Datenbank geladen, dort von PL-jrxml2pdf analysiert und daraus ein PDF generiert. Ob das erzeugte CLOB dann in APEX direkt angezeigt, in einer Tabelle oder als File gespeichert wird, ist dem Entwickler überlassen.

iReport von JasperSoft als grafischen Editor

Mit iReport steht ein grafischer Designer zur Verfügung mit dem der Report strukturell aufgebaut wird und in dem die jeweiligen Layout-Elemente angeordnet und formatiert werden. Die Elemente können mit diversen Bedingungen versehen werden, so kann z.B. die Hintergrundfarbe aufgrund der Höhe des Betrages bestimmt werden, oder Elemente werden nur auf jeder zweiten Seite angedruckt. Neben Textfeldern können auch Bilder, Charts etc. in den jeweiligen Regionen eingebunden werden.

Die SQL-Query als Datenquelle wird direkt in iReport geladen und ist auch im jrxml gespeichert.

Testcase

Als Usability-Test haben wir einen Report erstellt, der eine Liste aller Bestellungen pro Customer ausgibt. Dabei wurden die Standard-Demo-Tabellen als Datenquelle herangezogen.

Jede Seite hat eine Kopf-/Fußzeile, pro Auftrag wird das Datum der Bestellung und der Gesamtbetrag angezeigt (über €1.000,- wird das Feld rot hinterlegt). Die Einzelbeträge werden aufgrund ihrer Höhe eingefärbt und zu jedem Produkt gibt es ein kleines Image.

Sehr schnell konnten wir einen Report in Form eines Grids erstellen. Für die zusätzlichen Formatierungen  mit iReport war es leicht die selektierten Spalten an die gewünschte Position zu verschieben und nach unseren Wünschen zu formatieren. Die von Andreas Weiden erstellte APEX-Applikation bietet neben einigen sehr interessanten Demo-Reports auch die Möglichkeit, eigene Reportdefinitionen zu testen. Somit war auch schnell jeder Fortschritt am PDF zu sehen.

Fazit

Mit PL-jrxml2pdf werden mit Hilfe eines grafischen Designers umfangreiche Berichte erstellt, die schnell und einfach ausgerollt werden können.

Der Vorteil, dass das PDF in der Datenbank generiert wird und wir somit keine Middleware für eine Reporting-Engine benötigen, kann sich auch als Nachteil erweisen. Das Erzeugen von PDFs (CLOBs) in der Datenbank kostet Zeit. Dieser Umstand ist vor allem dann zu berücksichtigen, wenn die Datenbank bereits den Flaschenhals im System darstellt.

Auf jeden Fall ist Andreas Weiden hier ein absolut sehenswertes Tool für kleinere und mittlere Instanzen gelungen, das es Wert ist ausprobiert zu werden.