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
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
.
Beispiel
$data.purchaseOrder.total
entspricht
xfa.datasets.data.purchaseOrder.total
Formularobjekt-Ereignis
Bezeichnet das aktuelle Formularobjekt-Ereignis.
Stamm-Node des Formularmodells
Bezeichnet die Stamm-Node des Formularmodells
xfa.form
.
Beispiel
$form.purchaseOrder.tax
entspricht
xfa.form.purchaseOrder.tax
Host-Objekt
Bezeichnet das Host-Objekt.
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
.
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.
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.
Beispiel
$template.purchaseOrder.item
entspricht
xfa.template.purchaseOrder.item
Stamm-Node des Datenmodells xfa.datasets
Bezeichnet die Stamm-Node des Datenmodells
xfa.datasets
.
Beispiel
!data
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.
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.
Beispiel
Der Ausdruck
Subform_Page..Subform2
steht für die Lokalisierung der Node
Subform_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-Objekte
zurück.
Unbenannte Objekte bezeichnen oder Eigenschaften angeben
Die Raute (
#
) dient zur Bezeichnung eines der folgenden Elemente in einer Referenzsyntax:
Sie können die Syntax ‘#’ (Raute) mit JavaScript verwenden, wenn die
resolveNode
-Methode angewendet wird.
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).
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 ]
, wobei
n
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
Quantity
verwandt 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 beide
TextField1
-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 die
resolveNode
-Methode angewendet wird.
|
|
|