Expand Invoice Template
Zuletzt geändert: 07.04.2026 13:21

Übersicht

Expand-InvoiceTemplate #

ÜBERSICHT #

Löst Platzhalter in Template-Strings anhand von Rechnungsdaten auf.

SYNTAX #

Expand-InvoiceTemplate [-Template] <string> [[-Conn] <__ComObject>] [[-Udl] <string>] [[-ConnStr]
    <string>] [[-InvoiceNo] <int>] [[-InvoiceId] <int>] [[-Variables] <hashtable>]
    [<CommonParameters>]

BESCHREIBUNG #

Die Funktion Expand-InvoiceTemplate ersetzt Platzhalter in Vorlagen-Strings (FileMask, Subject, Body etc.) mit Werten aus der Datenbank und Systemvariablen.

Delegiert die eigentliche Expansion an Expand-PlaceholderString, wodurch alle dort verfügbaren Features nutzbar sind:

  • %Feldname% — Datenbankfeld (KopfNummer, Datum, VorgangName, Name1, Ort etc.)
  • %grundwerte.<Unterpfad>.<Feldname>% — SQL-Registry-Werte aus \MODULES\Grundwerte<Unterpfad> (z.B. %grundwerte.firmenstamm.Strasse%)
  • %YYYY%, %MM%, %DD%, %HH%, %NN%, %SS% — Aktuelle Datum/Uhrzeit
  • %SYSTEM.USERNAME%, %SYSTEM.TODAY_ISO% etc. — System-Variablen
  • %DESKTOPDIR%, %COMPUTER%, %USER%, %TEMPDIR%, %DOCDIR% — System
  • %FDformat:Feld% — Datumsformatierung (z.B. %FDdd.MM.yyyy:Datum%)
  • %FFformat:Feld% — Zahlenformatierung (z.B. %FF#,##0.00:VkBrutto%)
  • %?Feld%...%?|%...%?% — Bedingte Abschnitte mit Else
  • %?Feld=Wert%, %?Feld^Prefix%, %?Feld*Enthält% — Vergleiche
  • %L20:Feld% — Feste Breite, %URL:Feld%, %XML:Feld% — Kodierung
  • %!Ref% — Rekursive Expansion
  • Alte Syntax: $$invoicenumber$$ wird automatisch zu %KopfNummer% migriert
  • Legacy: %FN...% (alte Zahlenformatierung) wird zu %FF...% migriert

PARAMETER #

-Template #

Type: string

Der Template-String mit Platzhaltern.

-Conn #

Type: __ComObject

Ein bereits geöffnetes ADODB.Connection-Objekt.

-Udl #

Type: string

Pfad zu einer UDL-Datei.

-ConnStr #

Type: string

ADO-Connection-String.

-InvoiceNo #

Type: int

Rechnungsnummer (KopfNummer).

-InvoiceId #

Type: int

Interne Rechnungs-ID.

-Variables #

Type: hashtable

Optionale Hashtable mit zusätzlichen Variablen (z.B. @{format=‘ZUGFeRD’; client=‘MeinClient’}). Diese haben Vorrang vor Systemvariablen.

AUSGABEN #

string

Der aufgelöste Template-String.

BEISPIELE #

$result = Expand-InvoiceTemplate -Template '%YYYY%-%MM%-%DD%-%VorgangName%-%KopfNummer%' `
  -Conn $conn -InvoiceNo 20260271
# Ergebnis: "2026-04-04-Rechnung-20260271"
$result = Expand-InvoiceTemplate -Template '%VorgangName% %KopfNummer% (%format%)' `
  -Conn $conn -InvoiceNo 20260271 -Variables @{format='ZUGFeRD'}
# Ergebnis: "Rechnung 20260271 (ZUGFeRD)"