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 ObjektBezeichnet 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.dataBezeichnet die Stamm-Node des Datenmodells xfa.datasets.data.
Beispiel$data.purchaseOrder.total
entspricht
xfa.datasets.data.purchaseOrder.total
Formularobjekt-EreignisBezeichnet das aktuelle Formularobjekt-Ereignis.
Stamm-Node des FormularmodellsBezeichnet die Stamm-Node des Formularmodells xfa.form.
Beispiel $form.purchaseOrder.tax
entspricht
xfa.form.purchaseOrder.tax
Host-ObjektBezeichnet 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 LayoutmodellsBezeichnet die Stamm-Node des Layoutmodells xfa.layout.
Beispiel$layout.ready
entspricht
xfa.layout.ready
Datensatz aus einer Zusammenstellung von DatenBezeichnet 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 VorlagenmodellsBezeichnet die Stamm-Node des Vorlagenmodells xfa.template.
Beispiel$template.purchaseOrder.item
entspricht
xfa.template.purchaseOrder.item
Stamm-Node des Datenmodells xfa.datasetsBezeichnet die Stamm-Node des Datenmodells xfa.datasets.
Beispiel!Daten
entspricht
xfa.datasets.data
Alle Formularobjekte auswählenWä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.
BeispielBeispielsweise 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 sindSie 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 '..' Sie können die Syntax mit zwei Punkten (..) (zwei Punkte) mit JavaScript verwenden, wenn die resolveNode-Methode angewendet wird.
BeispielDer 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 angebenDie Raute (#) dient zur Bezeichnung eines der folgenden Elemente in einer Referenzsyntax:
Sie können die Syntax mit Raute (#) mit JavaScript verwenden, wenn die resolveNode-Methode angewendet wird.
BeispielBeispielsweise 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 ObjektsDie 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).
BeispielUm 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 und der resolveNode-Methode anwenden.
|
|
|