Referenz-Syntax-Kurzbefehle für FormCalc

Mit Hilfe einer Reihe von Kurzbefehlen lassen sich Referenzen in FormCalc bequemer erstellen, wodurch der Zugriff auf Objekteigenschaften und -werte erleichtert wird. Dieser Abschnitt beschreibt die Referenzsyntax-Kurzbefehle für FormCalc.

Aktuelles Feld oder Objekt

Bezeichnet das aktuelle Feld oder Objekt

Notation

$

Beispiel

$ = "Tony Blue"

Das obige Beispiel setzt den Wert des aktuellen Feldes oder Objekts auf Tony Blue.

Stamm-Node des Datenmodells xfa.datasets.data

Bezeichnet die Stamm-Node des Datenmodells xfa.datasets.data.

Notation

$Daten

Beispiel

$data.purchaseOrder.total

entspricht

xfa.datasets.data.purchaseOrder.total

Formularobjekt-Ereignis

Bezeichnet das aktuelle Formularobjekt-Ereignis.

Notation

$Ereignis

Beispiel

$event.name

entspricht

xfa.event.name

Weitere Informationen finden Sie unter Mit dem Ereignismodell arbeiten.

Stamm-Node des Formularmodells

Bezeichnet die Stamm-Node des Formularmodells xfa.form.

Notation

$Formular

Beispiel

$form.purchaseOrder.tax

entspricht

xfa.form.purchaseOrder.tax

Host-Objekt

Bezeichnet das Host-Objekt.

Notation

$Host

Beispiel

