Lorsqu’elle est utilisée dans une expression while, le contrôle est transmis à la condition while. Lorsqu’elle est utilisée dans une expression for, le contrôle est transmis à l’expression step.L’objectif de l’exemple suivant est de remplir la liste déroulante à l’aide des valeurs d’un fichier XML. Si la valeur de l’élément XML actuel est « Display data for 3 », l’expression break entraîne la sortie de la boucle while. Si la valeur de l’élément XML actuel est « Display data for 2 », le script ajoute 2 à la variable i (le compteur) et la boucle passe immédiatement à son cycle suivant. Les deux dernières lignes ne sont pas prises en compte lorsque la valeur de l’élément XML actuel est « Display data for 2 ».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.
Représente la racine du modèle de données xfa.datasets.data. Par exemple : Représente la racine du modèle de formulaire xfa.form. Par exemple : Représente la racine du modèle de disposition xfa.layout. Par exemple : Représente l’enregistrement actuel d’une collection de données, provenant d’un fichier XML par exemple.
Par exemple : Représente la racine du modèle de modèle xfa.template. Par exemple : Représente la racine du modèle de données xfa.datasets. Par exemple : 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.Par exemple, l’expression suivante sélectionne tous les objets nommés item sur un formulaire :
Remarque : 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.puisqueTextField2[0] est le premier nœud Subform1 que FormCalc rencontre lors de sa recherche. Deuxième exemple :renvoie la totalité des quatre objets TextField2.
Remarque : vous pouvez utiliser la syntaxe double point (..) avec JavaScript en faisant appel à la méthode resolveNode. La notation # (signe 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. Ainsi, la syntaxe de référence suivante accède à un sous-formulaire 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. 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 :
Remarque : [ ] 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 :
• [ +/- 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 quexfa.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.fo
rm1.#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). 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 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 quatriè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.Subform2.* renvoie les deux instances de l’objet NumericField2.
Remarque :