Définition :
Cette nouvelle instruction permet de parcourir chaque ligne contenue dans un texte multi-ligne sous la forme d’une boucle qui exécutera les instructions inscrites pour chacune d’entre elles.
Syntaxe :
...
[POURCHAQUE]
...
[EXTRAIRE]
...
Variable
...
pour
...
contenir
...
la
...
ligne :
...
variable
...
qui
...
contient
...
le
...
texte
...
[FINEXTRAIRE]
...
Instructions
...
à
...
exécuter
...
pour
...
chaque
...
ligne
...
lue
...
du
...
texte
...
…
...
[FINPOURCHAQUE]
Exemples 1 :
Cas d'une zone de texte dans un masque :
Soit les deux variables déclarées par paramétrage :
...
Résultat : Un SAM affiche le contenu de chaque ligne lue.
...
Exemple 2 : Cas d'un fichier texte :
...
Code Block |
---|
//Soit les deux variables déclarées par paramétrage :
SDVA("ComptesClients$", "variable qui contiendra le contenu du fichier")
SDVA("Line","variable qui contiendra une ligne du fichier texte")
//Lecture du fichier texte dans une variable:
vu(1) = FileReadAllText("c:\compte.txt","ComptesClients$")
[SI]
vu(1)=0
[FINSI]
[ALORS]
// début de la boucle pour chaque ligne de texte
[POURCHAQUE]
[EXTRAIRE]
Line : ComptesClients$
[FINEXTRAIRE]
SAM("line", Line) // Chaque ligne du texte sera affichée à l’écran sous forme d’un message
[FINPOURCHAQUE]
[FINALORS]
[SINON]
SAM("", SilGetLastError(vu(1)),0) // Affichage de l'erreur si le fichier est n'est pas lu
[FINSINON] |
Résultat : Un SAM affiche le contenu de chaque ligne lue.
...
Exemple 3 : Duplication d'une ligne d'AOC depuis l'application "Proposition commerciale"
Code Block |
---|
//Soit deux variables dans lesquelles on mémorise le "codeclient" et le "numéro d'appel d'offre" sur lequel on se trouve.:
vu$(0)="C.C.M"
vu$(1)="3091502"
//Insertion des données des lignes de la table "MACRO_AOCC" après l'avoir vidée.
SER(""," DELETE FROM MACRO_AOCC","")
SER(""," INSERT INTO MACRO_AOCC (CodeClient,NoAppelOffres,NumeroLigneDemande) SELECT CodeClient,NoAppelOffres,NumeroLigneDemande FROM AOCC WHERE CodeClient=@vu$(0) AND NoAppelOffres=@vu$(1)","")
//Pour chaque ligne insérée on utilise la fonction "aoc_duplication_ligne()"
[POURCHAQUE]
[EXTRAIRE]
vu$(2);vu$(3);vu(1) : SQL=SELECT CodeClient,NoAppelOffres,NumeroLigneDemande FROM MACRO_AOCC
[FINEXTRAIRE]
aoc_duplication_ligne(vu$(2), vu$(3), vu(1))
[FINPOURCHAQUE] |