Direkt zum Hauptinhalt

Beispiel mit Rechnung

Um die grundlegende Funktionsweise zu verdeutlichen, wird nun das Beispiel der Rechnungen aus dem vorherigen Kapitel weitergeführt.

 



Ausgangssituation in cobra

Drei Tabellen sind in cobra miteinander verknüpft:

  • Adressen (Parent)
  • Rechnung (Current/Ausgangstabelle)
  • Rechnungspositionen (Child)

 



Benötigte Vorlagen

Für die abgebildete Ausgabe sindwerden genau zwei WordvorlagenWord-Vorlagen notwendig.benötigt:

Die
  1. Rechnung.dotx: die Hauptvorlage ist(Briefkopf, “Rechnung.dotx”Anschrift, undSummenbereich)
  2. Rechnungsposition.dotx: die Untervorlage “Rechnungsposition.dotx”(eine einzelne Zeile der Positionstabelle)

image.png




Hauptvorlage: Rechnung.dotx

Die Hauptvorlage enthält das gesamte Rechnungslayout. Platzhalter greifen auf die verschiedenen Tabellen zu.

Im folgenden Beispiel werden die folgenden Präfixe für die einzelnen Tabellen genutzt:
Adresse 🠪 Adressen
Rechnung 🠪 Rechnung
RP 🠪 Rechnungspositionen

image.png

Die Vorlage wird automatisch nach dem im letzten Kapitel erklärten Schema befüllt. Hierbei wird beispielsweiße aus {Adresse.Vorname} der Wert der aktuell bearbeiteten Adresse eingefügt.

Es können auch Formatierungen genutzt werden, wie es z.B. bei {Rechnung.Rechnungsdatum#dd.MM.yyyy} gemacht wird. In diesem Fall wird das Datum im Format Tag.Monat.Jahr ausgegeben (z.B. 26.05.2026).

Wichtig: Der Child-Platzhalter {RP} enthält nur den Präfix der untergeordneten Tabelle, keinen Feldnamen. PRINT+PLUS erkennt daran, dass hier die zugehörige Untervorlage wiederholt eingefügt werden soll.

 



Untervorlage: Rechnungsposition.dotx

WIPDie Untervorlage definiert das Layout einer einzelnen Position. Sie wird pro Child-Datensatz wiederholt:
image.png

In der Untervorlage können auch Platzhalter der übergeordneten Tabellen verwendet werden.

 



Ergebnis

Wird die Ausgabe für eine Rechnung mit drei Positionen ausgeführt, erzeugt PRINT+PLUS folgendes Dokument:

image.png

Leere Childs: Wenn keine Positionen vorhanden sind, wird der Child-Platzhalter einfach entfernt und die Tabelle bleibt leer.

Verschachtelte Childs: Childs können selbst wieder Childs enthalten (z.B. Rechnungsposition 🠪 Teilpositionen)