Pentaho Reporting – Visuelle Darstellung einer Tabelle

Der Pentaho Report Designer bietet kein „Tabellenwerkzeug“ an. Um nun eine Tabelle mit gezeichneten Linien darzustellen hat sich folgender Weg als praktikabel herausgestellt. Dabei wird die Tabelle gezeichnet indem für das Datenband der Rahmen eingestellt wird und die vertikalen Linien durch Rechtecke mit der Höhe 100% und Breite 0 gezeichnet werden. Das Ergebnis kann dann so aussehen:
Pentaho Report DesignerTabelle mit sichtbaren Linien

1. Layout einstellen:
Als Layout für das Band in dem die Daten dargestellt werden (meist „Details“) kann das Row-Layout gewählt werden. Dadurch wird sichergestellt, das die Elemente alle bündig nebeneinander angeordnet werden. Das Standard Canvas Layout funktioniert aber auch.

2. Das Daten-Band und dessen Header-Band mit Linien einrahmen:
Dazu im Fenster „Structure“ (rechts oben) das Band auswählen und im Tab „Style“ im Abschnitt „border“ die 4 Borders auf solid mit einer Size von 0,5 setzen. Bei dem Datenband die obere Border nicht setzen, damit diese nicht doppelt gezeichnet wird. Sie wird durch die Umrandung des im Header-Band gebildet.

3. Vertikale Linien einfügen:
Dazu kann nicht die vertikale Linie aus den Komponenten am linken Rand verwendet werden, da diese nicht mit der Höhe der Felder skaliert. Stattdessen muss das Rechteck genommen werden und dessen „width“ auf 0 gesetzt wird und die „height“ auf 100%.

4. Datenfelder hinzufügen:
Die Datenfelder können einfach aus der Datenquelle im Data Tab in das Band gezogen werden. Damit die Felder die Daten bei Überlänge nicht abschneiden muss bei den Datenfeldern die dynamische Höhe aktiviert werden: Element auswählen -> Style Tab -> Abschnitt size & position -> dynamic-height = true
Ggf. noch bei dem Textfield padding -> bottom einstellen, damit der Text nicht genau mit der unteren Linie abschließt

Pentaho Report Designer - Konfigurieren der Linien

Pentaho Reporting – Verwendung von Parametern

Durch die Verwendung von Parametern können Reports dynamsich gestaltet werden. Beispielhaft wird dies hier an einem Report, der Informationen zu einem Kunden ausgibt, gezeigt. Der Report wird so erstellt, das er die Kundennummer als Parameter entgegen nimmt und mit dessen Hilfe Informationen zu dem Kunden anzeigt.

Parameter in den Report einfügen

Pentaho Reports können ein oder mehrere Parameter hinzugefügt werden, für die unterschiedliche Datentypen zur Verfügung stehen. Häufig verwendet wird der Typ Number um den Primärschlüssel eines Datensatzes aus der Datenbank an den Report zu übergeben. Dieser kann dann mit dem Primärschlüssel die benötigten Informationen laden und im Report anzeigen.
Ebenso ist es möglich Parameter als Felder im Report zu verwenden in dem sie einfach per Drag and Drop auf den Report gezogen werden.
Hinzugefügt werden Parameter im Pentaho Report Designer über das Data Tab und dort im Abschnitt Parameters. Ein Rechtsklick öffnet dort ein Menü in dem die Parameter hinzugefügt und bearbeitet werden könne. Weitere Details können dem folgenden Screenshot entnommen werden:
Pentaho Report Designer - Paramter hinzufügen

Parameter in Queries nutzen

Wie bereits angesprochen können Parameter auch in die SQL Abfragen des Reports eingebaut werden. Dazu wird der Paramter mit der Syntax ${PARAMETER_NAME} in das SQL Query integriert. Detailliert ist dies im folgenden Screenshot zu sehen:
Pentaho Report Designer - Parameter in Datenbankabfrage integrieren

Parameter in Subreports

Um Parameter in Subreports zu verwenden müssen diese zunächst in den Subreport importiert werden. Dazu gibt es im Subreport bei den Parametern den Abschnitt „Import Paramter“. Hier kann festgelegt werden welche Parameter aus dem Hauptreport importiert werden sollen und wie diese in dem Subreport heißen sollen. Der Einfachheit halber empfiehlt es sich die Namen in beiden Reports gleich zu wählen.
Hat man einen Report mit vielen Parametern und möchte alle in einen Subreport übertragen kann man sich das umfangreiche Mapping sparen indem als Importparameter der Platzhalter „*“ gewählt wird. Dadurch stehen alle Parameter im Subreport unter gleichem Namen wie im Hauptreport zur Verfügung.
Pentaho Report Designer - Paramter in Subreports verwenden

Pentaho Reporting – Datenbankabfrage und Integration der Ergebnisse in den Report

Jeder Report visualisiert die Datenmenge genau einer Datenbankabfrage. Sollen weitere Daten angezeigt werden können beliebig viele Subreports mit eigenen Datenbankabfragen eingefügt werden. Das Anlegen einer Datenbankabfrage geht dabei wie folgt:

1. Zunächst muss eine Datenquelle eingerichtet werden.
2. Über die hinzugefügte Datenquelle im Tab „Data Sets“ kann dann die Datenbankabfrage hinzugefügt werden. Rechtsklick auf die Datenquelle -> Edit Datasource. Siehe Screenshot. (Zum vergrößern anklicken)

Pentaho Report Designer - Datenfelder in den Report einfügen

3. Das SQL Query für die Datenbankabfrage kann in dem Tab „Static Query“ eingefügt werden. Siehe obigen Screenshot. Als Entwicklungshilfe für die Datenbankabfrage bietet der Pentaho Report Designer einen grafischen Query Designer der über das Stiftsymbol erreicht werden kann. Siehe den unten aufgeführten Screenshot:
Pentaho Report Designer - SQL Query Designer

