Template Struktur
Die Template Struktur und der Aufbau ist abhängig von den Dateiformaten xlsx und docx.
Templates werden im Filemanager oder auf dem Webdav abgelegt.
In der ExportDefinition erfolgt der Aufruf des Templates unter Angabe des Pfades.
Hinweis:
Bei der Erstellung von Templates geht der Editor schnell kaputt und generiert defekte Templates. Im Template ist dies nicht erkennbar! Die Ausführung des Export erzeugt einen Error. Bisherige Arbeiten am Template sind erneut durchzuführen bzw. alle Arbeiten ab der letzten funktionalen Version. Es empfiehlt sich step by step vorzugehen und die Arbeiten wie folgt zu iterieren: anpassen, hochladen, ausführen.
Es ist weiterhin darauf zu achten, dass keine unnötigen Zeichen im Template vor der Ausgabe des Records stehen. DIes führt ebenso oftmals zu Fehler oder defekten Templates.
Weiterhin empfiehlt sich bei der Erstellung von Templates kein LibreOffice einzusetzen, speziell wenn das Ergebnis des Export mit MSO oder OO erfolgt. Hier kommt es oft zu ungewollten Formatierungen.
Blöcke
Grundsätzlich werden Export Templates in Blöcke unterteilt, welche je nach Dateiformat unterschiedlich sind.
Eigenschaften
- Blöcke können ineinander verschachtelt werden
- jeder Block besteht aus einem
Startund einemEnde - Blocktitel werden in Grossbuchstaben angegeben
- innerhalb von
StartundEndeerfolgt die Ausgabe der erforderlichen Daten, Bilder, Steuerelemente etc. - ein Template Prozessor kopiert den Block und ersetzt diesen mit Inhalt
- jeder Block wird mindestens einmal oder pro gefundenem Datensatz ausgegeben
Syntax
[Start] => ${BLOCK}
[Ende] => ${/BLOCK}
Dateiformat xlsx
Record Block
Die Ausgabe pro Record erfolgt in Zeilen mit dem Befehl ROWS.
Dabei wird der Start des Blockes in der ersten Zelle vorangestellt und in der letzten Zelle mit dem Ende des Blocks geendet.
Die Ausgabe von Records innerhalb von Gruppen erfolgt mit dem Befehl GROUPSTART in Kombination mit dem Befehl ROWS.
Dabei wird der GROUPSTARTBlock in einer Zeile vor der Ausgabe der ROWSZeile mit den auszugebenden Gruppendaten gesetzt.
Beispiel - Records mit Ergebnis 3 Datensätze:
${ROWS}{{record.email_adr}} | {{record.last_name}} | {{record.first_name}}${/ROWS}
mustermann@firma.de | Mustermann | Hans
musterfrau@firma.de | Musterfrau | Erika
test@firma.de | Test | Testi
Beispiel - Records nach Gruppen mit Ergebnis 3 Datensätze in 2 Gruppen:
${GROUPSTART}{{record.group_title}}${/GROUPSTART}
${ROWS}{{record.email_adr}} | {{record.last_name}} | {{record.first_name}}${/ROWS}
Gruppe 1
mustermann@firma.de | Mustermann | Hans
musterfrau@firma.de | Musterfrau | Erika
Gruppe 2
test@firma.de | Test | Testi
Dateiformat docx
Record Block
Die Ausgabe pro Record erfolgt als Block innerhalb der Befehle Start und Ende.
Innerhalb des Blocks können diverse Daten ausgegeben werden.
Soll z.B. zwischen jedem Record ein Linie zur Trennung, ist ein RECORD_SEPARATORBlock erforderlich.
Beispiel - Records mit Ergebnis 3 Datensätze:
${RECORD_BLOCK}
{{record.email_adr}}
{{record.first_name}} {{record.last_name}}
${/RECORD_BLOCK}
mustermann@firma.de
Hans Mustermann
musterfrau@firma.de
Erika Musterfrau
test@firma.de
Testi Test
Beispiel - Trennlinie zwischen Records mit Ergebnis 3 Datensätze:
${RECORD_BLOCK}
{{record.email_adr}}
{{record.first_name}} {{record.last_name}}
${/RECORD_BLOCK}
${RECORD_SEPARATOR}
__________________________________________________________________________________
${/RECORD_SEPARATOR}
Text: Hier erfolgt die weitere Ausgabe.
mustermann@firma.de
Hans Mustermann
__________________________________________________________________________________
musterfrau@firma.de
Erika Musterfrau
__________________________________________________________________________________
test@firma.de
Testi Test
__________________________________________________________________________________
Text: Hier erfolgt die weitere Ausgabe.
Datasource Block
Mit Hilfe von DATASOURCEBlöcken, können diverse Daten für den Export aufbereitet werden.
Somit wird ermöglicht z.B. Daten vorzufiltern oder ganz bestimmte Daten für den Export zusammenzustellen.
Hierfür wird pro DATASOURCE ein eigenes PlugIn implementiert, welches in der Export Definition aufgerufen wird.
DATASOURCEBlöcke erhalten einen Namenszusatz und haben einen Start und ein Ende.
In einem Template können mehrere DATASOURCEBlöcke ausgeführt werden.
Innerhalb eines DATASOURCEBlock können diverse weitere Blöcke (Group, Record,Separator) etc. und Daten ausgegeben werden.
Hinweis:
Erfolgt innerhalb einerDATASOURCEdie Ausgabe der Daten mit Hilfe einer Tabelle, ist jede Zeile ein Datensatz (Record).
Ohne Tabellenausgabe wird einRECORD_BLOCKinnerhalb derDATASOURCEbenötigt.
Beispiel - Records einer speziellen Datasource nach Gruppen inkl. Trennlinie mit Ergebnis 3 Datensätze in 2 Gruppen:
- die
DATASOURCE_calenthält z.B. alle Freizeit-Kalender - der
GROUP_BLOCKBlock gruppiert Kalender-übergreifend nach Datum und sortiert die Termine nach Zeit exportgroupdatagibt das Datum einmalig pro Gruppe aus- pro
RECORD_>BLOCKinnerhalb vonexportgroupdatawerden die Termindaten ausgegeben - nach Ausgabe einer
GROUP_BLOCK(Gruppenwechsel = Datum) erfolgt die Ausgabe einesGROUP_SEPARATORin Form einer Linie
${DATASOURCE_cal}
${GROUP_BLOCK}
++ {{exportgroupdata}} ++
${RECORD_BLOCK}
{{record.dtstart.format('H:i')}} - {{record.summary}}, {{record.location}}
${/RECORD_BLOCK}
${/GROUP_BLOCK}
${GROUP_SEPARATOR}
__________________________________________________________________________________
${/GROUP_SEPARATOR}
${/DATASOURCE_cal}
++ 01.01.2024 ++
10:00 - Yoga, Kiel
11:00 - Kinderchor, Laboe
__________________________________________________________________________________
++ 02.01.2024 ++
10:00 - Gospel, Kiel
__________________________________________________________________________________