|
|
(Menu Utilitaires / Paramétrage Editions)
L'essentiel Le propre d'un script d'édition est bien entendu d'imprimer les enregistrements les uns après les autres, en réalisant des traitements répétitifs. Vous pouvez utiliser les 2 types d'instructions suivantes (appelées "boucles"). |
Ce type de boucle est nécessairement lié à une liste d'enregistrement. Son emploi nécessite donc la création préalable d'une variable de liste, avec une instruction du type NomVarListe = Liste "Ensemble de données".
Pour chaque NomVarListe
... (instructions)
Boucler
Toutes les instructions placées entre les 2 instructions Pour chaque et Boucler seront répétées jusqu'à ce que tous les enregistrements de la liste représentée par la variable NomVarListe aient été parcourus. Le parcours des enregistrements est toujours fait dans l'ordre croissant du classement courant de la liste.
Exemple :
Client = Liste "Clients" classée par "indCode"
Pour chaque Client
Imprimer "BlocClient"
Boucler
Cet exemple crée une variable associée à la liste des clients, classée selon l'index IndCode (on supposera que cet index permet le classement selon les noms de clients). Suite à l'instruction Client = Liste "Clients" classée par "indCode", la variable Client désigne le premier client dans la liste, dans l'ordre des codes.
L'instruction Pour chaque client teste si tous les clients ont été traités. Tant que ce n'est pas le cas, l'instruction Imprimer "BlocClient" est exécutée : le bloc BlocClient est donc imprimé autant de fois qu'il existe de clients dans la liste.
Faire
... (instructions)
Si condition alors Arrêter
...
Boucler
Toutes les instructions placées entre les 2 instructions Faire et Boucler seront répétées jusqu'à ce qu'une instruction Arrêter soit rencontrée. Vous devez donc impérativement placer une instruction Arrêter dans ce type de boucle, au risque de générer une répétition infinie.
Vous pouvez utiliser ce type de boucle pour réaliser des traitements indépendants des données.
Exemple :
Exemple d'un traitement devant être réalisé 10 fois :
n = 0
Faire
n = n + 1
Si n > 10 alors Arrêter
... (instructions)
Boucler
Vous pouvez également utiliser ce type de boucle pour parcourir tous les enregistrements d'une liste, bien que cela soit moins pratique que la boucle Pour chaque...Boucler.
Exemple :
Client = Liste "Clients" classée par "indCode"
Faire
Si Fin(Client) alors Arrêter
Imprimer "DétailClient"
LitSuivant(Client)
Boucler
Cette boucle aboutit au même résultat que la boucle précédente Pour chaque Client...Boucler.