HFiltre encore et encore
Le
Bonjour,
Encore un souci avec ce satané HFiltre et ce n'est pas le premier que je mets mais là j'en perds mon latin avec des quotes ou sans quote, le filtre ne fonctionne pas.
En gros, j'ai une table fichier et un bandeau dit de recherche. A chaque lettre saisie dans ce bandeau mon filtre s'active pour rafraichir ma table et ne donner que les éléments concernés. Jusque là, rien de bien compliqué.
Je suis bien sur passé par l'assistant Windev, voici le code :
// On active le filtre
HFiltre(Patient, IDPatient,Gauche(nom)="J")
// Parcours des enregistrements filtrés
HLitPremier(Patient, IDPatient)
TANTQUE PAS HEnDehors()
Info("je suis la")
HLitSuivant(Patient, IDPatient)
FIN
// On désactive le filtre
HDésactiveFiltre(Patient)
J'ai enlevé tous les quotes bien sur. Je ne passe jamais par ma boucle quoique je fasse d'où mon Info en plein milieu mais ma condition ne va pas dans mon Hfiltre je le sais bien mais j'ai beau la tourner dans tous les sens, rien ne fonctionne. Dans le gauche.nom="J", le J est juste une lettre de test qui normalement est une zone de saisie rattachée au nom du patient.
Si quelqu'un a une idée, j'en serais plus que content !
Merci par avance, Chris
PS : Windev 7.5
Encore un souci avec ce satané HFiltre et ce n'est pas le premier que je mets mais là j'en perds mon latin avec des quotes ou sans quote, le filtre ne fonctionne pas.
En gros, j'ai une table fichier et un bandeau dit de recherche. A chaque lettre saisie dans ce bandeau mon filtre s'active pour rafraichir ma table et ne donner que les éléments concernés. Jusque là, rien de bien compliqué.
Je suis bien sur passé par l'assistant Windev, voici le code :
// On active le filtre
HFiltre(Patient, IDPatient,Gauche(nom)="J")
// Parcours des enregistrements filtrés
HLitPremier(Patient, IDPatient)
TANTQUE PAS HEnDehors()
Info("je suis la")
HLitSuivant(Patient, IDPatient)
FIN
// On désactive le filtre
HDésactiveFiltre(Patient)
J'ai enlevé tous les quotes bien sur. Je ne passe jamais par ma boucle quoique je fasse d'où mon Info en plein milieu mais ma condition ne va pas dans mon Hfiltre je le sais bien mais j'ai beau la tourner dans tous les sens, rien ne fonctionne. Dans le gauche.nom="J", le J est juste une lettre de test qui normalement est une zone de saisie rattachée au nom du patient.
Si quelqu'un a une idée, j'en serais plus que content !
Merci par avance, Chris
PS : Windev 7.5

Poser une question


la bonne syntaxe du hfiltre serait :
hfiltre(Patient,IDPatient,"Nom]='J'")
Ou ]= correspond à "commence par", la version paramétrable serait :
hfiltre(Patient,IDPatient,chaineconstruit("Nom]='%1'","J"))
Bon dev,
Fred
Le 20/12/2011 18:06, axxisii a écrit :
Toujours la même erreur avec ton code...
En faisant un halt sur le HLitPremier et le TANTQUE PAS HenDehors(), le HLit me dit que je suis pas en dehors donc il continue mais quand je tombe sur le TANTQUE, je suis en dehors donc ma boucle s'arrête...
Le but du jeu est juste de filtrer une table ficher en fonction d'un caractère saisie dans une zone texte, mais là, je ne vois pas...
Bonsoir,
Comment il te dit qu'il n'est pas en dehors ? Qu'est-ce qui te dit qu'il a
trouvé ? Je ne vois pas de test ou tu vérifies s'il en a trouvé au moins un
(If hlitpremier ou bien if htrouvé). Peut être qu'il n'y a aucun nom
commençant par J. Si tu en es certain, c'est que ton filtre n'est pas
correctement posé.
Comme l'a dit Fredo, dans la Condition du filtre, il faut mettre les
valeurs entre simples quotes (apostrophe).
Es-tu sur du nom de la rubrique ?
Avec le hfiltre, il ne faut jamais s'énerver... J'en sais qq chose. Une fois
qu'on a bien compris comment ça marche, ça va
Bon courage,
Victor
C'est réglé !
Encore un quote mal placé pour ne pas changer mais ça fonctionne.
Au passage comme j'utilise la version 7.5 de Windev, je n'ai pas la propriété html..CouleurdeFond pour les champs HTML à rendre transparent.
Y a-t-il un moyen de contourner ceci ou quelle version de Windev faut-il ?
Merci