Platzhalter in Formularen

Es können im Programm an verschiedenen Stellen Platzhalter angegeben werden. Platzhalter werden beispielweise beim Drucken durch Werte ersetzt.

Ein Platzhalter beginnt mit einer öffnenden geschweiften Klammer { und endet mit einer schließenden geschweiften Klammer }. Zwischen beiden Klammern steht der Name des Platzhalters. Dieser Name wird vom Programm gelesen. Das Programm sucht anhand des Namens nach dem passenden Wert und ersetzt den vollständigen Platzhalter durch den gefundenen Wert.

 {Platzhalter}

Verfügbare Namen

Welche Platzhalter-Namen zur Verfügung stehen, hängt vom Kontext ab, in dem der Platzhalter verwendet wird. Die Platzhalternamen sind immer Namen von Objekt-Eigenschaften.

Beim Drucken einer Rechnung wird das Formular an ein Order-Objekt gebunden. Das Order-Objekt kennt die Eigenschaft OrderDate. Somit kann im Formular dieser Platzhalter verwendet werden:

  {OrderDate}

Das Programm ersetzt den Platzhalter, in dem es die benannte Eigenschaft in eine Zeichenkette umwandelt (Anm. für .NET-Programmierer: Durch den Aufruf der ToString()-Methode) und dann den Platzhalter-Text (inkl. der Klammern) durch die Zeichenkette ersetzt.

Vor dem Ersetzen kann noch eine Umformatierung der Zeichenkette erfolgen, in dem eine Format-Funktion angegeben wird, z.B.:

  {Date:OrderDate}

(siehe auch: /docs/formulare.html#formatierung-von-platzhaltern)

Untergeordnete Eigenschaften (Objekt-Pfade als Namen)

Viele Objekt-Eigenschaften sind selbst Objekte, die wiederum selbst Eigenschaften bereitstellen. Es ist möglich, auch auf diese Eigenschaften zuzugreifen bzw. diese im Platzhalter anzugeben. Als Trennzeichen im Platzhalternamen zwischen den einzelnen Eigenschaftsnamen wird der Punkt verwendet.

 {Eigenschftname.Untereigenschaftsname}

Das Order-Objekt kennt die Eigenschaft ContactBillTo, welches den Rechnungsempfänger darstellt. Verwendet man in einem Formular den Platzhalter {ContactBillTo} (ein Objekt vom Typ Contact), so wird dieser Platzhalter durch den Namen inkl. Anschrift des Rechnungsempfängers ersetzt (weil die Umwandlung dieses Contact-Objektes in eine Zeichenkette so definiert ist, dass Namen inkl. Anschrift zurückgegeben wird).

Das Contact-Objekt selber kennt die Eigenschaft LastName, welches den Nachnamen enthält. Will man nun also in einem Rechnungs-Formular nur den Nachnamen des Rechnungsempfängers ausgeben, so verwendet man diesen Platzhalter:

 {ContactBillTo.LastName}

Listen-Eigenschaften

Wenn eine Eigenschaft eine Liste enthält, so kann auf die Listen-Elemente auf unterschiedliche Weise zugegriffen werden:

Zugriff auf das Listenelement über die Nummer (Anm. für .NET-Programmierer: Bei IList):

  {Liste.0}
  {Liste.1}
  etc...

Zugriff auf das Listenelement über den Namen (Anm. für .NET-Programmierer: Bei IDictionary):

  {Liste.Name}

Beispiele

Das Order-Objekt kennt die Eigenschaft Items, eine Liste welche alle Positionen des Auftrag enthält. Der Zugriff auf die Artikelnummer der ersten Position würde so erfolgen:

  {Items.0.ProductId}

Das OrderItem-Objekt, welches eine Auftragsposition darstellt, kennt die Eigenschaft Properties, welche eine Liste aller Positionseigenschaften enthält. Jede Positionseigenschaft hat einen eigenen Namen. Der Zugriff auf den Wert der Eigenschaft mit dem Namen Breite würde so erfolgen:

  {Properties.Breite.Value}

Verfügbare Eigenschaften (Platzhalter-Namen) ermitteln

Um herauszufinden, welches Objekt welche Eigenschaften zur Verfügung stellt und welche Platzhalter somit verwendet werden können, gibt es den Objekt-Inspektor. Dieser kann alle verfügbaren Eigenschaften eines Objektes auflisten und deren Wert anzeigen.

So finden Sie den Objekt-Inspektor: Wenn Sie beispielsweise eine Rechnung öffnen, sehen Sie oben im Menü den Eintrag “Datei”. Hier gibt es einen Untereintrag “Objekt-Inspektor”. Wenn Sie auf diesen Untereintrag klicken, wird der Objekt-Inspektor geöffnet. Dieser zeigt dann alle Eigenschaften des aktuellen Objektes an.