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. Le tableau suivant décrit les raccourcis de la syntaxe de référence pour FormCalc.
$
$ = “Tony Blue”
Représente la racine du modèle de données xfa.datasets.data. Par exemple :
$data.purchaseOrder.total
xfa.datasets.data.purchaseOrder.total
$event.name
xfa.event.name
$form.purchaseOrder.tax
xfa.form.purchaseOrder.tax
$host.messageBox(“Hello world”)
xfa.host.messageBox(“Hello world”)
$layout.ready
xfa.layout.ready
$record.header.txtOrderedByCity
référence le noeud txtOrderedByCity dans le noeud header des données XML actuelles.
$template.purchaseOrder.item
xfa.template.purchaseOrder.item
!
!data
xfa.datasets.data
*
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.
xfa.form.form1.item[*]
..
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). Par exemple, l’expression Subform_Page..Subform2 signifie rechercher le nœud Subform_Page (comme d’habitude) et trouver un descendant de Subform_Page appelé Subform2.
Livecycle tree hierarchy Raccourcis de la syntaxe de référence FormCalc
Subform_Page..TextField2
Subform_Page.Subform1[0].Subform3.TextField2[0]
puisqueTextField2[0] est le premier nœud Subform1 que FormCalc rencontre lors de sa recherche. Deuxième exemple :
Subform_Page..Subform3[*]
#
La notation # (signe dièse) est utilisée pour représenter l’un des éléments suivants dans une syntaxe de référence :
xfa.form.form1.#subform
Une propriété dans une syntaxe de référence si une propriété et un objet possèdent le même nom. La syntaxe de référence suivante accède, par exemple, à la propriété name d’un sous-formulaire si ce dernier contient également un champ appelé name :
xfa.form.form1.#subform.#name
[ ]
Le crochet ([ ]) représente la valeur d’occurrence d’un objet. 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]
refers to the fourth occurrence of the Quantity object.
[ +/- 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 Quantity et ayant le même parent immédiat que la première occurrence Quantity trouvée par la référence.

Remarque : 
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).
[ ]
Livecycle tree hierarchy Raccourcis de la syntaxe de référence FormCalc
Subform_Page.Subform1[*] renvoie les deux objets Subform1.
Subform_Page.Subform1.Subform3.TextField2[*] renvoie les deux objets TextField2. Subform_Page.Subform1 a pour résultat le premier objet Subform1 à gauche et TextField2[*] est évalué relativement à l’objet Subform3.
Subform_Page.Subform1[*].TextField1 renvoie les deux instances TextField1. Subform_Page.Subform1[*] a pour résultat les deux objets Subform1 et TextField1 est évalué relativement aux objets Subform1.
Subform_Page.Subform1[*].Subform3.TextField2[1] renvoie le deuxième et le qua
trième objets TextField2 à partir de la gauche. Subform_Page.Subform1[*] a pour résultat les deux objets Subform1 et TextField2[1] est évalué relativement aux objets Subform3.
Subform_Page.Subform1[*].Subform3[*] renvoie les deux instances de l’objet Subform3.
Subform_Page.* renvoie les deux objets Subform1 et l’objet Subform2.
Subform_Page.Subform2.* renvoie les deux instances de l’objet NumericField2.

Raccourcis de la syntaxe de référence FormCalc