Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche multicritère

14 réponses
Avatar
Windevboy
Bonjour,

J'aimerai faire une recherche multicritère sur une table avec 3 combo donc je devrai utiliser 3 requête différente pour que toutes les combinaisons soit possible? Si je veux utiliser simplement les données du combo 2 ou 3 sans remplir les autres c'est possible? Avez vous des exemples?

Merci de l'aide

10 réponses

1 2
Avatar
Romain PETIT
Il se trouve que Windevboy a formulé :
Bonjour,

Bonjour,
J'aimerai faire une recherche multicritère sur une table avec 3 combo donc je
devrai utiliser 3 requête différente pour que toutes les combinaisons soit
possible? Si je veux utiliser simplement les données du combo 2 ou 3 sans
remplir les autres c'est possible? Avez vous des exemples?
Merci de l'aide

J'imagine que tu as lié des requetes intégrées à ta table ?
A moins avis le plus simple :
- supprimer les requetes liées
- décrire une requete dans une procédure (code SQL, HexecuterequeteSQL
puis parcours de la requete pour afficher la table)
Tu pourras alors construit le code SQL en fonction des combos
sélectionnées et/ou celles sans sélection
A+
--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
windevboy
Le lundi 18 Novembre 2019 à 09:15 par Windevboy :
Bonjour,
J'aimerai faire une recherche multicritère sur une table avec 3 combo
donc je devrai utiliser 3 requête différente pour que toutes les
combinaisons soit possible? Si je veux utiliser simplement les données
du combo 2 ou 3 sans remplir les autres c'est possible? Avez vous des
exemples?
Merci de l'aide
Merci de ta réponse Romain.
En fait c'est une liste de document qui affiche tous les documents présent dans la base grâce à une requête.
Sur toute cette liste je voulais pouvoir les filtrer selon les 3 combo que j'utilise en recherche (Marque du produit, Modèle du produit et produit) dans le but d'afficher les documents selon la recherche que je veux.
Par exemple les documents selon la marque du produit simplement ou simplement d'un modèle.
Un autre exemple, la liste des documents présent pour la marque + le modèle d'un produit.
J'arrive à avoir des résultats si j'en utilise un simplement mais j'ai du mal quand je dois associer plusieurs combo ou qu'un combo est vide.
Merci pour ta réponse en tout cas
Avatar
windevboy
Le lundi 18 Novembre 2019 à 09:15 par Windevboy :
Bonjour,
J'aimerai faire une recherche multicritère sur une table avec 3 combo
donc je devrai utiliser 3 requête différente pour que toutes les
combinaisons soit possible? Si je veux utiliser simplement les données
du combo 2 ou 3 sans remplir les autres c'est possible? Avez vous des
exemples?
Merci de l'aide
Je vais tester avec une requête SQL en intégrant les 3 combo dans la requête avec le Null de coché si un combo est vide
Avatar
Romain PETIT
windevboy a formulé ce lundi :
J'arrive à avoir des résultats si j'en utilise un simplement mais j'ai du mal
quand je dois associer plusieurs combo ou qu'un combo est vide.

C'est pas bien compliqué, il suffit d'ajouter un filtre/condition et de
gérer les AND
Par exemple :
sCodeSQL est une chaine
sCodeSQLCondition est une chaine
sCodeSQL = "SELECT * FROM MONFICHIER"+rc
SI combo1>0 ALORS
sCodeSQLCondition = "WHERE MONFICHIER.RUB1 = "+combo1..valeur
FIN
SI combo2>0 ALORS
SI sCodeSQLCondition~="" ALORS
sCodeSQLCondition+="WHERE "
SINON
sCodeSQLCondition+=" AND "
FIN
sCodeSQLCondition+=" MONFICHIER.RUB2 = "+combo2..valeur
FIN
SI combo3>0 ALORS
SI sCodeSQLCondition~="" ALORS
sCodeSQLCondition+="WHERE "
SINON
sCodeSQLCondition+=" AND "
FIN
sCodeSQLCondition+=" MONFICHIER.RUB3 = "+combo3..valeur
FIN
A améliorer en factorisant un peu tout ça dans une procédure interne ou
locale mais ça pourrrait être quelque chose dans le genre...
A+
--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
windevboy
Le lundi 18 Novembre 2019 à 09:15 par Windevboy :
Bonjour,
J'aimerai faire une recherche multicritère sur une table avec 3 combo
donc je devrai utiliser 3 requête différente pour que toutes les
combinaisons soit possible? Si je veux utiliser simplement les données
du combo 2 ou 3 sans remplir les autres c'est possible? Avez vous des
exemples?
Merci de l'aide
Merci pour ta réponse ça m'aide bien. Je vais tester tout ça.
Merci de ton aide
Avatar
Raminagrobis
Romain PETIT vient de nous annoncer :
windevboy a formulé ce lundi :
J'arrive à avoir des résultats si j'en utilise un simplement mais j'ai du
mal

