Référence aux objets sans nom et répétés

Designer prend en charge la fonctionnalité permettant de créer à la fois des objets sans nom et plusieurs objets portant le même nom. Vous pouvez établir des calculs et des scripts en vue d’accéder ou de remplacer les propriétés et les valeurs des objets sans nom à l’aide de la notation comportant une dièse (#), ainsi que les valeurs d’occurrence d’objet à l’aide de la notation comportant des crochets ([ ]). FormCalc interprète correctement la dièse (#) et les crochets ([ ]), mais pas JavaScript. Pour accéder à la valeur d’un champ de texte impliquant une dièse (#) ou des crochets ([ ]) avec JavaScript, vous devez utiliser la méthode resolveNode, ainsi qu’une syntaxe de référence complète ou abrégée.

Lorsque vous générez un formulaire vide, le nom du sous-formulaire représentant la page du formulaire correspond, par défaut, à un sous-formulaire sans nom doté de la valeur d’occurrence 0. L’illustration suivante présente la hiérarchie de formulaire sur un nouveau formulaire utilisant les conventions de dénomination d’objet par défaut.

Le sous-formulaire sans titre représentant la première page du formulaire porte le numéro d’occurrence 0. En pareil cas, les deux syntaxes de référence suivantes ont accès à la valeur du champ de texte dans la hiérarchie de formulaire ci-dessus sur un nouveau formulaire utilisant les conditions de dénomination par défaut :

    xfa.form.form1.#subform.TextField1.rawValue 
    xfa.form.form1.#subform[0].TextField1.rawValue
Remarque : par défaut, si vous ne précisez pas la valeur d’occurrence pour un objet, la syntaxe de référence accède à la première occurrence de l’objet.

FormCalc reconnaît la syntaxe de référence complète ci-dessus et l’interprète directement. Pour accéder à la même valeur à l’aide de JavaScript, vous devez utiliser un des formulaires de la méthode de script resolveNode :

    xfa.resolveNode("xfa.form.form1.#subform.TextField1").rawValue; 
    xfa.resolveNode("xfa.form.form1.#subform[0].TextField1").rawValue;

Si vous ajoutez une nouvelle page au formulaire, le nom du sous-formulaire correspondant à la nouvelle page est, par défaut, sans nom. Toutefois, la valeur d’occurrence du nouveau sous-formulaire est définie à 1 Vous pouvez désigner le nouveau sous-formulaire sans nom par une syntaxe de référence similaire :

    xfa.form.form1.#subform[1].TextField1.rawValue // FormCalc 
    xfa.resolveNode("xfa.form.form1.#subform[1].TextField1").rawValue; // JavaScript
Remarque : les options d’exécution d’instructions de l’éditeur de script incluent des objets sans nom au début de la liste. Les objets possédant plusieurs valeurs d’occurrence n’apparaissent qu’une fois dans la liste, la première occurrence seule étant indiquée. Si vous voulez accéder à une valeur d’occurrence différente de la première, vous devez ajouter manuellement cette valeur à la syntaxe de référence.

Utilisez la méthode resolveNode pour référencer des objets au sein des autres instructions de la syntaxe de référence. Ceci contribue à réduire le nombre total de scripts nécessaires pour faire référence à un objet, une propriété ou une méthode spécifique. Ainsi, vous pouvez simplifier la syntaxe menant à un champ de texte de la deuxième page de votre formulaire de la manière suivante :

    xfa.form.form1.resolveNode("#subform[1].TextField1").rawValue; // JavaScript

Pour plus d’informations sur la méthode resolveNode, voir resolveNode.