Skip to content

DOCX-Template-Funktionen

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

Schleifenvariable mit $

Innerhalb einer FOR-Schleife wird die Schleifenvariable mit $ präfixiert angesprochen — also +++IMAGE $page+++, nicht +++IMAGE page+++.


Ü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:Sekunden 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+++

Tip

Kann ein PDF nicht geladen werden, wird automatisch ein Platzhalter-PDF verwendet, damit der Report trotzdem generiert werden kann.


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)

Reihenfolge der Parameter

ppiOverride steht vor showAlt und showCaption. Wer showAlt/showCaption setzt, muss ppiOverride davor angeben – mit null für die Template-Einstellung oder 0 für die Originalauflösung. Beispiel: createImage($pic, 10, 7, null, true, true).

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.

Beispiel725 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+++