DOCX-Template-Funktionen
Alle Hilfsfunktionen, die Sie direkt in einem Word-Template verwenden können
Beim Generieren eines Word-Reports stellt flexiDok eine Reihe von Hilfsfunktionen zur Verfügung, die Sie direkt in Ihrem Word-Template aufrufen können - zum Beispiel, um Bilder einzufügen, Listen zu erzeugen oder Datumswerte zu formatieren.
So rufen Sie Funktionen im Template auf
Die Funktionen werden über die normale Template-Syntax verwendet:
| Syntax | Bedeutung |
|---|---|
+++INS funktion(arg)+++ |
Funktion aufrufen und Ergebnis als Text einfügen |
+++FOR eintrag IN funktion(arg)+++ … +++END-FOR eintrag+++ |
Über Listen-Ergebnis iterieren |
+++IMAGE funktion(arg)+++ |
Bild einfügen, das eine Funktion zurückgibt |
+++EXEC funktion(arg)+++ |
Funktion ausführen, ohne ein Ergebnis anzuzeigen |
Übersicht
| Funktion | Wofür |
|---|---|
createPDFPages |
PDF-Seiten als Bilder ins Dokument einfügen |
createImage |
Einzelnes Bild aus einer Bildsammlung einfügen |
createImageFromPDF |
Bereits geladenes PDF-Seitenbild wiederverwenden |
getValidator |
Namen des Ersteller-/Prüferuser für Unterschriftenzeile |
getFilename |
Dateinamen nach konfigurierter Regel erzeugen |
formatDate |
Datumswert formatieren |
timespanToMinutes |
Zeitwert in Minuten umwandeln |
fromDatabase |
Wert aus einer hinterlegten Lookup-Tabelle holen |
getComponentListByChapterSectionComponentName |
Alle Vorkommen einer bestimmten Komponente sammeln |
getComponentListByChapterSectionName |
Alle Komponenten eines Abschnitts sammeln |
getComponentListForAllSectionsByChapterName |
Pro Abschnitt ein flaches Objekt erzeugen (z.B. für Tabellen) |
getListFromChapterAndChapterType |
MultiChapter nach Typ filtern |
Bild- und PDF-Funktionen
createPDFPages
Rendert ein im Dokument hinterlegtes PDF seitenweise als Bilder, die dann mit +++IMAGE ...+++ ins Word-Template eingebettet werden.
Parameter
| Name | Beschreibung |
|---|---|
pdfInput |
PDF-Feld aus dem Dokument (z.B. aus einem Zertifikats- oder Anhang-Feld) |
pages |
Seitenbereich - z.B. `1-3`, `1,3,5` oder `` für alle Seiten |
width |
Breite in cm (Standard: 14) |
height |
Höhe in cm (Standard: 20) |
rotationInDegree |
Rotation in Grad, z.B. `90` (Standard: keine Rotation) |
Beispiel
+++FOR page IN createPDFPages(anhang.pdf)+++
+++IMAGE $page+++
+++END-FOR page+++
createImage
Fügt ein einzelnes Bild aus einer Bildsammlung ins Template ein. Eventuell auf dem Bild hinterlegte Markierungen/Beschriftungen (Annotationen) werden dabei automatisch mit eingebrannt.
Parameter
| Name | Beschreibung |
|---|---|
image |
Bild-Eintrag aus einer Bildsammlung |
width |
Breite in cm (Standard: 6) |
height |
Höhe in cm (Standard: 6) |
ppiOverride |
Bildauflösung (PPI) für genau dieses Bild; übersteuert die Template-Einstellung Bildauflösung im PDF. 0 = kein Herunterskalieren (Originalauflösung). Leer lassen bzw. null ⇒ Template-Einstellung verwenden |
showAlt |
true ⇒ Titel des Bildes als Alt-Text übernehmen |
showCaption |
true ⇒ Kommentar des Bildes als Bildunterschrift übernehmen |
rotationInDegree |
Rotation in Grad (Standard: keine Rotation) |
Beispiel
+++FOR pic IN allgemein.fotos.bilder+++
+++IMAGE createImage($pic, 10, 7, null, true, true)+++
+++END-FOR pic+++
Einzelnes Bild mit fester Auflösung von 300 PPI:
+++IMAGE createImage($pic, 7.5, 5, 300)+++
createImageFromPDF
Übernimmt ein bereits geladenes PDF-Seiten-Bild (z.B. aus createPDFPages) in die Form, die +++IMAGE+++ erwartet. Sinnvoll, wenn Sie zwei Template-Durchläufe auf dasselbe Bild machen möchten, ohne die PDF-Seite erneut zu rendern.
Beispiel
+++IMAGE createImageFromPDF(seite)+++
Text- und Datums-Funktionen
getValidator
Liefert den Namen des Benutzers, der das Dokument erstellt hat - gedacht für Unterschriftenblöcke.
Parameter
| Name | Beschreibung |
|---|---|
firstNameFirst |
true ⇒ “Vorname Nachname” · false (Standard) ⇒ “Nachname Vorname” |
Beispiel
Geprüft durch: +++INS getValidator(true)+++
getFilename
Erzeugt den Dateinamen des Reports anhand der Regel, die im Dokument unter Dynamischer Dateiname konfiguriert ist. Die dort angelegten Bausteine (Feldwerte, Trennzeichen, Freitext, Revisionsnummer) werden in der eingestellten Reihenfolge zusammengesetzt.
Beispiel
Dateiname: +++INS getFilename()+++
formatDate
Formatiert einen Datumswert. Die Sprache entspricht der in flexiDok eingestellten Oberflächensprache.
Parameter
| Name | Beschreibung |
|---|---|
datestr |
Datumswert (z.B. aus einem Eingabefeld) |
format |
Formatvorlage, z.B. `dd.MM.yyyy`, `MMMM yyyy`, `MMyy` |
Ist der Eingabewert kein gültiges Datum, wird ein Hinweistext in der aktuellen Sprache ausgegeben.
Beispiel
Erstellt am +++INS formatDate(allgemein.dokumentation.datum.value, `dd.MM.yyyy`)+++
timespanToMinutes
Wandelt einen Zeitwert in Sekunden in das Format m:ss um.
Beispiel - 725 wird zu "12:05":
Dauer: +++INS timespanToMinutes(messung.ablauf.dauer_sekunden.value)+++ min
Bei einem ungültigen Wert wird ein leerer Text zurückgegeben.
fromDatabase
Schlägt einen Eintrag in einer der in flexiDok hinterlegten Lookup-Tabellen (z.B. Kundenstammdaten, Artikellisten) nach.
Parameter
| Name | Beschreibung |
|---|---|
database |
Name der Datenbank |
document |
Name der Tabelle/des Dokuments innerhalb der Datenbank |
searchKey |
ID, nach der gesucht wird |
Wird der Eintrag gefunden, erhalten Sie das komplette Objekt und können auf alle Felder zugreifen.
Beispiel
+++INS fromDatabase(`kunden`, `stammdaten`, allgemein.kunde.id.value).name+++
Listen-Funktionen
Diese Funktionen helfen dabei, Daten aus mehreren Kapitel-Wiederholungen oder Abschnitten gesammelt im Template zu verwenden - typischerweise für Tabellen oder Aufzählungen.
getComponentListByChapterSectionComponentName
Sammelt alle Vorkommen einer bestimmten Komponente über alle Wiederholungen eines Kapitels hinweg.
Parameter
| Name | Beschreibung |
|---|---|
chaptername |
Name des Kapitels |
sectionname |
Name des Abschnitts darin |
componentname |
Name der Komponente, deren Werte gesammelt werden sollen |
Anwendungsfall - Wenn in jeder Wiederholung eines Kapitels dasselbe Feld existiert (z.B. ein Messwert) und Sie alle Werte gebündelt auflisten möchten.
Beispiel
+++FOR m IN getComponentListByChapterSectionComponentName(`kapitelname`, `abschnittname`, `komponentenname`)+++
Nr. +++INS $m.ChapterCount+++: +++INS $m.value+++
+++END-FOR m+++
getComponentListByChapterSectionName
Wie oben, liefert aber alle Komponenten eines Abschnitts - nicht nur eine bestimmte.
Parameter
| Name | Beschreibung |
|---|---|
chaptername |
Name des Kapitels |
sectionname |
Name des Abschnitts |
Beispiel
+++FOR c IN getComponentListByChapterSectionName(`kapitelname`, `abschnittname`)+++
+++INS $c.name+++: +++INS $c.value+++
+++END-FOR c+++
getComponentListForAllSectionsByChapterName
Liefert pro Abschnitt ein flaches Objekt mit allen Komponenten dieses Abschnitts - ideal, wenn jeder Abschnitt eine Zeile einer Tabelle ergibt.
Jeder Eintrag enthält zusätzlich Name und Title des Abschnitts.
Beispiel
+++FOR s IN getComponentListForAllSectionsByChapterName(`kapitelname`)+++
+++INS $s.Title+++: +++INS $s.wert.value+++ +++INS $s.einheit.value+++
+++END-FOR s+++
Bei wiederholten Kapiteln erhalten Sie eine Liste von Listen (eine pro Wiederholung).
getListFromChapterAndChapterType
Filtert ein wiederholtes Kapitel auf die Einträge eines bestimmten Kapitel-Typs.
Parameter
| Name | Beschreibung |
|---|---|
chaptername |
Name des Kapitels |
multichaptertype |
Kapitel-Typ, nach dem gefiltert werden soll |
Beispiel
+++FOR e IN getListFromChapterAndChapterType(`kapitelname`, `TypA`)+++
+++INS $e.Title+++
+++END-FOR e+++