$Host.messageBox(„Hallo Welt")

entspricht

xfa.host.messageBox(„Hallo Welt")

Weitere Informationen finden Sie unter Mit Host-Anwendungen arbeiten.

Stamm-Node des Layoutmodells

Bezeichnet die Stamm-Node des Layoutmodells xfa.layout.

Notation

$layout

Beispiel

$layout.ready

entspricht

xfa.layout.ready

Datensatz aus einer Zusammenstellung von Daten

Bezeichnet den aktuellen Datensatz aus einer Zusammenstellung von Daten, z. B. aus einer XML-Datei.

Notation

$record

Beispiel

$record.header.txtOrderedByCity

referenziert die Node txtOrderedByCity in der Header-Node der aktuellen XML-Daten.

Stamm-Node des Vorlagenmodells

Bezeichnet die Stamm-Node des Vorlagenmodells xfa.template.

Notation

$template

Beispiel

$template.purchaseOrder.item

entspricht

xfa.template.purchaseOrder.item

Stamm-Node des Datenmodells xfa.datasets

Bezeichnet die Stamm-Node des Datenmodells xfa.datasets.

Notation

!

Beispiel

!Daten

entspricht

xfa.datasets.data

Alle Formularobjekte auswählen

Wählt alle Formularobjekte innerhalb eines gegebenen Containers, z. B. in einem Teilformular, unabhängig von ihrem Namen bzw. alle Objekte mit einem ähnlichen Namen aus.

Sie können die Syntax ‘*’ (Sternchen) mit JavaScript verwenden, wenn die resolveNode-Methode angewendet wird.

Notation

*

Beispiel

Beispielsweise werden mit dem folgenden Ausdruck alle Objekte namens item in einem Formular ausgewählt:

xfa.form.form1.item[*]

Nach Objekten suchen, die Teil eines Unter-Containers sind

Sie können an jeder Stelle in Ihrer Referenzsyntax zwei Punkte einsetzen, um nach Objekten zu suchen, die Teil eines Unter-Containers des aktuellen Container-Objekts (z. B. eines Teilformulars) sind.

Sie können die Syntax '..' (zwei Punkte) mit JavaScript verwenden, wenn die resolveNode-Methode angewendet wird.

Notation

..

Beispiel

Der AusdruckSubform_Page..Subform2steht für die Lokalisierung der NodeSubform_Page (wie üblich) und die Suche einer untergeordneten Subform_Page namens Subform2.

Aus dem obigen Beispiel-Baumdiagramm ergibt sich:

Subform_Page..TextField2

entspricht

Subform_Page.Subform1[0].Subform3.TextField2[0],

da sich TextField2[0] in der ersten Subform1-Node befindet, auf die FormCalc bei der Suche stößt. Ein zweites Beispiel:

Subform_Page..Teilformular3[*]

gibt alle vier TextField2-Objektezurück.

Unbenannte Objekte bezeichnen oder Eigenschaften angeben

Die Raute (#) dient zur Bezeichnung eines der folgenden Elemente in einer Referenzsyntax:

  • Ein unbenanntes Objekt

  • Geben Sie in einer Referenzsyntax eine Eigenschaft an, wenn eine Eigenschaft und ein Objekt den gleichen Namen tragen

Sie können die Syntax ‘#’ (Raute) mit JavaScript verwenden, wenn die resolveNode-Methode angewendet wird.

Notation

#

Beispiel

Beispielsweise greift die folgende Referenzsyntax auf ein unbenanntes Teilformular zu:

xfa.form.form1.#Teilformular

Beispielsweise greift die folgende Referenzsyntax auf die Eigenschaft name eines Teilformulars zu, wenn das Teilformular auch ein Feld namens name hat:

xfa.form.form1.#Teilformular.#name

Wert für das Vorkommen eines Objekts

Die eckige Klammer ([ ]) gibt den Wert für das Vorkommen eines Objekts an.

In sprachspezifischen Formularen für Arabisch, Hebräisch, Thailändisch und Vietnamesisch befindet sich die Referenzsyntax grundsätzlich rechts (auch bei Sprachen, die von rechts nach links geschrieben werden).

Notation

[ ]

Beispiel

Um eine Referenz mit einem solchen Wert zu erstellen, setzen Sie eckige Klammern ([ ]) hinter einen Objektnamen und fügen Sie zwischen den eckigen Klammern einen der folgenden Werte ein:

  • [ n ], wobei n eine absolute Vorkommens-Indexnummer ist (der Index beginnt bei 0). Wenn eine Vorkommensnummer außerhalb des zulässigen Bereichs liegt, wird kein Wert zurückgegeben. Beispiel:

    xfa.form.form1.#subform.Quantity[3]

    referenziert das vierte Vorkommen des Objekts „Quantity“.

  • [ +/- n ], wobein ein Vorkommen relativ zum Vorkommen des Objekts angibt, von welchem die Referenz ausgeht. Positive Werte liefern höhere Vorkommensnummern und negative Werte liefern niedrigere. Beispiel:

    xfa.form.form1.#subform.Quantity[+2]

    Diese Referenz liefert das Vorkommen von „Quantity“, dessen Vorkommensnummer um 2 höher ist als die Vorkommensnummer des Containers, von dem die Referenz ausgeht. Stünde diese Referenz beispielsweise mit dem Objekt „Quantity[2]“ in Verbindung, so wäre sie gleichbedeutend mit:

    xfa.template.Quantity[4]

    Wenn die berechnete Indexnummer außerhalb des zulässigen Bereichs liegt, gibt die Referenz einen Fehler zurück.

    Die häufigste Anwendung dieser Syntax ist die Ansteuerung des vorigen oder nächsten Vorkommens eines bestimmten Objekts. Beispielsweise könnte man bei jedem Vorkommen des Objekts „Quantity“ (außer beim ersten) mit „Quantity[-1]“ den Wert des vorigen „Quantity“-Objekts abrufen.

  • [*] gibt mehrere Vorkommen eines Objekts an. Das erste benannte Objekt wird gefunden und die mit dem ersten Objekt verwandten Objekte desselben Namens werden zurückgegeben. Beachten Sie, dass bei dieser Notation eine Zusammenstellung von mehreren Objekten zurückgegeben wird. Beispiel:

    xfa.form.form1.#subform.Quantity[*]

  • Dieser Ausdruck bezieht sich auf alle Objekte mit dem Namen Quantity, die mit dem ersten von der Referenz gefundenen Vorkommen von Quantityverwandt sind.

In dem gezeigten Baumdiagramm geben diese Ausdrücke jeweils die folgenden Objekte zurück:

  • Subform_Page.Subform1[*] gibt beide Subform1-Objekte zurück.

  • Subform_Page.Subform1.Subform3.TextField2[*] gibt zwei TextField2-Objekte zurück.Subform_Page.Subform1 wird zum ersten Subform1-Objekt links aufgelöst und TextField2[*] wird relativ zum Objekt Subform3 ausgewertet.

  • Subform_Page.Subform1[*].TextField1 gibt beideTextField1-Instanzen zurück.Subform_Page.Subform1[*] wird zu beiden Subform1-Objekten aufgelöst und TextField1 wird relativ zu den Subform1-Objekten ausgewertet.

  • Subform_Page.Subform1[*].Subform3.TextField2[1] gibt das zweite und vierte TextField2-Objekt von links zurück.Subform_Page.Subform1[*] wird zu beiden Subform1-Objekten aufgelöst und TextField2[1] wird relativ zu den Subform3-Objekten ausgewertet.

  • Subform_Page.Subform1[*].Subform3[*] gibt die beiden Instanzen des Subform3-Objekts zurück.

  • Subform_Page.*gibt beide Subform1-Objekte und das Objekt Subform2 zurück.

  • Subform_Page.Subform2.* gibt die beiden Instanzen des NumericField2-Objekts zurück.

  • Sie können die Syntax ‘ [ ]’ (mit eckigen Klammern) in Verbindung mit JavaScript verwenden, wenn dieresolveNode-Methode angewendet wird.