4. Nachdem die Abfrage in den Report eingefügt wurde können die einzelnen Datenfelder, aus dem Select des SQL Queries, einfach per Drag and Drop in den Report gezogen werden.

Pentaho Reporting – Datenquelle einrichten

Der Pentaho Report Designer (PRD) lässt sich mit allen Datenbanken verbinden zu denen es JDBC Treiber gibt. Außerdem können einige weitere Datenquellen angebunden werden. Als NoSQL Datenbank wird die bekannte MongoDB unterstützt. Exemplarisch wird hier die Verbindung zu einer MySQL Datenbank gezeigt:

1. Treiber für die entsprechende Datenbank herunterladen und in das Verzeichnis“..\PenthaoReportDesigner\lib\jdbc\“ entpacken. Für MySQL heißt der Treiber Connector/J und kann hier als Plattform Independent Treiber in Form einer JAR-Datei (mysql-connector-java-5.1.30-bin.jar) heruntergeladen werden.

2. Im PRD oben rechts im Tab „Data“ einen Rechtsklick auf „Data Sets“ machen und JDBC wählen.

3. Im Fenster „JDBC Data Connection“ kann über das „+“ eine neue Verbindung hinzugefügt werden oder die „Custom Connection“ angepasst werden.

4. Im darauf folgenden Fenster wird die Datenbank ausgewählt und deren Zugangsdaten eingegeben. Für eine MySQL Datenbank sind dies die IP-Adresse des DB Server (127.0.0.1 oder localhost für eine lokale DB) und der Port 3306. Als Benutzer kann der root Benutzer mit entsprechenden Passwort gewählt werden.

5. Soll der Report in einem Pentaho BI Server oder einem Java Programm genutzt werden, sollte die Datenbankverbindung über einen JNDI Lookup erfolgen. So kann die DB-Verbindung für alle Reports zentral verwaltet werden.

Die JDBC Einrichtung zeigt folgender Screenshot:

Pentaho Report Designer - Datenbankverbindung einrichten

Die Verbindung zur Datenbank kann alternativ auch als „Generic Database“ hergestellt werden. Dazu wird der Connection String, Benutzer und Passwort der DB und der Name des Treibers angegeben. Einige Connection Strings sind unten aufgeführt:

Datenbank Connection String Treiber Classname
IBM DB2 jdbc:db2://HOST:PORT/DB COM.ibm.db2.jdbc.app.DB2Driver
Microsoft SQL Server jdbc:weblogic:mssqlserver4:DB@HOST:PORT weblogic.jdbc.mssqlserver4.Driver
Oracle Thin jdbc:oracle:thin:@HOST:PORT:SID oracle.jdbc.driver.OracleDriver
Firebird (JCA/JDBC Driver) jdbc:firebirdsql:[//HOST[:PORT]/]DB org.firebirdsql.jdbc.FBDriver
Microsoft SQL Server (JTurbo Driver) jdbc:JTurbo://HOST:PORT/DB com.ashna.jturbo.driver.Driver
Microsoft SQL Server (Sprinta Driver) jdbc:inetdae:HOST:PORT?database=DB com.inet.tds.TdsDriver
MySQL (Connector/J) jdbc:mysql://HOST:PORT/DB org.gjt.mm.mysql.Driver
Oracle OCI 8i jdbc:oracle:oci8:@SID oracle.jdbc.driver.OracleDriver
Oracle OCI 9i jdbc:oracle:oci:@SID oracle.jdbc.driver.OracleDriver
PostgreSQL (v6.5 and earlier) jdbc:postgresql://HOST:PORT/DB postgresql.Driver
PostgreSQL (v7.0 and later) jdbc:postgresql://HOST:PORT/DB org.postgresql.Driver
Sybase (jConnect 4.2 and earlier) jdbc:sybase:Tds:HOST:PORT com.sybase.jdbc.SybDriver
Sybase (jConnect 5.2) jdbc:sybase:Tds:HOST:PORT com.sybase.jdbc2.jdbc.SybDriver

Pentaho Reporting – Installation und Einführung

Pentaho Reporting ist eine OpenSource Reporting Lösung. Sie erlaubt das Erstellen von Reports (Berichten) für alle Datenquellen für die es JDBC Treiber gibt. Dazu zählen nahezu alle bekannten relationalen Datenbanken wie MySQL, MS SQL und Oracle. Die Pentaho Reporting Engine unterstützt mit PDF, Excel, HTML, Text, Rich-Text-File, XML und CSV verschiedene Ausgabeformate. Die Reports werden mit dem Pentaho Report Designer (PRD) erstellt welcher kostenlos herunterladen werden kann.

In diesem Kickoff Artikel wird kurz die Installation beschrieben und auf die Programmoberfläche eingegangen. Die weiteren Artikel beschreiben die Arbeit mit dem Pentaho Report Designer. Folgende Artikel sind bereits erschienen:

Inhaltsverzeichnis

Installation

Der Pentaho Report Designer setzt eine Java JRE voraus. Sofern diese noch nicht vorhanden ist muss es zunächst auf dem Computer installiert werden. Die eigentliche „Installation“ des Pentaho Report Designers besteht lediglich darin den Designer mit einem Zip Programm zu entpacken. Der Start erfolgt unter Windows über die Datei „report-designer.bat“.



Programmoberfläche

Der PRD erlaubt das grafische Erstellen von Reports. Die einzelnen Datenfelder und Designelemente können per Drag and Drop auf den Report gezogen werden. Einige der wesentlichen Funktionen werden kurz in folgendem Screenshot vorgestellt:
Penatho Report Programmoberfläche