PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → WD75: Hflitre - écrire la condition de sélection
WD75: Hflitre - écrire la condition de sélection
Iniciado por Val, 06,ago. 2004 10:59 - 3 respuestas
Publicado el 06,agosto 2004 - 10:59
Bonjour

Je souhaite placer un filtre sur un fichier HF

Ainsi:
cleparcours est une chaine = hfiltre(CLIENT,"DEPARTEMENT]='Loiret'") marche
bien puisque seuls les clients sur le département "Loiret" s'affichent.

Bon, à présent mes départements sont dans une combo ListeDep.
Donc, je souhaiterais que lorsque l'utilisateur sélectionne le département
Manche dans la combo, le filtre soit redéfini en conséquence de façon à ce
que seuls les clients sur le département "Manche" s'affichent.

Mon problème est le suivant: comment ré-écrire la Condition de sélection
puisque

1) hfiltre(CLIENT,"DEPARTEMENT]='ListeDep[ListeDep]'")
ne marche pas

2) ledep est une chaine=ListeDep[ListeDep]
hfiltre(CLIENT,"DEPARTEMENT]='ledep'")
ne marche pas

3) ledep est une chaine=ListeDep[ListeDep]
hfiltre(CLIENT,"DEPARTEMENT]=ledep")
ne marche pas

Merci de votre aide

Val
Publicado el 06,agosto 2004 - 11:25
"Val" <al76230@voila.fr> wrote:

Bonjour

Je souhaite placer un filtre sur un fichier HF

Ainsi:
cleparcours est une chaine = hfiltre(CLIENT,"DEPARTEMENT]='Loiret'") marche
bien puisque seuls les clients sur le département "Loiret" s'affichent.

Bon, à présent mes départements sont dans une combo ListeDep.
Donc, je souhaiterais que lorsque l'utilisateur sélectionne le département
Manche dans la combo, le filtre soit redéfini en conséquence de façon à

ce
que seuls les clients sur le département "Manche" s'affichent.

Mon problème est le suivant: comment ré-écrire la Condition de sélection
puisque

1) hfiltre(CLIENT,"DEPARTEMENT]='ListeDep[ListeDep]'")
ne marche pas

2) ledep est une chaine=ListeDep[ListeDep]
hfiltre(CLIENT,"DEPARTEMENT]='ledep'")
ne marche pas

3) ledep est une chaine=ListeDep[ListeDep]
hfiltre(CLIENT,"DEPARTEMENT]=ledep")
ne marche pas

Merci de votre aide

Val






Pourquoi n'essayes-tu pas:

hfiltre(CLIENT,DEPARTEMENT,ListeDep[ListeDep],ListeDep[ListeDep])

Cette syntaxe de filtre veut dire: tu filtres sur la clé DEPARTEMENT avec
en borne minimum ListeDep[ListeDep] et en borne maximum ListeDep[ListeDep].
Donc en fait, ça équivaut à chercher tous lesenregs qui ont pour condition
DEPARTEMENT = ListeDep[ListeDep].
Publicado el 06,agosto 2004 - 12:11
"Philippe" <jpl.systemes@wanadoo.fr> a écrit dans le message de
news:4113324c$1@news.pcsoft.fr...


"Val" <al76230@voila.fr> wrote:

Bonjour

Je souhaite placer un filtre sur un fichier HF

Ainsi:
cleparcours est une chaine = hfiltre(CLIENT,"DEPARTEMENT]='Loiret'")

marche
bien puisque seuls les clients sur le département "Loiret" s'affichent.

Bon, à présent mes départements sont dans une combo ListeDep.
Donc, je souhaiterais que lorsque l'utilisateur sélectionne le

département
Manche dans la combo, le filtre soit redéfini en conséquence de façon à
ce

que seuls les clients sur le département "Manche" s'affichent.

Mon problème est le suivant: comment ré-écrire la Condition de sélection
puisque

1) hfiltre(CLIENT,"DEPARTEMENT]='ListeDep[ListeDep]'")
ne marche pas

2) ledep est une chaine=ListeDep[ListeDep]
hfiltre(CLIENT,"DEPARTEMENT]='ledep'")
ne marche pas

3) ledep est une chaine=ListeDep[ListeDep]
hfiltre(CLIENT,"DEPARTEMENT]=ledep")
ne marche pas

Merci de votre aide

Val






Pourquoi n'essayes-tu pas:

hfiltre(CLIENT,DEPARTEMENT,ListeDep[ListeDep],ListeDep[ListeDep])

Cette syntaxe de filtre veut dire: tu filtres sur la clé DEPARTEMENT avec
en borne minimum ListeDep[ListeDep] et en borne maximum

ListeDep[ListeDep].
Donc en fait, ça équivaut à chercher tous lesenregs qui ont pour condition
DEPARTEMENT = ListeDep[ListeDep].


Bonjour

Oui effectivement c'est une solution.
Malheureusement, cela ne colle pas avec ce que je dois faire puisque je vais
devoir ajouter d'autres critères de filtrage dans la condition de sélection
(nombre de commandes passées, chiffre d'affaire)

Bon, ceci dit la solution que j'ai trouvée dans l'aide de WD55 semble être
ceci (mais dieu que cette syntaxe est barbare avec les ' et les " qui
s'entremêlent).

ConditionFiltre est une chaîne=
"DEPARTEMENT]='"+Remplace(ledep,"'","\'")+"'"
cleparcours=HFiltre(CLIENT,ConditionFiltre)


A+

Val
Publicado el 08,agosto 2004 - 01:56
Salut,
en fait tu dois concatener la chaine qui compose ta valeur de champ et celle
du combo car sinon 'ListeDep' sera traité comme du texte

essaie ceci

hfiltre(CLIENT,"DEPARTEMENT]='" + ListeDep..valeur + "'")
ou
hfiltre(CLIENT,"DEPARTEMENT]='" + ListeDep..ValeurAffichée + "'")

selon les champs de ton combo

tiens moi au courant
@+
Fred