Création de formulaires de plusieurs pages qui se répètent

Même si vous pouvez placer un sous-formulaire n’importe où dans une page, lorsqu’une grande quantité de données est fusionnée avec le formulaire, le sous-formulaire risque de dépasser la bordure inférieure de la page générée. Pour résoudre ce problème, vous pouvez soit sélectionner l’option Autoriser des sauts de page pour obliger le serveur à scinder au milieu le sous-formulaire, soit désélectionner cette option pour forcer le renvoi du sous-formulaire au début de la page générée suivante. Le renvoi forcé d’un sous-formulaire à la page suivante permet de garantir que tous les sous-formulaires imbriqués s’affichent sur la même page. Si vous ne sélectionnez pas l’option Autoriser des sauts de page, vous voudrez sans doute créer un sous-formulaire de début et de fin de débordement. Voir A propos des débuts et fins de débordement.

Lorsque les données sont fusionnées, le serveur positionne le contenu d’un sous-formulaire uniquement dans les limites des zones de contenu. S’il faut fusionner une grande quantité de données avec l’un des objets d’un sous-formulaire, celui-ci peut s’étendre sur plusieurs pages de formulaire. Lorsqu’une page de formulaire est remplie, le serveur génère automatiquement une autre page identique et continue à mettre en forme le sous-formulaire sur la nouvelle page à moins que vous ne dirigiez explicitement l’enchaînement vers une zone de contenu ou un gabarit différent. Lorsqu’il existe plusieurs zones de contenu ou gabarits dans un même formulaire, vous pouvez indiquer si le sous-formulaire doit être placé dans une zone de contenu particulière ou disposé selon le gabarit.

Pour créer un sous-formulaire qui se répète

  1. Dans la palette Hiérarchie, sélectionnez le sous-formulaire parent du sous-formulaire à répéter. Voir A propos des sous-formulaires.

  2. Dans la palette Objet, cliquez sur l’onglet Sous-formulaire et sélectionnez Distribué dans la liste Contenu.

  3. Sélectionnez le sous-formulaire à répéter.

  4. Dans la palette Objet, cliquez sur l’onglet Sous-formulaire et sélectionnez Positionné ou Distribué dans la liste Contenu.

  5. Cliquez sur l’onglet Liaison et sélectionnez Sous-formulaire pour chaque élément.

  6. Pour spécifier le nombre minimum de répétitions, sélectionnez Min. de répétitions et saisissez un nombre dans la zone associée. Si cette option est réglée sur 0 et qu’aucune donnée n’est fournie pour les objets du sous-formulaire au moment de la fusion, le sous-formulaire n’est pas placé au cours du processus de génération du formulaire.

  7. Pour spécifier le nombre maximum de répétitions, sélectionnez Max. de répétitions et saisissez un nombre dans la zone associée. Si vous n’indiquez rien dans la zone Max, le nombre de répétitions du sous-formulaire est illimité.

  8. Pour spécifier un nombre précis de répétitions du sous-formulaire, quelle que soit la quantité de données, sélectionnez l’option Quantité initiale et tapez un nombre dans la zone associée. Si cette option est sélectionnée et s’il n’y a pas de données disponibles, ou si les données existantes sont inférieures à la valeur Quantité initiale, les occurrences vides du sous-formulaire apparaissent quand même sur le formulaire.

    Remarque : La valeur de la zone Quantité initiale doit être comprise entre les valeurs Min. de répétitions et Max. de répétitions. Si aucune valeur n’est indiquée dans la zone Min. de répétitions ou si elle est égale à 0, la valeur Quantité initiale est 0 par défaut.

Pour définir un sous-formulaire qui s’étend sur plusieurs pages

Les sous-formulaires peuvent être placés n’importe où dans une conception de formulaire. Toutefois, lorsqu’il y a fusion d’une grande quantité de données, le sous-formulaire peut dépasser le bord inférieur de la page rendue.

Pour régler ce problème, vous pouvez soit activer un saut de page au milieu du sous-formulaire, soit faire en sorte que le rendu de tout le sous-formulaire commence en haut de la page suivante. Le renvoi forcé d’un sous-formulaire à la page suivante permet de garantir que tous les sous-formulaires imbriqués s’affichent sur la même page.

Lorsqu’il y a fusion de données, le contenu d’un sous-formulaire est placé dans les limites des zones de contenu. S’il faut fusionner des quantités relativement importantes de données avec l’un ou l’autre des objets d’un sous-formulaire, il arrive qu’un sous-formulaire déborde sur plusieurs pages.

