Dans une conception de formulaire interactive, il est fréquent qu’une ou plusieurs sections du formulaire ne soient pas affichées tant que l’utilisateur ne sélectionne pas l’option permettant de les inclure. Dans LiveCycle Designer ES, vous pouvez ajouter un bouton avec un script qui ajoute ou supprime de manière dynamique une section (sous-formulaire) donnée dans le formulaire lorsque l’utilisateur clique sur un bouton.
Ainsi, dans l’exemple de bon de commande interactif, l’utilisateur peut cliquer sur le bouton d’ajout de commentaires pour afficher la section de commentaires (sous-formulaire de commentaires). Ce bouton permet d’ajouter des commentaires ou de les supprimer, selon l’état actif du sous-formulaire. Chaque fois que l’utilisateur clique sur le bouton, le script vérifie si le sous-formulaire de commentaires est affiché, puis met à jour la légende du bouton en conséquence.
Le bouton déclenche un script qui utilise instanceManager, l’objet de modèle d’objet de formulaire XML qui gère la création, la suppression et le déplacement des occurrences d’objets de formulaire. Lorsque l’utilisateur final supprime le sous-formulaire de commentaires, l’objet instanceManager supprime le sous-formulaire du modèle d’objet de document (DOM) des données de formulaires, ainsi que du DOM de données.
Remarquez qu’instanceManager utilise quatre méthodes : addInstance, removeInstance, moveInstance et setInstances. Par convention, un objet instanceManager est nommé d’après le nom du sous-formulaire, précédé d’un trait de soulignement (_nomsous-formulaire). La syntaxe d’instanceManager est _nomsous-formulaire.nomméthode().
Dans l’exemple de formulaire interactif du bon de commande, l’auteur a saisi le script suivant dans l’éditeur de script en utilisant la méthode setInstances afin d’ajouter et de supprimer le sous-formulaire de commentaires et de changer la légende du bouton. Observez que l’instruction _comments.count == 0 property renvoie le nombre d’instances de sous-formulaire appelées.
_comments.setInstances(1); // Add the comments subform.
this.resolveNode(“caption.value.#text”).value = “Clear Comments”; // Change the button’s caption.
}
_comments.setInstances(0); // Remove the comments subform.
this.resolveNode(“caption.value.#text”).value = “Add Comments”; // Change the button’s caption.
}

Création d’un bouton pour ajouter et supprimer une section