sCodeSQL est une chaine
sCodeSQLCondition est une chaine
sCodeSQL = "SELECT * FROM MONFICHIER"+rc
SI combo1>0 ALORS
sCodeSQLCondition = "WHERE MONFICHIER.RUB1 = "+combo1..valeur
FIN

Tu as lu la doc de Windev depuis la version 5?
Avatar
Raminagrobis
Le 18/11/2019, Windevboy a supposé :
Bonjour,
J'aimerai faire une recherche multicritère sur une table avec 3 combo donc je
devrai utiliser 3 requête différente pour que toutes les combinaisons soit
possible? Si je veux utiliser simplement les données du combo 2 ou 3 sans
remplir les autres c'est possible? Avez vous des exemples?
Merci de l'aide

Regarde la doc sur les requêtes et leurs paramètres....
Une requête paramétrée dont le paramètre n'est pas passé est
automatiquement contruite pour ignorer les paramètres.
Sinon tu peux faire comme Romain, on faisait ça il y a 15 ans
Avatar
Romain PETIT
Raminagrobis vient de nous annoncer :
Bonjour,
Sinon tu peux faire comme Romain, on faisait ça il y a 15 ans

Je m'adapte à mon interlocuteur qui semble être débutant.
La code SQL écrit, avec des identations et des instructions simples et
claires, ya rien de tel pour apprendre et comprendre ce que l'on fait,
plutôt que de galérer à vouloir remplir des paramètres que l'on ne
comprend pas.
A+
--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Raminagrobis
Romain PETIT a écrit :
Raminagrobis vient de nous annoncer :
Bonjour,
Sinon tu peux faire comme Romain, on faisait ça il y a 15 ans

Je m'adapte à mon interlocuteur qui semble être débutant.
La code SQL écrit, avec des identations et des instructions simples et
claires, ya rien de tel pour apprendre et comprendre ce que l'on fait, plutôt
que de galérer à vouloir remplir des paramètres que l'on ne comprend pas.

Tu plaisantes?
Déjà il y a bien d'autres manières moins ignobles de concaténer des
chains, et RIEN n'est plus simple que les requêtres paramétrées.
C'est une des plus grande forces de Windev
Avatar
Romain PETIT
Raminagrobis a exposé le 19/11/2019 :
Tu plaisantes?

Non
Déjà il y a bien d'autres manières moins ignobles de concaténer des chains,

C'est pas question, je ne fait pas un concours, je montre une méthode
de façon compréhensible.
et RIEN n'est plus simple que les requêtres paramétrées.

Chacun sa façon de voir.
Par expérience je passe moins de temps à maintenir un code clair et
explicite que du code "automatisé" par cases à cocher qui sont buguées
une fois sur deux dans les versions suivantes.
Exemple :
une requete paramétrée sur une table à partir d'une variable globale de
type structure (chaque colonne est affectée à un membre)
Tu changes le nom de ta variable -> tu te retapes toutes les
affectations à la main...
(essaye...)
C'est une des plus grande forces de Windev

Mouais, c'est aussi une grande faiblesse quand ça marche pas.
A+
--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
1 2