|
| Iniciado por Stephane B., 19,jul. 2019 19:38 - 22 respuestas |
| |
| | | |
|
| |
Miembro registrado 26 mensajes |
|
| Publicado el 19,julio 2019 - 19:38 |
bonjour
je voudrais faire une recherche sur deux colone dans ma table. je tape ca me sa ne marche pas
TableActiveFiltre(TABLE_Client.COL_Noms, filtreContient, SAI_Recherche) TableAffiche(TABLE_Client ,taDébut)
TableActiveFiltre(TABLE_Client.COL_Prenoms, filtreContient, SAI_Recherche) TableAffiche(TABLE_Client ,taDébut)
ce que je voudrais faire cest un bouton recherche et en meme temps quil cherche dans la colone noms et dans la colone Prenoms
Comment faire.
Merci a vous |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 20,julio 2019 - 06:51 |
Bonjour, Le fait de faire une recherche avec le nom = SAI_Recherche et EN MÊME TEMPS le prénom=SAI_Recherche, n'est peut être pas indiqué. Cela signifie que ton client doit avoir un nom qui est le même que son prénom, et qui doit, qui plus est, correspondre à ton champ SAI_Reherche. Bref tu cherches tout les Clients qui s'appellent Maurice Maurice.
Dans un premier temps, il faudrait créer un deuxième champ de saisie SAI_RecherchePrénom.
Dans un deuxième temps, en alimentant ton champ Table par une requête (REQ_RechercheClient) te simplifierait la vie.
SELECT Client.PK_Client AS PK_Client, Client.NDX_NomClient AS NDX_NomClient, Client.PrenomClient AS PrenomClient FROM Client WHERE Client.NDX_NomClient LIKE %{pNomClient}% AND Client.PrenomClient LIKE %{pPrenomClient}%
Il faut faire attention de bien cocher "Renvoyer Null si vide" dans tes champs de saisie