Lorsqu’une page est remplie, une page supplémentaire identique est générée automatiquement. Le sous-formulaire continue sur la nouvelle page, à moins que vous choisissiez explicitement de diriger l’enchaînement dans une zone de contenu ou un gabarit différent. Lorsqu’il existe plusieurs zones de contenu ou gabarits dans un même formulaire, vous pouvez indiquer si le sous-formulaire doit être placé dans une zone de contenu particulière ou disposé selon le gabarit.

Pour permettre à un sous-formulaire de s’étendre sur plusieurs pages

 Dans la palette Objet, cliquez sur l’onglet Sous-formulaire et sélectionnez l’option Autoriser des sauts de page .

Lorsque cette option est désélectionnée, les objets du sous-formulaire sont conservés ensemble sur la même page.

A propos des débuts et fins de débordement

Du fait que la longueur d’un formulaire avec une disposition souple varie selon la quantité de données qui y sont fusionnées, les formulaires de ce type comptent souvent plus d’une page. L’utilisation de sous-formulaires de début et de fin de débordement est une façon efficace de commencer et de terminer les sous-formulaires qui se répètent sur plusieurs pages. Comme sous-formulaire de début ou de fin de débordement, vous pouvez utiliser n’importe quel sous-formulaire configuré pour positionner le contenu. Par exemple, dans le formulaire d’exemple Bon de commande, le sous-formulaire detail est configuré pour positionner le contenu et pour se répéter avec chaque élément de données. Lorsque des données sont fusionnées avec le formulaire, s’il n’y a pas suffisamment d’espace sur la première page pour afficher toutes les occurrences du sous-formulaire detail, une nouvelle page est ajoutée et les données continuent à s’enchaîner vers la zone de contenu suivante.

Lorsque les données s’enchaînent de cette façon sur plusieurs pages, il est parfois souhaitable d’afficher sur chaque nouvelle page une mention du genre « Suite de la page précédente » ou des éléments de formatage spécifiques, tels qu’une rangée d’en-tête de colonne contenant le libellé descriptif de chaque colonne de données. L’utilisation de rangées d’en-tête de colonne sur chaque page suivante rend le formulaire bien plus facile à lire pour les utilisateurs. Pour ce faire, vous pouvez créer un sous-formulaire de début de débordement qui fera office de rangée d’en-tête de colonne pour chaque page supplémentaire. Dans le formulaire d’exemple Bon de commande, le sous-formulaire detailHeader est sélectionné comme sous-formulaire de début de débordement. En conséquence, une copie du sous-formulaire detailHeader est générée au début de chaque nouvelle page avant la première occurrence du sous-formulaire detail.

De même, il se peut que vous vouliez inclure certaines informations à la suite de la dernière occurrence du sous-formulaire répété, au bas de toutes les pages à l’exception de la dernière. Par exemple, vous pouvez inclure la mention « Suite à la page suivante » au bas des pages. Pour ce faire, vous pouvez créer un sous-formulaire de fin de débordement pour le sous-formulaire répété, de la même façon que vous avez créé le sous-formulaire de début de débordement.

Lorsqu’un sous-formulaire déborde sur la nouvelle page, le serveur effectue les opérations suivantes :

  • Il place le sous-formulaire de début de débordement sur la page active

  • Il dispose le sous-formulaire de fin de débordement sur la page suivante

  • Il enchaîne le sous-formulaire et le reste de ses objets répétés sur la nouvelle page

Un début de débordement est un type spécial de sous-formulaire positionné qui apparaît en haut de la page suivante dès qu’un débordement de page se produit.

Les débuts de débordement ressemblent à la rangée d’en-tête d’un tableau standard. La rangée d’en-tête s’affiche au haut du tableau et comporte un libellé qui décrit chaque colonne de celui-ci. Vous pouvez formater le tableau de telle sorte que, s’il dépasse une page, la rangée d’en-tête se répète en haut de chaque nouvelle page. Grâce à ce procédé, il est plus facile pour le lecteur de comprendre les informations du tableau lorsqu’il passe d’une page à l’autre.

Un sous-formulaire de début de débordement fonctionne sur ce principe. Lorsque vous indiquez qu’un sous-formulaire donné servira de début de débordement d’un sous-formulaire qui se répète, le sous-formulaire de début de débordement s’affichera une fois, avant que le sous-formulaire se répète, en haut de la page active et sur chaque page par la suite.

