Ablauf der Reporterzeugung » Historie » Version 3
Steffen Christgau, 10.04.2022 14:23
1 | 1 | Steffen Christgau | h1. Ablauf der Reporterzeugung |
---|---|---|---|
2 | |||
3 | h2. Prinzipieller Ablauf |
||
4 | |||
5 | 2 | Steffen Christgau | Reports werden grundsätzlich aus den Ergebnissen einer oder mehrerer Datenbankabfragen generiert. Die Ergebnisse werden in einer XML-Datei gespeichert. Aus dieser Rohdatendatei können mit Hilfe von _Backends_ verschiedene Ausgaben generiert werden. Zur Zeit sind dies bspw. PDF-Dateien, CSV-Dateien oder die direkte Ausgabe an den Drucker. Nicht für alle Reports werden alle Ausgabeformate unterstützt. |
6 | 1 | Steffen Christgau | |
7 | Die Einstellungen für die Reporterzeugung und einzelnen Reports erfolgt über eine Vielzahl von Dateien, die sich unter dem Verzeichnis @reporting@ befinden. |
||
8 | |||
9 | h2. Generierung der Rohdaten |
||
10 | |||
11 | 3 | Steffen Christgau | Die Rohdaten für die Report-Erzeugung werden aus Datenbank-Abfragen erstellt. Diese sind im Verzeichnis @Reporting\Queries@ als @.sql@-Dateien abgelegt. |
12 | 1 | Steffen Christgau | |
13 | h2. Umwandlung in Ausgabeformate |
||
14 | |||
15 | Die Umwandlung in andere Formate geschieht grundsätzlich mit XML-Stylesheets (XSL-Dateien). Diese Dateien befinden sich im Verzeichnis @XSL@ und Unterverzeichnissen, die nach dem jeweiligen _Backend_ benannt sind (@FP@ ist das Backend für den Direktdruck, @INC@ enthält allgemeine, wiederverwendbare Dateien). Soll ein Backend einen Report unterstützen, muss eine XSL-Datei im Verzeichnis des Backends mit dem Kürzel des Reports existieren (bspw. M_ME.xsl für das Meldeergebnis). Die XSL-Datei wird schließlich auf die XML-Datei, die die Rohdaten enthält, angewendet ("XSL Transformation":http://de.wikipedia.org/wiki/XSL_Transformation). |
||
16 | |||
17 | Zur Generierung von PDFs wird durch die XSL-Transformation eine XSL-FO-Datei erzeugt. Diese wird anschließend durch "Apache FOP":http://xmlgraphics.apache.org/fop/ in eine PDF-Datei umgewandelt. Da Apache FOP eine Java-Anwendung ist, ist für das Erzeugen von PDFs eine [[Aquarius_installieren#Systemvoraussetzungen|Java-Installation notwendig]]. |
||
18 | |||
19 | Im Falle von CSV erfolgt nach der XSL-Transformation keine weitere Umwandlung. |
||
20 | |||
21 | Für die direkte Druckausgabe wird eine Seitenbeschreibung generiert und anschließend an den Drucker gesendet. |
||
22 | 2 | Steffen Christgau | |
23 | h2. Zusätzliche Backends |
||
24 | |||
25 | Um einen neuen Dateityp unterstützen zu können, das auf einer Umwandlung von XML-Daten in ein anderes Dateiformat basiert, muss ein zusätzliches Backend angelegt werden. Hierfür sind Schritte notwendig: |
||
26 | |||
27 | 1. Unterhalb des Verzeichnis @Reporting\XSL@ muss ein neuer Ordner mit dem Namen des Backends angelegt werden. Üblicherweise entspricht dieser Name der Dateinamenserweiterung des erzeugten Dateien in Großbuchstaben. Für ein Backend, das Text-Dateien erzeugt, wäre also ein Verzeichnis @Reporting\XSL\TXT@ anzulegen |
||
28 | |||
29 | 2. Im Verzeichnis aus Schritt 1 muss eine Datei @config.ini@ angelegt werden. Diese enthält bspw. folgenden Inhalt <pre> |
||
30 | [ReportingXslt] |
||
31 | MimeType=text/plain |
||
32 | Extension=csv |
||
33 | Enabled=True |
||
34 | </pre>Hierbei entspricht der @MimeType@ einem eindeutigen Bezeichner des Ausgabetyps, unabhängig von der Dateierweiterung, die über den Schlüssel @Extension@ definiert wird. Über den Schlüssel @Enabled@ können Backends ein- und ausgeschaltet werden. |
||
35 | 1 | Steffen Christgau | |
36 | 3 | Steffen Christgau | Die Backends können auch in Verzeichnissen unterhalb des @Plugins@-Verzeichnis angelegt werden. Für das beispielhafte TXT-Backend könnte dies unter @Plugins\MeinPlugin\Reporting\XSL\TXT@ erfolgen. |