RechnungFertig nutzt die Technik rund um docx-template, um Rechnungsvorlagen während der Rechnungserstellung mit Inhalten zu befüllen. Dieser Artikel zeigt Schritt für Schritt, wie das funktioniert.
Variablen in Rechnungsvorlagen einsetzen
Die Templatesprache funktioniert standardmässig mit Platzhaltern in geschweiften Klammern.

Beim Generieren der Rechnung ersetzt die Software diese Variablen automatisch mit den passenden Daten.

Damit das Befüllen der Rechnungsvorlage effizient ablaufen kann, kann man innerhalb des Programms über die Einstellungen auf der Rechnungsseite die Schlüsselwörter zu den Feldern sichtbar machen. Ein Klick auf das Schlüsselwort führt dazu, dass das Wort mit der korrekten Platzhalterformatierung in die Zwischenablage kopiert wird, so dass man es von da aus in der Word-Vorlage gleich einfügen kann:

Datumsformat richtig darstellen (fdate)
Mit Hilfe der Funktion fdate() lässt sich das Datum mit führenden Nullen darstellen:
Beispiel:
{fdate(rdatum)} für 3.6.2026 wird zu 13.06.2026
Internationale Datumsformate
Die Funktion unterstützt auch lokalisierte Datumsformate.
Beispiel:
{fdate(rdatum, 'de-DE')} // 13.06.2026
{fdate(rdatum, 'fr-FR')} // 13/06/2026
Dadurch passt sich die Darstellung automatisch an landesspezifische Konventionen an.
Geldbeträge korrekt formatieren (fnum)
Geldbeträge können mit der Funktion fnum() dargestellt werden, durch die Tausendertrenner und Dezimalstellen für Cent-Beträge korrekt formatiert werden.
Beispiel:
{fnum(totalbrutto)} €
Das Ergebnis wird automatisch korrekt formatiert:
1.250,00 €
Auch hier lässt sich optional ein Locale-Code verwenden, um die Beträge an länderspezifische Darstellungsweisen anzupassen.
{fnum(totalbrutto, 'de-DE')}
{fnum(totalbrutto, 'en-US')}
Damit ändern sich automatisch:
- Dezimaltrennzeichen
- Tausendertrennzeichen
Rechnungspositionen automatisch erzeugen
Listen, insbesondere für Rechnungspositionen und für Abschläge, können dynamisch erzeugt
Im Template wird dafür eine Schleife verwendet:
{FOR p in positions}
{$p.anr}
{$p.aname}
{$p.amenge}
{fnum($p.anetto)} €
{fnum($p.asum)} €
{END-FOR p}
Dadurch werden alle Rechnungspositionen automatisch eingefügt. Wird der innere Teil der Schleife in einer Tabellenzeile benutzt, so wird diese Tabellenzeile automatisch wiederholt.
Und so sieht die Schleife für Abschläge aus.
{FOR a in abschlaege}
{$a.abgrund}: {fnum($a.abbetrag)} €
{END-FOR a}
Dadurch erscheinen diese Informationen nur dann auf der Rechnung, wenn sie tatsächlich vorhanden sind.
Eigene Logik mit JavaScript im Template
Innerhalb der Rechnungsvorlagen kann klassisches Javascript benutzt werden, um komplexere oder speziellere Anforderungen zu erfüllen. Da leider die geschweiften Klammern der Standardeinstellungen mit den geschweiften Klammern im Javascript-Kollidieren, ist daher zu empfehlen, dass zuerst die Markierungszeichen für die Platzhalter in RechnungFertig umgestellt werden. Das geht in den Einstellungen

Danach können zum Beispiel Javascript-Funktionen definiert werden:
+++! days = (a,b) =>{
const p=s=>{let[d,m,y]=s.split('.');return new Date(y,m-1,d, 0, 0, 0)};
return Math.ceil((p(b)-p(a))/86400000)
} ;---
Tage bis Fälligkeit: +++days(bt2,bt9)---
In der gerenderten Rechnung wird der Javascript-Code nicht angezeigt, aber die Funktionen können genutzt werden, um, wie oben gezeigt, die Differenz in Tagen zwischen zwei Datumsangaben zu berechnen. Im gerenderten Template erscheint dann zum Beispiel:
Tage bis Fälligkeit: 30
Dieses Code-Beispiel zeigt auch, dass das Datum in bt2 und bt9 bereits als gerenderter String in den Rechnungsvorlagen vorliegt in der Form D.M.YYYY und deshalb im Template erneut geparst und in ein Date-Objekt umgewandelt werden muss. Das liegt daran, dass ohne die Vorumwandlung des Datums-Objekt vor dem Rendervorgang weniger technisch versierte Nutzer sich standardmässig um die Konvertierung des Datums in ein String-Objekt kümmern müssten.
Schreibe einen Kommentar