Raccourcis de la syntaxe de référence FormCalc

Pour faciliter l’accès aux propriétés et aux valeurs et limiter votre travail, FormCalc offre des raccourcis pratiques pour créer des références. Cette section décrit les raccourcis de syntaxe de référence pour FormCalc.

Champ ou objet actif

Fait référence au champ ou à l’objet actif

Notation

$

Exemple

$ = "Tony Blue"

L’exemple ci-dessus définit la valeur du champ ou de l’objet actuel sur Tony Blue.

Racine du modèle de données de xfa.datasets.data

Représente la racine du modèle de données xfa.datasets.data.

Notation

$data

Exemple

$data.purchaseOrder.total

est équivalent à

xfa.datasets.data.purchaseOrder.total

Evénement d’objet de formulaire

Représente l’événement d’objet de formulaire actif.

Notation

$événement

Exemple

$event.name

est équivalent à

xfa.event.name

Pour plus d’informations, voir Utilisation du modèle d’événement.

Racine de modèle de formulaire

Représente la racine du modèle de formulaire xfa.form.

Notation

$formulaire

Exemple

$form.purchaseOrder.tax

revient à dire

xfa.form.purchaseOrder.tax

Objet hôte

Représente l’objet hôte.

Notation

$host

Exemple

$host.messageBox("Hello world")

est équivalent à

xfa.host.messageBox("Hello world")

Pour plus d’informations, voir Utilisation d’une application hôte.

Racine du modèle de disposition

Représente la racine du modèle de disposition xfa.layout.

Notation

$layout

Exemple

$layout.ready

revient à dire

xfa.layout.ready

Collecte d’enregistrements de données

Représente l’enregistrement actuel d’une collection de données, provenant d’un fichier XML par exemple.

Notation

$record

Exemple

$record.header.txtOrderedByCity

Référence le nœud txtOrderedByCity dans le nœud d’en-tête des données XML actuelles.

Racine du modèle de modèle

Représente la racine du modèle de modèle xfa.template.

Notation

$template

Exemple

$template.purchaseOrder.item

est équivalent à

xfa.template.purchaseOrder.item

Racine de modèle de données de xfa.datasets

Représente la racine du modèle de données xfa.datasets.

Notation

!

Exemple

!data

est équivalent à

xfa.datasets.data

Sélectionne tous les objets de formulaire

Sélectionne tous les objets de formulaire dans un conteneur donné (tel qu’un sous-formulaire), quel que soit le nom, ou sélectionne tous les objets ayant un nom similaire.

Vous pouvez utiliser la syntaxe ‘*’ (astérisque) avec JavaScript si elle est utilisée avec la méthode resolveNode.

Notation

*

Exemple

Par exemple, l’expression suivante sélectionne tous les objets nommés item sur un formulaire :

xfa.form.form1.item[*]

Recherche les objets faisant partie d’un sous-conteneur

Vous pouvez utiliser deux points à un endroit quelconque de votre syntaxe de référence pour rechercher des objets faisant partie de n’importe quel sous-conteneur du conteneur actuel (tel qu’un sous-formulaire).

Vous pouvez utiliser la syntaxe ‘..’ (double point) avec JavaScript en faisant appel à la méthode resolveNode.

Notation

..

Exemple

L’expressionSubform_Page..Subform2 signifie localiser le nœudSubform_Page(normal) et rechercher un descendant de Subform_Page appelé Subform2.

En se fondant sur l’arborescence ci-dessus,

Subform_Page..TextField2

est équivalent à

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

puisque TextField2[0] est le premier nœud Subform1 que FormCalc rencontre lors de sa recherche. Deuxième exemple :

Subform_Page..Subform3[*]

renvoie les quatre objets TextField2.

Désigne un objet sans nom ou indique une propriété

La notation # (dièse) est utilisée pour représenter l’un des éléments suivants dans une syntaxe de référence :

  • Un objet sans nom

  • Une propriété dans une syntaxe de référence si une propriété et un objet possèdent le même nom