Le code d'initialisation de ton champ table est le suivant :
MaSource.pNomClient=SAI_RechercheNom MaSource.pPrenomClient=SAI_RecherchePrenom
Celui de ton bouton :
TableAffiche(TABLE_REQ_RechercheClient,taInit)
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,julio 2019 - 08:41 |
Bonjour,
Pour la recherche multi-colonnes, essayez avec l'instruction DANS, à tester...
LaRecherche est une chaîne = "" LaRecherche = SaisieDeLaRecherche
POUR TOUTE LIGNE de TABLE_Client SI LaRecherche DANS (TABLE_Client.COL_Noms, TABLE_Client.COL_Prenoms ALORS Info("Donnée trouvée") SINON Info("Donnée non trouvée") FIN FIN
Alain |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 21,julio 2019 - 10:38 |
Ce qui est ennuyeux c'est qu'à chaque modification du filtre on recharge les données. On peut aussi balayer séquentiellement le lignes et n'afficher que celles correspondant au filtre
pour i = 1 _a_ TABLE_Client..occurence() SI TABLE_Client.COL_Noms[i] = SAI_Recherche OU TABLE_Client.COL_Prenoms[i] = SAI_Recherche ALORS TABLE_Client[i]..Visible= Vrai SINON TABLE_Client[i]..Visible= Faux FIN FIN Mensaje modificado, 21,julio 2019 - 10:40 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 21,julio 2019 - 11:43 |
La requête suffit, il suffit de remplir ton champ table par programmation et supprimer le code d'initialisation.

Code du bouton :
REQ_RechercheClient.pNomClient=SAI_RechercheNom REQ_RechercheClient.pPrenomClient=SAI_RecherchePrenom
HExécuteRequête(REQ_RechercheClient)
POUR TOUT REQ_RechercheClient SI TableCherche(TABLE_REQ_RechercheClient.COL_PK_Employe,REQ_RechercheClient.PK_Client)=-1 ALORS TableAjouteLigne(TABLE_REQ_RechercheClient,REQ_RechercheClient.PK_Client,REQ_RechercheClient.NDX_NomClient,REQ_RechercheClient.PrenomClient) FIN FIN
-- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 21,julio 2019 - 11:51 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 21,julio 2019 - 16:33 |
"La requête suffit, il suffit de remplir ton champ table par programmation "
Personne ne dit le contraire. Par contre on multiplie les accès aux données et, pour ma part, c'est un point que je recherche toujours à limiter. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 21,julio 2019 - 19:32 |
Je suis désole je suis un peux novice dans windev. Mes la je suis perdu j'ai crée une requêtes je pose le code dans le bouton et rien ne marche.... Merci pour votre aide mes les info que vous donne sont pour moi pas assez précise ou mettre les code ETC.
Merci a vous |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 46 mensajes |
|
| Publicado el 21,julio 2019 - 23:16 |
Bonjour, Avec une table remplie à partir d'un fichier direct, ou d'une requête normale "toutes lignes", ou par programmation, et 2 champs de recherche Nom, Prénom, le balayage des lignes se fait en automatique, en fonction du filtre. ça fonctionne normalement. Il suffit de mettre dans :
1- code du champ SAI_RechercheNom, au niveau de la section "A chaque modification"
TableActiveFiltre(TABLE_Client.COL_Noms, filtreContient, MoiMême)
2- code du champ SAI_RecherchePrenom, au niveau de la section "A chaque modification"
TableActiveFiltre(TABLE_Client.COL_Prenoms, filtreContient, MoiMême)
Le bouton "Rechercher", n'est pas nécessaire.Mensaje modificado, 21,julio 2019 - 23:51 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 22,julio 2019 - 06:35 |
oui je d'accord avec vous mes la il me fait deux bouton de recherche.. 1 bouton pour le prenom 2 bouton pour le nom
???? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 22,julio 2019 - 08:13 |
Stephane B. a écrit :
rien ne marche....
Qu'est ce que cela signifie ? Les valeurs retournées ne correspondent pas au résultat souhaité ?, rien ne s'affiche? Stephane B. a écrit :
ou mettre les code ETC.
Tout est détaillé dans le post 2, plus précis, en ce qui concerne l'endroit ou mettre le code, je ne vois pas... Tu as le code d'initialisation de ton champ table, le code du bouton, le code de la requête avec laquelle tu dois alimenter ton champ.
Le code du post 4 te permet de faire des recherches successives
Le fait de "renvoyer null si vide" correspond au joker sous windev. ça te permet de faire une recherche, soit sur le nom, soit sur le prénom. Normalement, l'appui sur ton bouton "Rechercher" sans remplir les champs (post 2) doit afficher tous les tuples de CLIENT dans ton champ table
-- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 22,julio 2019 - 08:19 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 24,julio 2019 - 20:47 |
MICHEL a écrit :
Ce qui est ennuyeux c'est qu'à chaque modification du filtre on recharge les données. On peut aussi balayer séquentiellement le lignes et n'afficher que celles correspondant au filtre
pour i = 1 _a_ TABLE_Client..occurence() SI TABLE_Client.COL_Noms[i] = SAI_Recherche OU TABLE_Client.COL_Prenoms[i] = SAI_Recherche ALORS TABLE_Client[i]..Visible= Vrai SINON TABLE_Client[i]..Visible= Faux FIN FIN
Message modifié, 21 juillet 2019 - 10:40
Bonjour chez moi quand je code ton code dans le bouton Recherche Dans Sorti de SAI_Recherche jai un code erreur occurrence et en rouge
POUR i = 1 A TABLE_Client..Occurrence() SI TABLE_Client.COL_Pseudo[i] = SAI_Recherche OU TABLE_Client.COL_MacAdresse[i] = SAI_Recherche ALORS TABLE_Client[i]..Visible= Vrai SINON TABLE_Client[i]..Visible= Faux FIN FIN Il me dit Occurence Procedure inconu
Help MeMensaje modificado, 24,julio 2019 - 20:48 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 24,julio 2019 - 20:57 |
Alain a écrit :
Bonjour,
Pour la recherche multi-colonnes, essayez avec l'instruction DANS, à tester...
[quote]LaRecherche est une chaîne = "" LaRecherche = SaisieDeLaRecherche
POUR TOUTE LIGNE de TABLE_Client SI LaRecherche DANS (TABLE_Client.COL_Noms, TABLE_Client.COL_Prenoms ALORS Info("Donnée trouvée") SINON Info("Donnée non trouvée") FIN FIN[/quote]
Alain
Merci pour ton code me quand je le colle dans mon bouton recherche Bouton SAI_Recherche dans initialisation de SAI_Recherche Ca ne marche pas
Ma Table pour le noms de Table_CLient Et les deux champ ou je veux faire une recherche en même temps sont Noms et Prénoms..
Merci a vous pour votre aide Juste pour info je sais pas ci c’est important me je suis sur la version 22Mensaje modificado, 24,julio 2019 - 20:58 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 25,julio 2019 - 06:53 |
Voila ma requete :

et voila mon code SQL
SELECT Client.Pseudo AS Pseudo, Client.MacAdresse AS MacAdresse FROM Client WHERE Client.Pseudo LIKE %{pPseudoClient}% OR Client.MacAdresse LIKE %{pMacAdresseClient}%
est que cette procedure est juste Merci a vous |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 25,julio 2019 - 08:28 |
Ça dépend de ce que tu veux obtenir.
Prenons les données suivantes 1-Toto-Maurice 2-Toto-Marcel 3-Titi-Maurice 4-Tata-aMauricea 5-bTotob-Maurice
Avec ta requête, une recherche sur Toto-Maurice te renverra Tous les enregistrements. Ceux qui ont le pseudo "Toto" (1 et 2) et ceux dont l'adresse contient Maurice (1,3 et 4). En effet, ta requête recherche les enregistrement qui contiennent "Toto" ou "Maurice"
Avec un "ET" à la place du "OU", tu auras les enregistrement 1 et 5.
-- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 25,julio 2019 - 08:31 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 25,julio 2019 - 18:37 |
non je garde le OU c’est ça que je veux mes le problème ce la suite c’est mon bouton recherche..

Et le code du champ recherche

Merci a vous pour la suite |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 26,julio 2019 - 13:22 |
J'ai l'impression que tu fais du copier/coller sans vraiment savoir ce que fait le code.
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 26,julio 2019 - 17:49 |
oui je commence avec windev ce ma première application ce que fait je suis arrivée a tous faire sauf cette recherche.
pour le moment j'ai trouvée toute les info sur le net en cherchent des tutos.
J'ai deux problème a réglè celui de la recherche et une histoire de date me je verrais ça plus tard .. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,julio 2019 - 18:02 |
Créer un index fulltext sur les deux rubriques du fichier Créer une requête (triée ou pas) sur cette rubrique FT et avec un paramètre sur cette rubrique fulltext


(Attention à cocher ne pas afficher)
Dans la fenêtre utiliser la requête sur la table : Dans le code de la recherche utiliser comme ceci : MaRequete.pRechercheFT = (Sai_Recherche~="" ? Null SINON Sai_Recherche) // Affiche la table TableAffiche(TABLE_XXX,taRéExécuteRequete) // ici la table est basée sur la requete
Ce mode de fonctionnement permet d'avoir un seul champ de recherche basé sur un index fulltext contenant plusieurs rubriques (texte évidemment) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.361 mensajes |
|
| Publicado el 27,julio 2019 - 10:36 |
Dans un premier temps, je te conseille d'ouvrir le manuel d'autoformation. Tu comprendra pourquoi tu as des erreurs de compilation. Dans un deuxième temps, essaye de comprendre le code que l'on t'a fourni.
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 28,julio 2019 - 19:38 |
Petite précision :
TABLE_Client..occurence() correspond à la version 24 qui permet de gérer des propriétés d'objet Pour les versions antérieures c'est une fonction TableOccurrence(TABLE_Client) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 41 mensajes |
|
| Publicado el 29,julio 2019 - 08:18 |
Bonjour,
Une solution pourrait peut être de créer un champ calculé dans la requête (NomPrénom).
Dans la table, cette colonne reste Invisible et on fait la recherche sur cette colonne.
De mémoire, il y a une LST qui aborde cet exemple.
AUTRE SOLUTION :
Une saisie assistée qui permet de filtrer la table.
Ce ne sont que des idées.
Bonne journée |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 29,julio 2019 - 19:32 |
Gilles GUICHARD a écrit :
Bonjour,
Une solution pourrait peut être de créer un champ calculé dans la requête (NomPrénom).
Dans la table, cette colonne reste Invisible et on fait la recherche sur cette colonne.
De mémoire, il y a une LST qui aborde cet exemple.
AUTRE SOLUTION :
Une saisie assistée qui permet de filtrer la table.
Ce ne sont que des idées.
Bonne journée
merci pour les info vous savez quelle LST en parle ou un lien merci a vous |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 26 mensajes |
|
| Publicado el 30,julio 2019 - 23:37 |
J'ai trouvée la solution a cette adresse :
Merci a vous... |
| |
| |
| | | |
|
| | | | |
| | |
|