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
Nachdem ein Report als .jrxml-Datei erstellt wurde (Erläuterungen dazu siehe Modul Reports), muss der Report physisch an der definierten Stelle im Dateisystem abgelegt werden; es ist im Moment nicht möglich, Reports direkt hochzuladen.
Damit Vorlagen verwendet werden können, müssen 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. | |
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 |
Recht | Auswahl eines (funktionalen, nicht gruppierungsbeschränkten) Rechts, über das ein Benutzer verfügen muss, um den Report ausführen zu können. |
Die Übersetzung der Report-Dateien erfolgt im Verzeichnis
/home/jboss/reports/build
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.
Vorlagen verwalten - Dateien ersetzen
Bei der Aktualisierung von Report-Vorlagen muss der neue Report im definierten Verzeichnis, also z.B.
/home/jboss/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.
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.