PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Pb hLitRecherchePremier incompréhensible !
Pb hLitRecherchePremier incompréhensible !
Iniciado por vbenner, set., 05 2005 10:53 AM - 3 respostas
Publicado em setembro, 05 2005 - 10:53 AM
Bonjour,

Jusqu'à présent, j'avais des cheveux. Mais je suis en train de me les arracher...

J'ai un fichier T_LIGNE_CMDE qui possède une clé sur NUM_CDE et sur LIGNE_CDE

Je veux rechercher toutes les lignes de commandes correpondant à une variable globale gNUM_CDE.

Quand je tape le code suivant, le message TROUVE s'affiche (et j'ai constaté avec hRécupèreEnregistrement que tout est conforme !)

HLitPremier(T_LIGNE_CMDE)
TANTQUE PAS HEnDehors(T_LIGNE_CMDE)
SI T_LIGNE_CMDE.NUM_CMDE = gNUM_CDE ALORS
info("TROUVE !")
FIN
HLitSuivant(T_LIGNE_CMDE)
FIN


Jusque là, je maîtrise...

Maintenant, quand je tape le code suivant, ça ne trouve rien :

HLitRecherchePremier(T_LIGNE_CMDE,NUM_CMDE,gNUM_CDE)
SI HTrouve(T_LIGNE_CMDE) ALORS
Info(HRécupèreEnregistrement(T_LIGNE_CMDE))
HLitSuivant(T_LIGNE_CMDE, NUM_CMDE)
SINON
Info("PAS TROUVE !")
FIN



Quelqu'un voit-il d'où vient l'erreur ?

Merci,

Vincent-le-Chauve
Publicado em setembro, 05 2005 - 12:48 PM
Bonjour ,
Essaue plutôt :
HLitRecherchePremier(T_LIGNE_CMDE,NUM_CMDE,gNUM_CDE)
Tantque HTrouve(T_LIGNE_CMDE)
Info(HRécupèreEnregistrement(T_LIGNE_CMDE))
HLitSuivant(T_LIGNE_CMDE, NUM_CMDE)
SINON
Info("PAS TROUVE !")
FIN


En effet avec ton ancien code il vient pointer et lire juste le premier enregistrement qu'il trouve. Avec le code ci-dessus il boucle sur Num_cmde tant qu'il trouve gnum_cde !

Voir les exemples de l'aide en ligne ...

Michel.
Publicado em setembro, 06 2005 - 5:14 PM
Bonjour,
J'utilise très souvent
hfiltrecommencepar pour isoler comme vous les lignes d'une commande ou d'une
facture
l'avantage c'est que tous les enregistrements trouvés avec ordres
HLitpremier,etc ... sont toujours des enregistrements faisant
référence à des lignes de la commande

Patrick

"Vincent" <vbenner@pageup.fr> a écrit dans le message de news:
431bd6e2$1@news.pcsoft.fr...

Bonjour,

Jusqu'à présent, j'avais des cheveux. Mais je suis en train de me les
arracher...

J'ai un fichier T_LIGNE_CMDE qui possède une clé sur NUM_CDE et sur
LIGNE_CDE

Je veux rechercher toutes les lignes de commandes correpondant à une
variable globale gNUM_CDE.

Quand je tape le code suivant, le message TROUVE s'affiche (et j'ai
constaté avec hRécupèreEnregistrement que tout est conforme !)

HLitPremier(T_LIGNE_CMDE)
TANTQUE PAS HEnDehors(T_LIGNE_CMDE)
SI T_LIGNE_CMDE.NUM_CMDE = gNUM_CDE ALORS
info("TROUVE !")
FIN
HLitSuivant(T_LIGNE_CMDE)
FIN


Jusque là, je maîtrise...

Maintenant, quand je tape le code suivant, ça ne trouve rien :

HLitRecherchePremier(T_LIGNE_CMDE,NUM_CMDE,gNUM_CDE)
SI HTrouve(T_LIGNE_CMDE) ALORS
Info(HRécupèreEnregistrement(T_LIGNE_CMDE))
HLitSuivant(T_LIGNE_CMDE, NUM_CMDE)
SINON
Info("PAS TROUVE !")
FIN



Quelqu'un voit-il d'où vient l'erreur ?

Merci,

Vincent-le-Chauve
Publicado em setembro, 07 2005 - 12:13 PM
iUTILISE un filtre
hfiltre(T_LIGNE_CMDE,NUM_CMDE,gNUM_CDE+havlmin,gNum_Cde+hvalmax)
HLitPremier(T_LIGNE_CMDE,NUM_CMDE)
tantque pas hendhors(T_LIGNE_CMDE)
Info(HRécupèreEnregistrement(T_LIGNE_CMDE))
HLitSuivant(T_LIGNE_CMDE, NUM_CMDE)
FIN