Mit dem Reports-Modul können auf Basis von mit dem JasperSoft iReport-Designer (http://community.jaspersoft.com/project/ireport-designer) erstellten Reportdateien verfügbar gemacht und zentral (in diesem Interface) oder gruppierungsbasiert (in der Gruppierungsverwaltung) ausgeführt werden.

Der Unterschied zwischen dem Modul "Vorlagen" und dem Modul "Reports" besteht daran, dass unter "Reports" auch das Ausführen eines Reports möglich ist. Bezüglich der Verwaltung von Reports sind beide Interfaces ansonsten identisch.

Reports dürfen nicht mit Berichten verwechselt werden (siehe Modul Berichte). Die Berichte stehen im Rahmen der Suchmaske (siehe Suche) zur Verfügung, um Reports für die Suchergebnisliste einer Suche zu erstellen und basieren auf einer anderen Technologie. Das Reports-Modul hingegen erlaubt es, im Backend des Systems im Prinzip beliebige Reports auf den Daten der Datenbank zu fahren.

Funktionsweise

Das Modul basiert auf den JasperReports Bibliotheken (freier Report-Designer unter http://community.jaspersoft.com/project/ireport-designer). Dabei werden .jrxml Dateien (Report-Vorlagen), die auf der Server-Umgebung zur Verfügung stehen - falls notwendig - zur Laufzeit (bei Report-Erzeugung) übersetzt. Danach wird der Report ausgeführt. Dazu stellt das System die aktuelle Datenbankverbindung und die benötigten Laufzeitparameter (Reporting-Parameter) zur Verfügung. Die Reporting-Parameter sind dabei von System-Seite definiert und nicht von Report-Seite.

Vorlagen verwalten - Anlegen & Bearbeiten von Reports

Report im Dateisystem ablegen

Nachdem ein Report als .jrxml-Datei erstellt wurde (s.u.), muss der Report zuerst physisch an der definierten Stelle im Dateisystem abgelegt werden; es ist im Moment nicht möglich, Reports direkt hochzuladen:

Die Übersetzung der Report-Dateien erfolgt im Verzeichnis

In diesem Verzeichnis entsteht eine umbenannte Kopie der Original-.jrxml-Datei sowie weitere Dateien (.jasper). Erforderlich sind Lese- und Schreibberechtigung für den Benutzer, unter dem der Application Server läuft.

Bei der Erzeugung der Reports entstehen im Verzeichnis /tmp ebenfalls temporäre Dateien. Diese sollten bzw. müssen regelmäßig über einen Systemjob (cron-job) aufgeräumt werden.

Anlegen & Bearbeiten von Reports

Damit eine ins Dateisystem kopierte Vorlage verwendet werden kann, muss diese dem System anschließend bekannt gemacht werden, indem im Interface ein neuer Report angelegt wird. Folgende Parameter müssen definiert sein:

ParameternameVerwendungszweckBeispiel
Name

Interner Name der Vorlage. Dieser Name wird u.a. verwendet, um aus der auf sem Server hinterlegten .jrxml-Datei die ausführbaren Dateien zu erzeugen.

Es sind nur alphanumerische Zeichen zulässig, keine Leerzeichen, der Name muss eindeutig sein.

musterReport20
BeschreibungBeschreibung des Reports 
Dateipfad

Absoluter Pfad der .jrxml Datei auf dem Server.

  • /home/jboss/reports/
/home/jboss/reports/musterTemplate.jrxml
XML-Dateinicht implementiertmuss leer bleiben
Report-KlasseSystem-Klasse, für die der Report verwendet werden kann.de.iconcept.nami.entity.abrechnung.Rechnung
Subreport-ID

Kontext-spezifische ID eines Report anhand einer übergebenen Kontextvariablen.

Beispiel: Bei der Erstellung einer Ausgangsrechnung wird als Kontext-ID die ID der Gruppierung, die die Ausgangsrechnung erstellt hat, übergeben. Existiert nun ein Eintrag mit der Subreport-ID 20, dann wird nicht die Standardvorlage verwendet, sondern die spezifische Vorlage.

20
RechtAuswahl eines (funktionalen, nicht gruppierungsbeschränkten) Rechts, über das ein Benutzer verfügen muss, um den Report ausführen zu können. 
Standard ErgebnistypStandard Mime-Typ des Ergebnisses (PDF, XLS). Ab Version 1.5.1.6, Unterstützung bei der Reportausführung (Gruppierung), ab Version 1.5.1.7 

Vorlagen verwalten - Dateien ersetzen

Will man eine existierende Report-Vorlage überschreiben, muss zuerst der neue Report im Verzeichnis

abgelegt werden (s.o.).

Damit der Report neu übersetzt wird, muss außerdem die vom System erzeugte Report-Datei (.jrxml) und auch die kompilierte Version entfernt werden (.jasper). Die Namen der Dateien (ohne Suffix) entsprechen dem Namen in der JasperReport-Tabelle. Diese Dateien befinden sich im Unterverzeichnis

Falls die existierenden Dateien im Unterverzeichnis ./build nicht gelöscht wurden, werden die "alten" Dateien weiterverwendet.

Besonderheiten beim Arbeiten mit Sub-Reports

Das System unterstützt Vorlagen, die mit Sub-Reports arbeiten, nicht automatisch. Wird ein solcher Report wie oben beschrieben in das Verzeichnis /home/jboss/reports/ geladen, so kann er nicht ausgeführt werden.

Um einen Report mit Sub-Reports lauffähig zu bekommen, müssen zusätzlich alle Sub-Reports als .jasper-Dateien in das Unterverzeichnis

gelegt werden.

Sicherheit - Beschränkung des Datenzugriffs

Da das Reporting Modul ggf. Zugriff auf sämtliche Daten benötigt, ist eine Rechtekontrolle innerhalb der Daten, die für einen Report verwendet werden, nicht mehr möglich. Das bedeutet, dass der Benutzer, der einen Report erstellt, sich um das Thema Datensicherheit kümmern muss, insbesondere bei gruppierungsspezifischen Reports. Reports können nur von Benutzern mit entsprechenden Rechten angelegt werden, außerdem müssen die Report-Dateien physikalisch auf dem Server abgelegt werden.

Erstellen von Reports als .jrxml-Datei

Software zum Erstellen von Reports

Alle Vorlagen (.jrxml) können mit dem iReport-Designer (ab Version 5.1) der JasperSoft Community (siehe http://community.jaspersoft.com/project/ireport-designer) bearbeitet werden.

Eine Datenbank für die Bearbeitung von Reports ist nicht notwendig. Allerdings liefert der Preview dann natürlich keine Ergebnisse.

Parameter / Eingabemaske

Parameter für die Eingabe durch den Benutzer, der den Report ausführt (bzw. verborgene Parameter bei Gruppierungsspezifischen Reports) werden nach folgendem Schema definiert:

<parameter name="´Mitglied_ID" class="java.lang.Long"/>

In der Maske wird dann "Mitglied_ID" bei dem jeweiligen Feld angezeigt.

Wichtige Hinweise:

  • Parameternamen dürfen keine Leerzeichen oder Sonderzeichen enthalten und nicht mit einer Zahl beginnen.
  • Für die Sortierung der Parameter der Eingabemaske zum Ausführen des Reports verwendet das System immer alphanumerisch aufsteigende Sortierung. Um eine sinnvolle Sortierung der Felder in der Maske zu erreichen, können beim Erstellen des Reports bei Bedarf den einzelnen Parameternamen  Buchstaben (A-Z, a-z) vorangestellt werden, Zahlen oder andere Zeichen sind nicht unterstützt.

Ab Version 1.5.1.5 wird der Zeitstempel des Orginalreports gegen die compilierten Versionen geprüft. Ist dieser neuer wird der Report automatisch neu übersetzt. Dies gilt NICHT für Subreports in einem Report. Diese müssen IMMER compiliert im build Verzeichnis liegen. Dies gilt auch für referenzierte Style-Dateien und eingebettete Bilder.

 

Schriften

Bei Änderungen an den Reports sollte unbedingt darauf geachtet werden, dass nicht alle Schriftarten (Fonts), die ggf. im Report Designer angeboten werden, verwendbar sind. Verwendet werden können nur diejenigen Schriftarten, die auf dem Server, auf dem der Report später erzeugt wird, auch installiert sind. Da die Font-Dateien sind nicht Bestandteil der Reportvorlage sind (da die Weitergabe von Fonts ggf. rechtlichen Beschränkungen unterliegen kann), sollte die Reporterzeugung in jedem Fall auf dem Zielsystem geprüft werden.

Darüber hinaus sollte -sofern die verwendeten Schriften keine Standardschriften sind - die Option "pdfEmbedded" (im iReport Designer unter "Styles") angehakt werden. Dies führt bei der Erzeugung des Reports aus der Reportvorlage dazu, dass die verwendete Schriftart in der erzeugten PDF-Datei enthalten ist. Damit kann erreicht werden, dass ein Dokument auch auf Systemen angezeigt (gedruckt) werden kann, die die angegebene Schriftart nicht kennen.  

Sollen andere Schriften als die Standardschriften verwendet werden, dann sollte vorab geprüft werden, ob diese auf dem Server System installiert sind (Kommandozeile: fc-list :lang=DE).

Standardschriften

Die JasperReport Biliotheken verwenden die iText Bibliotheken, um die Schriften zu rendern. Folgende Schriften funktionieren damit in jedem Fall:

Bilddateien in Reports

Bilddateien - wie etwa Logos - die im Report verwendet werden, müssen ins Build-Verzeichnis (z.B. /home/jboss/reports/build) kopiert werden und die Pfade im Report müssen entsprechend gesetzt werden (nicht absolut angeben).

 

Style Dateien

Für Style-Dateien (.jrtx) gilt das gleiche, wie für Bilddateien. Die Style-Datei muss im "/build" Unterverzeichnis abgelegt sein, da der Report im Build-Verzeichnis erzeugt wird und die referenzierte Style-Datei von hier aus relativ gefunden werden muss.

Beispieldatenbank

Eine Beispieldatenbank dient dazu, sich die Ergebnisse von Änderungen an Vorlagen sinnvoll ansehen zu können. Beispieldatenbank auf dem Produktivsystem erzeugen über folgende shell-Kommandos:

Typische Fehlerquellen

Gruppierungsspezifische Reports

Für Reports, die nicht durch administrative Benutzer mit Vollzugriff auf alle Gruppierungen und Mitglieder hier ausgeführt werden sollen, sondern im Rahmen der Gruppierungsverwaltung angeboten werden, siehe Modul Reports (Gruppierungen).

Standard-Vorlagen für das Modul Führungszeugnisse

Siehe dazu Modul Vorlagen.

Standard-Vorlagen für die Abrechnung

Siehe dazu Modul Vorlagen.

Hinweis: Beim Report für die Mitgliedsabrechnung muss bei der Klassen-Defintion (Feld: Report-Klasse) die Klasse de.iconcept.nami.entity.abrechnung.RechnungMgl gesetzt werden.

 

Ausführen von Reports

Vorausgesetzt, der Benutzer verfügt über entsprechende Rechte, kann ein Report in der Liste markiert und mit rechtem Mausklick über

ausgeführt werden. Es öffnet sich eine Maske mit den jeweils im Report definierten Eingabeparametern (s.o.).

Der Report wird anschließend als PDF-Datei (oder .xls-Datei) zum Download angeboten:

Der Link kann genau ein einziges Mal verwendet werden, d.h. die Dateien werden nicht dauerhaft auf dem Server gespeichert.

Zum Ausführen von gruppierungsspezifischen Reports siehe Reports (Gruppierung).

 

Ab Version 1.5.1.5 gibt wird nur noch ein Link angeboten. "Ausführen generisch". Das Formular enthält jetzt die Auswahl für den Ergebnistyp (PDF oder xls).

 

Reportparameter

Ab Version 1.5.1.5 unterstützt das System die Verwendung von Reportparametern. Dazu muss der Systemparameter "REPORT_USE_ICA_PARAMTER" gesetzt sein (siehe auch: Systemkonfiguration)

Bei Anlage, bzw. Änderung eines Reports werden die Reportparameter ausgelesen und in der Datenbank abgelegt. 

 

Bedeutung

Für jeden Reportparameter können folgende Werte bestimmt werden:

FeldBedeutung 
AnzeigenameAbweichender Name für den Parameter bei Ausführung des Reports (nur für die Anzeige). Der vom Benutzer eingegebene Wert wird dem Report nach wie al "Parameter Name" übergeben 
Reihenfolge

Reihenfolge, in der der Parameter im Eingabeformular angezeigt werden soll

 
Parametertyp
  • Benutzereingabe (Wert wird im Forumlar angezeigt)
  • URL Parameter (für zukünftige Benutzung)
  • Entity ID : Der Parameter bekommt die "Zeile", aus der der Report aufgerufen wurde. Das Feld wird NICHT im Formular angezeigt, sondern vom System vor Reportausführung belegt.
  • Owner ID: Der Parameter bekommt den "Besitzer" der Zeile aus der der Report aufgerufen wurde (bei gruppierungsspezifischen Reports, die id der besitzenden Gruppierung). Das Feld wird NICHT im Formular angezeigt, sondern vom System vor Reportausführung belegt.
 

Geändertes Verhalten bei Verwendung von Reportparametern

Wenn ein Report ausgeführt wird

Rechte

Für die Verwaltung der Report-Parameter werden die Rechte (ID Menu: 150 und zugehörige ID Rechte) benötigt. Für die automatische Anlage, bzw. Aktualisierung reicht das entsprechende Report Recht.