Das Vorlagen-Modul ermöglicht die Anpassung von Reports, die vom System verwendet werden, um bestimmte Dokumente zu erzeugen, z.B. Rechnungsvorlagen. Außerdem tauchen hier auch alle individuellen Reports auf, die unter Modul Reports erstellt wurden. Der Unterschied zwischen beiden Modulen besteht daran, dass nur unter "Reports" auch das Ausführen eines Reports möglich ist.
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.
Damit Vorlagen verwendet werden können, müssen diese dem System über die Module/JasperReports Tabelle bekannt gemacht werden. Folgende Parameter müssen definiert sein:
Parametername | Verwendungszweck | Beispiel |
---|---|---|
Name | Intern: Interner Name der Vorlage zur Identifikation im System-Logging. Es sind nur alphanumerische Zeichen zulässige. Keine Leerzeichen. Das Name muss eindeutig sein. | musterReport20 |
Beschreibung | Beschreibung des Reports | |
Dateipfad | Absoluter Pfad der .jrxml Datei auf dem Server | /home/jboss/reports/musterTemplate.jrxml |
XML-Datei | nicht implementiert | muss leer bleiben |
Report-Klasse | System-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 |
Die Übersetzung der .Report-Dateien erfolgt im Verzeichnis
/home/jboss/reports/build
Erforderlich sind Lese- und Schreibberechtigung für den Benutzer, unter dem der Applikation 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.
Verwendung
Rechnungsvorlagen
Das Modul wird gegenwärtig zum einen für die Abrechnung (Rechnungsvorlagen) verwendet. In der Regel existiert für die Eingangs- und Ausgangsrechnungen ein Standardvorlage. Die Definition für die zu verwendende Standardvorlage wird in der Regel über Systemparameter gesteuert.
Systemparameter | Verwendung | Voreinstellung |
---|---|---|
RECHNUNG_REPORT_MITGLIEDER_DEFAULT | Vorlage Ausgangsrechnung Mitgliederabrechnung | 2 |
RECHNUNG_REPORT_VERBAND_DEFAULT | Vorlage Ausgangsrechnung Verbandsabrechnung | 4 |
Individuelle Reports
Im Bereich Modul Reports können beliebige individuelle Reports verwaltet werden, die entweder dort auch ausgeführt werden, oder aber als gruppierungsspezifische Reports in der Gruppierungsverwaltung zur Verfügung stehen (siehe Reports).
Besonderheiten für gruppierungsspezifische Reports
Reports, die nicht durch administrative Benutzer mit Vollzugriff auf alle Gruppierungen und Mitglieder ausgeführt werden sollen, sondern im Rahmen der Gruppierungsverwaltung angeboten werden (siehe Reports), sollten in der Report-Datei bestimmte Parameter verwenden, die den Zugriff auf Daten automatisch beschränken:
Parameter | Beschreibung | Bemerkungen |
---|---|---|
h_grpId | ID der aktuellen Gruppierung | |
h_grpNummer | Gruppierungsnummer der aktuellen Gruppierung | |
h_ebeneTiefe | Wert der Ebene, Angabe als ganzzahlige Zahl | |
h_crtUserId | ID des aktuellen Benutzers |
Diese Parameter werden in der Maske beim Ausführen des Reports nicht angezeigt, aber automatisch mit den Daten des aktuellen Kontexts gefüllt. So wird eine Beschränkung der Ergebnisse z.B. auf die aktuelle Gruppierung erreicht, aus der ein Report ausgeführt wird.
Mindestens das Setzen von h_grpId sollte immer stattfinden. Wird keiner der aufgeführten Parameter gesetzt, ist ein Zugriff auf alle Daten möglich, wenn der Report ausgeführt wird.
Sicherheit
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.
(Standard)Vorlagen bearbeiten
Alle (Standard)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.
Aktualisierung von Report Vorlagen
Bei der Aktualisierung von Report-Vorlagen muss der neue Report im Verzeichnis
/home/reports
abgelegt werden. Damit der Report neu übersetzt wird, muss die vom System erzeugte Report-Datei (.jrxml) und die kompilierte Version entfernt werden (.jasper). Die Namen der Dateien (ohne Suffix) entsprechen dem Namen in der JasperReport-Tabelle. Falls die existierenden Dateien im Unterverzeichnis
./build
nicht gelöscht wurden, werden die "alten" Dateien weiterverwendet.
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:
Courier
Courier-Bold
Courier-BoldOblique
Courier-Oblique
Helvetica
Helvetica-Bold
Helvetica-BoldOblique
Helvetica-Oblique
Symbol
Times-Roman
Times-Bold
Times-BoldItalic
Times-Italic
ZapfDingbats
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:
user=LIVE_USER
db=LIVE_DB
host=LIVE_HOSTmysqldump -u $user -p -h $host $db Rechnung RechnungsItem LinkableEntry \
ZahlungsKondition BeitragsSatz BeitragsArt BeitragsKonto BeitragsZahlung> ica_report_data.sql
Standardvorlagen
Liste der Standardvorlagen, die mindestens in der jeweils aktuellen Version mit dem System installiert werden:
Vorlagenname | Inhalt |
---|---|
rechnungMitglieder.jrxml | Vorlage für die Rechnung bei Mitgliederabrechnung. |
rechnungVerbandMitEinzel.jrxml | Vorlage für die Rechnung bei Verbandsabrechnung. |