PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Parcours d'une requete
Parcours d'une requete
Iniciado por franck.lancia, 07,nov. 2019 13:34 - 7 respuestas
Miembro registrado
88 mensajes
Publicado el 07,noviembre 2019 - 13:34
Bonjour,

j'aimerais parcourir une requête et tester certaines colonnes et suivant le résultat un libellé affiche un message.
théoriquement rien de spécial pour les champions mais pour moi Oulalala la galère :D

voila le code que je mets

REQ_ppeduc.ParamENomPrenom=LIB_connect
HExécuteRequête(REQ_ppeduc)
SI HLitPremier(REQ_ppeduc,ENomPrenom,LIB_connect)=Vrai ALORS

SI REQ_ppeduc.PPE1<DateSys() ALORS
SI REQ_ppeduc.VisaCSEPPPE1="Non" ALORS
LIB_pp="Vous avez des échéances PP à surveiller"
FIN
SINON

SI REQ_ppeduc.PPECR2<DateSys() ALORS
SI REQ_ppeduc.VisaCSEPPPE2="Non" ALORS
LIB_pp="Vous avez des échéances PP à surveiller"
FIN
SINON

SI REQ_ppeduc.PPECR3<DateSys() ALORS
SI REQ_ppeduc.VISACSEPPPE3="Non" ALORS
LIB_pp="Vous avez des échéances PP à surveiller"
FIN
SINON

SI REQ_ppeduc.PPECR4<DateSys() ALORS
SI REQ_ppeduc.VISACSEPPPE4="Non" ALORS
LIB_pp="Vous avez des échéances PP à surveiller"
FIN
FIN
FIN
FIN
FIN
FIN


donc là évidemment les bons ont déjà vu pkoi ca ne marchait pas :(


en fait dans cette requete ppeduc, je veux lire chaque colonne (ppe1, ppecr2, ppecr3 et ppecr4) comparer le résultat avec la date du jour si le visacsep correspondant est égale à non et le libéllé s'active.

Donc je lis parfaitement la première ligne de la requête mais je ne passe évidemment pas aux suivantes. j'ai essayé de caser hlitsuivant qlq part, mais alors ou ? ;(

d'avance merci aux gentils correcteurs :D

--
Merci ;) Franck
Mensaje modificado, 07,noviembre 2019 - 13:35
Miembro registrado
34 mensajes
Publicado el 07,noviembre 2019 - 13:47
Bonjour

Déjà je vois que LIB_pp prend toujours la même valeur
pourquoi tu ne fais pas un
SI (REQ_ppeduc.PPE1<DateSys() et REQ_ppeduc.VisaCSEPPPE1="Non") _ou_ (REQ_ppeduc.PPECR2<DateSys() et REQ_ppeduc.VisaCSEPPPE2="Non") _ou_ … alors
LIB_pp="Vous avez des échéances PP à surveiller"
fin

pour ton hlitsuivant il faut faire une boucle et sortir de la boucle quand une condition est rempli ???
tantque


fin
Miembro registrado
88 mensajes
Publicado el 07,noviembre 2019 - 14:01
Bonjour Dominique,

d'abord merci,

oui c'est vrai que vu que mon lib ne change pas je pourrais simplifier. les notion de ET OU je ne les maitrise pas encore bien. mais je vais tenter ca pour simplifier

concernant le hlitsuivant et faire la boucle et évidement en sortir, là c'est la cata, je ne dois pas les mettre ou il faut ou peut etre une erreur dans ma syntaxe, mais en fait il boucle pas il s’arrête toujours à la premiere ligne. Trop novice sur ce genre de chose :D

--
Merci ;) Franck
Miembro registrado
160 mensajes
Publicado el 07,noviembre 2019 - 14:16
Bonjour,

Mets un point d'arrêt sur la ligne : SI HLitPremier(REQ_ppeduc,ENomPrenom,LIB_connect)=Vrai ALORS

et regardes dans le débogueur les resulats de ta requette
Miembro registrado
88 mensajes
Publicado el 07,noviembre 2019 - 14:32
Bonjour Freak

ma requete et la lecture de la premiere ligne de la requete se passe bien, les résultats sont bons, malheureusement il ne passe pas au second enregistrement et ainsi de suite de la requete.

en fait je mets le hlitsuivant....tantque pas hendehors forcement au mauvais endroit ou je l'ecris mal car au choix :
ca bloque l'appli
ou
alors ils s'en fout
:D

--
Merci ;) Franck
Miembro registrado
160 mensajes
Publicado el 07,noviembre 2019 - 14:37
t'as regardé la doc ?

HLitPremier

TANTQUE HEnDehors() = Faux
// Traitement de l'enregistrement
HLitSuivant(Client, Nom)
FIN
Publicado el 07,noviembre 2019 - 14:43
Pourquoi ne pas remplacer

"SI HLitPremier(REQ_ppeduc,ENomPrenom,LIB_connect)=Vrai " ALORS

Par :
pour tout REQ_ppeduc
....
SI REQ_ppeduc.PPE1<DateSys() ALORS
SI REQ_ppeduc.VisaCSEPPPE1="Non" ALORS
LIB_pp="Vous avez des échéances PP à surveiller"
....
FIN

Le "Hlitsuivant" dans ce cas est automatique

Bon code
Miembro registrado
88 mensajes
Publicado el 07,noviembre 2019 - 15:32
ALors en fait en simplifiant un max, ce qui n'est pas mon fort ca marche nickel

pour tout req_ppeduc ......
en ajoutant à ca l'idée de simplification de dominique
ca tourne

j'ai tendance à toujours trop rajouter de mots en fait :D

Merci à tous

--
Merci ;) Franck