PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Système de recherche
Système de recherche
Débuté par AnneT, 08 déc. 2005 09:30 - 9 réponses
Posté le 08 décembre 2005 - 09:30
Bonjour,

J'ai une fenêtre avec une table représentant la liste de fournisseurs.
J'aimerais que lorsque l'utilisateur arrive sur cette fenêtre, pour qu'il puisse rechercher un fournisseur, tape * sur son clavier puis commence à taper un nom.
* permettrai d'annoncer le début d'une recherche; et au fur et à mesure qu'il tape une lettre, une ligne du tableau est sélectionnée en fonction de ce qu'il a tapé.

si l'utilisateur a tapé *tart et qu'il ya un fournisseur "SA tartes", celui doit être sélectionné

est il possible de faire ça?
dans quel traitement et quel code pour récupérer ce que l'utilisateur a saisi?

merci
Posté le 08 décembre 2005 - 10:06
salut

soit à chaque modification du champ de saisie soit à la sortie du champ de saisie
a toi de voir...
Posté le 08 décembre 2005 - 10:07
salut

soit à chaque modification du champ de saisie soit à la sortie du champ de saisie
a toi de voir...
Posté le 08 décembre 2005 - 10:19
j'aimerais que ça se fasse sans champ de saisie, si c possible
et après chaque touche, que la recherche avance
Posté le 08 décembre 2005 - 10:29
pourquoi pas un champ de saisie masqué ? il suffit que tu le replaces automatiquement sur ce champ
Posté le 08 décembre 2005 - 10:43
Salut

Dis mois : ta fenêtre comporte une table : OK
mais quand l'utilisateur tape *tar (etc), il tape ça où ?

Ne serait-ce pas dans un champ par hasard ?

Bon Dév
Posté le 08 décembre 2005 - 10:58
ah ben oui, j'avais pas penser à ça
et je mets une lettre d'appel pour ce champ
merci
Posté le 08 décembre 2005 - 11:53
Bonjour,

Dans une de mes fenêtre j'ai une table qui affiche une liste de client.

Au dessus de cet liste j'ai un champ de saisie qui me permet de faire une recherche sur le nom du client.

dans le code "A chaque modification" de ce champ j'execute ce code :


resCherche est un entier
TableSelectMoins(TableClient)
resCherche = TableCherche(TableClient.Nom,vNomRecherche,Faux)
TableSelectPlus(TableClient,resCherche)

Ce code permet de sélectionner la ligne don le nom du client commence par ce qui est saisie.

Je ne sais pas si ca répondra exactement à ce que tu cherche a faire !



J'ai dans une autre fenêtre une liste qui est lier à différentes requête dons une qui est une requête de sélection avec comme paramêtre un contient.

dans le champ de saisie pour la recherche je regarde si ca commence par le caractère @ et si oui j'execute la requete avec en paramètre ce qui suis le @ et je rafraichi la liste !

Dans le code à chaque modification du champ de recherche :

SI arob = "@" ALORS
rech = Milieu(vNomRecherche,2)
HExécuteRequête(ReqRechContient,hRequêteDéfaut,rech)
FichierVersTableMémoire(vListeCFP,ReqRechContientCFP)
sinon
//traitement
Fin
Posté le 09 décembre 2005 - 10:46
bonjour,
si la recherche s'effectue sur une table, pourquoi ne pas utiliser la Loupe de la colonne pour effectuer la recherche, et après sélectionner la ligne et donc avoir le client avec tableselect...

Bon dev.
Posté le 09 décembre 2005 - 13:45
Bonjour,

Si votre table est basée sur une requête avec paramètre, le caractère
générique " % " frappé par l'utilisateur exécute un "LIKE" sur le paramètre
saisi, sans autre manipulation : " %tart " => toutes les occurences
contenant la chaine, y compris "SA Tartes".

Pour laisser à l'utilisateur le temps de taper le texte rechercher, ajouter
un timer.

Par exemple :

GLOBALE
sZoneRecherche est une chaine

Dans le champ de saisie "ChampRech_Fournisseur" :

==== A chaque modification de ChampRech_Fournisseur =====
sZoneRecherche = ChampRech_Fournisseur
// Si vous préférez le caractère "*" au lieu de "%" pour l'utilisateur
Remplace(sZoneRecherche,"*","%")
Timer(pProcedureExecuteRequete,100,101)

----------------
PROCEDURE pProcedureExecuteRequete
FinTimer(101)
// ... puis exécution de la requete ... et Re-affichage de la table

J'utilise cette méthode dans toutes mes tables multicritères et cela
fonctionne bien.

Cordialement.


"AnneT" <atcamus@mordacq.com> a écrit dans le message de
news:4397e88e@news.pcsoft.fr...


Bonjour,

J'ai une fenêtre avec une table représentant la liste de fournisseurs.
J'aimerais que lorsque l'utilisateur arrive sur cette fenêtre, pour qu'il

puisse rechercher un fournisseur, tape * sur son clavier puis commence à
taper un nom.
> * permettrai d'annoncer le début d'une recherche; et au fur et à mesure
qu'il tape une lettre, une ligne du tableau est sélectionnée en fonction de
ce qu'il a tapé.

si l'utilisateur a tapé *tart et qu'il ya un fournisseur "SA tartes",

celui doit être sélectionné

est il possible de faire ça?
dans quel traitement et quel code pour récupérer ce que l'utilisateur a

saisi?

merci