PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Requête et caractère %
Requête et caractère %
Started by corinne.bocquel, Mar., 23 2006 4:39 PM - 1 reply
Posted on March, 23 2006 - 4:39 PM
Bonjour,

J'ai besoin de faire une recherche sur une désignation qui peut contenir le caractère %.
Par exemple, l'utilisateur recherche les articles dont la désignation contient '5%'.

Dans un formulaire, j'utilise la fonctions HFiltre et dans la condition j'ai fait précéder tous les caractères % par le caractère \, comme spécifié dans l'aide. Dans ce cas, cela fonctionne très bien. Voir code ci-dessous :

POUR i = 1 TO Taille(MoiMême)
SI Milieu(MoiMême,i,1) = "%" ALORS
MoiMême = Gauche(MoiMême,i-1) + "\" + Milieu(MoiMême,i,1)
i = i + 1
FIN
FIN
Condition = "ARTICLE.Designation LIKE '%" + MoiMême + "%'"
CléParcours = HFiltre(Article,Condition)

Dans un autre formulaire, je ne peux pas utiliser Hfiltre car la recherche doit se faire sur une zone d'un champ Table (dites-moi si je me trompe...), j'utilise donc une requête à laquelle je passe un paramètre. Et là, j'ai un problème :
- si je passe 5%, il recherche les désignations contenant 5 (il considère le caractère % comme caractère générique)
- si je passe 5\%, il recherche les désignations contenant 5\ !!!

Le code est le suivant :
// Initialisation de la requête de sélection des articles
HExécuteRequête(req_rech_fab,hRequêteDéfaut,MoiMême)
HLitPremier(req_rech_fab)


Merci de votre aide.
Posted on March, 23 2006 - 6:23 PM
Corinne BOCQUEL vient de nous annoncer :
Bonjour,

J'ai besoin de faire une recherche sur une désignation qui peut contenir le
caractère %. Par exemple, l'utilisateur recherche les articles dont la
désignation contient '5%'.

Dans un formulaire, j'utilise la fonctions HFiltre et dans la condition j'ai
fait précéder tous les caractères % par le caractère \, comme spécifié dans
l'aide. Dans ce cas, cela fonctionne très bien. Voir code ci-dessous :

POUR i = 1 TO Taille(MoiMême)
SI Milieu(MoiMême,i,1) = "%" ALORS
MoiMême = Gauche(MoiMême,i-1) + "\" + Milieu(MoiMême,i,1)
i = i + 1
FIN
FIN
Condition = "ARTICLE.Designation LIKE '%" + MoiMême + "%'"
CléParcours = HFiltre(Article,Condition)

Dans un autre formulaire, je ne peux pas utiliser Hfiltre car la recherche
doit se faire sur une zone d'un champ Table (dites-moi si je me trompe...),
j'utilise donc une requête à laquelle je passe un paramètre. Et là, j'ai un
problème : - si je passe 5%, il recherche les désignations contenant 5 (il
considère le caractère % comme caractère générique) - si je passe 5\%, il
recherche les désignations contenant 5\ !!!

Le code est le suivant :
// Initialisation de la requête de sélection des articles
HExécuteRequête(req_rech_fab,hRequêteDéfaut,MoiMême)
HLitPremier(req_rech_fab)


Merci de votre aide.


essayes de doubler %
JD

--