Mit dem Modul "Reports (Gruppierungen)" können auf Basis von mit dem JasperSoft iReport-Designer (http://community.jaspersoft.com/project/ireport-designer) erstellten Reportdateien verfügbar gemacht und gruppierungsbasiert (in der Gruppierungsverwaltung) ausgeführt werden.
Grundsätzlich entspricht die Funktionalität weitgehend der Funktionalität des Moduls "Reports" (siehe Modul Reports). Die Besonderheit besteht darin, dass bei den Gruppierungs-Reports
- definiert werden kann, welche Gruppierung/en den Report verwenden können
- bestimmte Parameter im Report selbst den Zugriff auf Daten beschränken können.
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:
/home/jboss/reports/
Die Übersetzung der Report-Dateien erfolgt im Verzeichnis
/home/jboss/reports/build
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:
Parametername | Verwendungszweck | Beispiel |
---|---|---|
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 |
Beschreibung | Beschreibung des Reports | |
Gruppierung | Auswahl einer spezifischen Gruppierung, Nur dieser Gruppierung steht der Report zur Verfügung. | kann nicht mit "Ebene" kombiniert werden |
Ebene | Auswahl einer Ebene. Allen Gruppierungen dieser Ebene steht der Report zur Verfügung. | kann nicht mit "Gruppierung" kombiniert werden |
Ebene mit Hierarchie | Ergänzend zu "Ebene". Falls angehakt, steht der Report allen Gruppierungen der ausgewählten Ebene sowie allen Gruppierungen auf allen darunter liegenden Hierarchieebenen zur Verfügung. | |
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 |
Recht | Auswahl eines (funktionalen, nicht gruppierungsbeschränkten) Rechts, über das ein Benutzer verfügen muss, um den Report ausführen zu können. |
Vorlagen verwalten - Dateien ersetzen
Will man eine existierende Report-Vorlage überschreiben, muss zuerst der neue Report im Verzeichnis
/home/reports
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
./build
Falls die existierenden Dateien im Unterverzeichnis ./build nicht gelöscht wurden, werden die "alten" Dateien weiterverwendet.
.jrxml-Report/Vorlage erstellen oder bearbeiten
Einige grundsätzliche Informationen zum Erstellen der Report-Dateien finden sich hier: Modul Reports. Zu beachten sind die verborgenen Parameter, s.u.
Verborgene Parameter
Reports, die nicht durch administrative Benutzer mit Vollzugriff auf alle Gruppierungen und Mitglieder ausgeführt werden sollen, sondern im Rahmen der Gruppierungsverwaltung angeboten werden, 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.