Vous pouvez utiliser la syntaxe ‘#’ (signe dièse) avec JavaScript si elle est utilisée avec la méthode resolveNode.

Notation

#

Exemple

La syntaxe de référence suivante accède à un sous-formulaire sans nom :

xfa.form.form1.#subform

La syntaxe de référence suivante accède à la propriété name d’un sous-formulaire si ce dernier contient également un champ appelé name :

xfa.form.form1.#subform.#name

Valeur d’occurrence d’un objet

Les crochets ([ ]) représentent la valeur d’occurrence d’un objet.

dans les formulaires en arabe, hébreu, thaï et vietnamien, la syntaxe de référence se trouve toujours à droite (même pour les langues s’écrivant de droite à gauche).

Notation

[ ]

Exemple

Pour créer une référence à une valeur d’occurrence, placez des crochets ([ ]) après un nom d’objet et insérez entre les crochets l’une des valeurs suivantes :

  • [ n ], où n est un numéro d’index d’occurrence absolu commençant à 0. Un numéro d’occurrence hors limite ne renvoie aucune valeur Par exemple :

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

    renvoie à la quatrième occurrence de l’objet Quantity.

  • [ +/- n ], où n indique une occurrence relative à l’occurrence de l’objet porteur de la référence. Les valeurs positives retournent des nombres d’occurrences plus élevés alors que les valeurs négatives retournent des nombres d’occurrences plus bas. Par exemple :

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

    Cette référence retourne l’occurrence de Quantity dont le nombre d’occurrences est deux de plus que le nombre d’occurrences du conteneur qui constitue la référence. Si, par exemple, cette référence était jointe à l’objet Quantity[2], la référence serait la même que :

    xfa.template.Quantity[4]

    Si le numéro d’index calculé est hors limite, la référence renvoie une erreur.

    Cette syntaxe sert surtout à localiser l’occurrence précédente ou suivante d’un objet en particulier. Par exemple, chaque occurrence de l’objet Quantity (sauf la première) peut utiliser Quantity[-1] pour obtenir la valeur de l’objet Quantity précédent.

  • [*] indique plusieurs occurrences d’un objet. Le premier objet nommé est trouvé, et les objets portant le même nom et ayant le même parent immédiat sont retournés. Le résultat de cette notation est une collection d’objets. Par exemple :

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

  • Cette expression fait référence à tous les objets portant le nom de Quantity et ayant le même parent immédiat que la première occurrence de Quantity trouvée par la référence.

L’arborescence servant de référence, les expressions suivantes retournent les résultats indiqués :

  • Subform_Page.Subform1[*] renvoie les deux objets Subform1.

  • Subform_Page.Subform1.Subform3.TextField2[*] renvoie deux objets TextField2.Subform_Page.Subform1 a pour résultat le premier objet Subform1 sur la gauche, etTextField2[*]est évalué relativement à l’objetSubform3.

  • Subform_Page.Subform1[*].TextField1 renvoie les deux instancesTextField1.Subform_Page.Subform1[*]a pour résultat les deux objetsSubform1, etTextField1est évalué relativement aux objetsSubform1.

  • Subform_Page.Subform1[*].Subform3.TextField2[1]renvoie le deuxième et le quatrième objetsTextField2à partir de la gauche.Subform_Page.Subform1[*]a pour résultat les deux objetsSubform1, etTextField2[1]est évalué relativement aux objetsSubform3.

  • Subform_Page.Subform1[*].Subform3[*]renvoie les deux instance de l’objetSubform3.

  • Subform_Page.*renvoie les deux objetsSubform1et l’objetSubform2.

  • Subform_Page.Subform2.*renvoie les deux instances de l’objetNumericField2.

  • Vous pouvez utiliser la syntaxe [ ] (crochets) avec JavaScript si elle est utilisée avec la méthode resolveNode.