Pour ajouter des sections dont la taille diminue ou augmente en fonction des données fusionnées, créez des sous-formulaires et imbriquez-les dans une hiérarchie comparable à la structure des données. Vous pouvez imbriquer des sous-formulaires à n’importe quel niveau. L’imbrication de sous-formulaires vous permet de faire correspondre la conception de formulaire au fichier de données XML avec lequel elle va être fusionnée. Si, par exemple, le fichier de données XML comporte deux niveaux, vous pouvez créer la hiérarchie des sous-formulaires en faisant correspondre les noms des sous-formulaires aux noms des balises du fichier de données XML, de façon à ce que LiveCycle Designer ES puisse mapper les données sans convertir le fichier de données.
Un formulaire doté d’une disposition souple, comme l’exemple du bon de commande, comprend normalement plusieurs sous-formulaires imbriqués, chacun d’entre eux comportant un ou plusieurs objets. Par exemple, vous pouvez voir, dans l’exemple Bon de commande, la façon dont les différents objets sont placés dans les sous-formulaires nommés header, detailHeader, detail et total. Comme vous le constatez, vous pouvez aligner des objets de texte et de champ de texte en rangées et en colonnes et les placer dans un sous-formulaire. L’utilisation de sous-formulaires pour regrouper des objets comme les différents champs de texte du sous-formulaire detail vous permet non seulement de gérer la disposition des objets, mais aussi de déterminer le nombre de répétitions du sous-formulaire.
Vous pouvez configurer chaque sous-formulaire de façon à ce que, dans le formulaire rendu, seuls les sous-formulaires contenant les objets nécessaires à la représentation du contenu des données soient insérés. Par exemple, il peut être intéressant d’établir des bons de commande différents pour chaque client. Dans un formulaire de bon de commande, le sous-formulaire est inséré douze fois pour indiquer les articles achetés ; dans un autre formulaire de bon de commande, le même sous-formulaire est disposé cinquante fois et s’étend sur plusieurs pages.
Le formulaire d’exemple Bon de commande prévu pour s’adapter à la taille des données illustre bien comment on peut utiliser les sous-formulaires pour obtenir cette configuration. Ouvrez le formulaire dans LiveCycle Designer ES et examinez la palette Hiérarchie pour connaître la structure du sous-formulaire, puis la palette Objet pour vérifier la configuration des sous-formulaires. Prêtez une attention particulière aux sous-formulaires purchaseOrder, detailHeader et detail, et à la façon dont ils sont configurés. N’oubliez pas que le sous-formulaire parent, purchaseOrder, détermine l’enchaînement du contenu dans le formulaire et s’étend pour s’ajuster aux données disponibles. Le sous-formulaire detailHeader est configuré avec un nombre minimum de 1. Autrement dit, lorsque le formulaire est généré, ce sous-formulaire n’apparaît qu’une seule fois. Cependant, le sous formulaire détail est configuré de manière à se répéter pour chaque élément de données et, par conséquent, une fois le rendu du formulaire effectué, il apparaît autant de fois que des occurrences des données figurent dans le document.