PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → pb de lecture fichier avec une clé composée
pb de lecture fichier avec une clé composée
Iniciado por guest, ago., 18 2005 3:27 PM - 3 respostas
Publicado em agosto, 18 2005 - 3:27 PM
j'ai un fichier(f1) avec une clé(f1log) qui comprend 2 zones :
- une date sous forme numérique aaaammjj
- une chaine de 6 caractères qui correspond à un nom de personne

Je veux tous les enregistrements du fichier F1 qui sont compris entre 2 dates (ddebut et dfin) pour DUPONT.

cle_f1=HFiltreComprisEntre(F1,f1log,Ddebut,"DUPONT",hSéparateurBorne,Dfin,"DUPONT")
HLitPremier(f1,cle_f1)
TANTQUE PAS HEnDehors(F1)
HLitSuivant(f1,cle_f1)
FIN
HDésactiveFiltre(f1)


Avec cette syntaxe là, le 1er enr est ok et pour les suivants les dates sont bien comprises entre ddebut et dfin mais j'ai aussi des "MARTIN", des "BONNIN".

Avez_vous une solution?
Merci d'avance
Publicado em agosto, 18 2005 - 4:55 PM
Trois solutions :
- soit tu filtres sur la date, puis tu testes la valeur du nom pour
savoir si l'enregistrement correspond ou pas à ce que tu cherches
- soit tu crées une deuxième clé composée, pour laquelle le nom serait
avant la date, et du coup le filtre fonctionnera
- soit tu utilises une requête, pour laquelle tu indiques que le nom
doit être égal à dupont, et la date comprise entre tes deux bornes.

Bon dev

Céline.

Isabelle a écrit:
j'ai un fichier(f1) avec une clé(f1log) qui comprend 2 zones :
- une date sous forme numérique aaaammjj
- une chaine de 6 caractères qui correspond à un nom de personne

Je veux tous les enregistrements du fichier F1 qui sont compris entre 2 dates (ddebut et dfin) pour DUPONT.

cle_f1=HFiltreComprisEntre(F1,f1log,Ddebut,"DUPONT",hSéparateurBorne,Dfin,"DUPONT")
HLitPremier(f1,cle_f1)
TANTQUE PAS HEnDehors(F1)
HLitSuivant(f1,cle_f1)
FIN
HDésactiveFiltre(f1)


Avec cette syntaxe là, le 1er enr est ok et pour les suivants les dates sont bien comprises entre ddebut et dfin mais j'ai aussi des "MARTIN", des "BONNIN".

Avez_vous une solution?
Merci d'avance
Publicado em agosto, 18 2005 - 5:31 PM
Bonjour

Essaye juste le Hfiltre et pas le Hfiltrecomprisentre.

cle_f1 est une chaine =Hfiltre(F1,f1log,"*","DATE >="+Ddebt+" ET DATE <="+Dfin+"ET NOM='DUPONT')

Hlitpremier(F1,cle_f1)
...

Je suis pas sur du Ddebut , peut etre faut il des quote ' entre chaque mais si la zone Date est numerique normalement non.

J'espere que ca t'aidera
Publicado em agosto, 18 2005 - 5:34 PM
Votre filtre fonctionne en fait correctement, puique la date est en majeur dans la clef composée. Solution: adoptez une clef composée Nom+date ou plus simple faire une requête avec 2 paramètres( Nom ou intervalle de nom, date ou intervalle de date.
Bon dev.