Le sous-formulaire qui se répète est ajouté aussi souvent que nécessaire au moment de la fusion de données. Lorsqu’il n’y a plus de place sur la première page, une nouvelle page est insérée et les données continuent de s’enchaîner sur la page suivante jusqu’à ce qu’elles soient épuisées. Le sous-formulaire de début de débordement s’affiche une fois en haut de chaque page.

Dans Designer, un exemple vous montre comment utiliser un sous-formulaire de début de débordement dans une conception de formulaire prévue pour s’adapter à la taille des données. Cet exemple, Purchase Order.xdp, se trouve dans le sous-dossier Samples du répertoire d’installation de Designer sur votre disque. Dans cet exemple, le sous-formulaire nommé detailHeader agit comme sous-formulaire de début de débordement du sous-formulaire qui se répète detail.

Les débuts de page de garde sont des sous-formulaires qui apparaissent avant un sous-formulaire qui se répète. Si vous définissez un nom apparenté de sous-formulaire au-dessus d’un sous-formulaire qui se répète, vous le spécifiez comme début de page de garde et comme début de débordement.

Une fin de débordement apparaît au bas de la page suivante dès qu’un débordement de page se produit. Utilisez une fin de débordement pour inclure des informations qui ne s’affichent qu’une fois, lorsque toutes les données ont été placées.

Les fins de page de garde sont des sous-formulaires qui apparaissent immédiatement après un sous-formulaire qui se répète. Si vous définissez un sous-formulaire immédiatement au-dessous d’un sous-formulaire qui se répète et que vous le spécifiez comme fin de débordement, vous l’avez défini comme fin de page de garde et comme fin de débordement.

Pour créer et affecter des débuts de débordement et des fins de débordement

Un début ou une fin de débordement est un sous-formulaire à contenu positionné qui peut être affecté à tout sous-formulaire qui se répète. Habituellement, vous créez d’abord les sous-formulaires qui serviront de début ou de fin de débordement. Ensuite, vous les affectez à un sous-formulaire qui se répète et leur attribuez des propriétés de débordement.

Si le début de débordement est également traité comme début de page de garde, il est placé dans la palette Hiérarchie, immédiatement au-dessus du sous-formulaire. De même, si la fin de débordement est également traitée comme fin de page de garde, elle est placée dans la palette Hiérarchie, immédiatement au-dessous du sous-formulaire.

Pour créer un sous-formulaire de début de débordement ou de fin de débordement

  1. Créez une conception de formulaire qui comporte tous les sous-formulaires nécessaires.

  2. Sur le modèle de formulaire, repérez le sous-formulaire que vous voulez utiliser comme début ou fin de débordement, sélectionnez le sous-formulaire et procédez comme suit :

    • Passez au panneau Sous-formulaire de la palette Objet. Assurez-vous que l’option Positionné est affichée dans la liste Contenu. Dans la palette Objet, cliquez sur l’onglet Sous-formulaire et assurez-vous que l’option Positionné est sélectionnée dans la liste Contenu.

    • Accédez au panneau Liaison de la palette Objet. Dans la palette Objet, cliquez sur l’onglet Liaison et sélectionnez l’option Sous-formulaire pour chaque élément pour afficher les débuts et les fins de débordement pour plusieurs débordements. Les débuts et fins de page de garde ne sont pas décomptés dans ce nombre.

Pour appliquer un début de débordement ou une fin de débordement à un sous-formulaire

  1. Sélectionnez les sous-formulaires à répéter.

  2. Dans la palette Objet, cliquez sur l’onglet Liaison et sélectionnez l’option Sous-formulaire pour chaque élément.

  3. Dans le panneau Pagination de la palette Objet, dans la zone Débordement, indiquez soit la zone de contenu, soit la page dans laquelle le formulaire doit placer les sous-formulaires de débordement.]

  4. Pour spécifier un début de débordement, dans la liste Début de débordement, sélectionnez le sous-formulaire à utiliser pour le sous-formulaire qui se répète. Vous pouvez également sélectionner Nouveau dans la liste Début de débordement pour créer et affecter un nouveau sous-formulaire de début de débordement.

  5. Pour spécifier une fin de débordement, dans la liste Fin de débordement, sélectionnez le sous-formulaire à utiliser pour le sous-formulaire qui se répète. Vous pouvez également sélectionner Nouveau dans la liste Fin de débordement pour créer et affecter un nouveau sous-formulaire de fin de débordement.

    Remarque : Vous n’avez pas besoin d’avoir à la fois un début de débordement et une fin de débordement. C’est vous, selon vos besoins, qui décidez si le sous-formulaire doit comporter un de ces éléments, les deux ou aucun.