Comment répéter les lignes dans la bande Détail ?
Pour créer un modèle d'étiquettes à coller sur des colis contenant un seul article, vous allez avoir besoin de multiplier une ligne de document par le nombre de colis stocké dans le champ LIG_NCOLIS.
Vous pouvez le faire de manière statique en modifiant la propriété BandsPerRecord de la bande Détail. Mais dans notre cas, ce n'est pas intéressant car vous aurez toujours le même nombre de lignes à chaque fois.
Nous avons besoin de le faire dynamiquement. Nous devons d'abord aller dans l'onglet Calculs (vérifier que l'affichage est bien sur la visualisation Evénement).
Nous avons besoin de le faire dynamiquement. Nous devons d'abord aller dans l'onglet Calculs (vérifier que l'affichage est bien sur la visualisation Evénement).
Ensuite nous recherchons la bande Detail dans l'arborescence du modèle à gauche.
Nous sélectionnons l'événement BeforeGenerate de la bande Detail et on fait un clic dans la zone de saisie des formules. Nous obtenons une nouvelle formule comme ci-dessous.
Nous allons maintenant assigner dynamiquement la valeur du champ LIG_NCOLIS de la vue des lignes à la propriété BandsPerRecord de la bande Detail.
Detail.BandsPerRecord := VarToInt(LIGNES.GetFieldValue('LIG_NCOLIS'));
Remarque : la fonction VarToInt a été utilisée pour remplacer par 0 les valeurs NULL que pourrait contenir le champ LIG_NCOLIS.