Designer offre deux modes de placement des objets dans un formulaire :
Zones de contenu dans une disposition souple
Tous les gabarits possèdent une zone de contenu par défaut qui s'affiche dans les pages correspondantes. La zone de contenu délimite la zone dans laquelle vous pouvez placer des objets dans les pages, un peu comme les marges dans un document texte. Autrement dit, dans une page, vous ne pouvez pas placer d'objets en dehors de la zone de contenu définie.
Chaque formulaire doit comporter au moins une zone de contenu.
La zone de contenu ne limite en rien la zone dans laquelle vous pouvez positionner des objets dans les gabarits. En fait, vous pouvez placer des objets standard n'importe où dans un gabarit, à l'intérieur ou à l'extérieur de la zone de contenu. Si vous placez des objets à l'extérieur de la zone de contenu, comme du texte d'en-tête ou de pied de page, la date et l'heure, ou la pagination, testez le formulaire pour vous assurer que les objets s'affichent comme prévu. Assurez-vous, en outre, que les objets des pages ne chevauchent pas et ne cachent pas les objets des gabarits lorsque le formulaire est généré.
Avec les formulaires contenant des sections s'adaptant aux données, n'oubliez pas que la mise en forme du formulaire est, en définitive, liée aux données. Si le formulaire est généré via Forms ou Output, des pages sont ajoutées jusqu’à ce que toutes les données disponibles soient fusionnées. A mesure que de nouvelles pages sont insérées, les données s'enchaînent de page en page dans la section définie par la zone de contenu des gabarits.
Si vous souhaitez la même disposition pour toutes les pages du formulaire, la zone de contenu par défaut est tout ce dont vous avez besoin. Cependant, si vous souhaitez une disposition plus complexe, vous pouvez ajouter des zones de contenu supplémentaires au gabarit par défaut. N'oubliez pas que si vous souhaitez une direction d'enchaînement ou une orientation de page différente, ou des pages recto verso, vous pouvez insérer des gabarits supplémentaires et configurer les autres gabarits et zones de contenu en fonction de vos besoins.
Rappelez-vous que vous ne pouvez pas manipuler les zones de contenu dans les pages.
Sous-formulaires dans une disposition souple
La planification de sous-formulaires est une étape clé dans la création d'un formulaire à disposition souple. Dans un formulaire contenant des sections à disposition souple, les sous-formulaires comprennent les objets de chaque section du formulaire. Ils gèrent la disposition du formulaire à mesure qu'ils ajustent la longueur en fonction de la quantité de données qui y est fusionnée. Les sous-formulaires s'assurent également que les objets se déplacent ensemble et qu'ils sont disposés de façon cohérente les uns par rapport aux autres. Lorsque vous placez des objets dans un sous-formulaire, vous avez l'assurance que, quelle que soit la quantité de données fusionnées avec le formulaire, le format de chaque section demeure cohérent, et que la disposition du formulaire dans son ensemble est prévisible d'un rendu à l'autre.
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 est fusionnée. Si, par exemple, le fichier de données XML comporte deux niveaux, vous pouvez définir 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 manière que Designer 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. Vous pouvez voir ici, dans l'exemple Bon de commande, la façon dont les différents objets sont regroupé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é 12 fois pour indiquer les articles achetés. Dans un autre formulaire de bon de commande, le même sous-formulaire est placé 50 fois et couvre plusieurs pages.
L'exemple de formulaire de bon de commande illustre comment vous pouvez utiliser les sous-formulaires pour obtenir cette configuration. Ouvrez le formulaire dans Designer et examinez la palette Hiérarchie pour connaître la structure du sous-formulaire. Examinez 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.
En outre, vous pouvez utiliser un sous-formulaire pour dessiner une bordure autour d'un jeu de sous-formulaires. Par exemple, vous pouvez créer un ou plusieurs sous-formulaires dynamiques, les imbriquer dans un sous-formulaire wrapper, pour lequel vous pouvez configurer une bordure. Après génération du formulaire, une bordure apparaît autour de tous les sous-formulaires internes.