Précédent   Forum des professionnels en informatique > Environnements de développement > WinDev
WinDev Forum d'entraide sur la programmation en WinDev
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 17h46   #1
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Par défaut Multi filtrage de la table

Bonjour les Windeveloppeurs,

J'ai une table qui affiche les informations et je voudrais effectuer un multifiltre sur cette table. Donc j'ai une case à cocher qui contient les valeurs de cette table et je voudrais pouvoir filtrer la table en fonction des valeurs que je coche sur ma case à cocher. voici un tableau par exemple :

Code :
1
2
3
4
5
6
7
8
Noms    Age
Eric              18
Calvin            17
Blaise            16
Will              17
Carter            20
Eric              14
Steeve             15
J'ai par la suite une case à cocher avec les valeurs
Je voudrais que si je coche les valeurs 14, 15 et 20 ; la table affiche uniquement des personnes ayant cette age. C'est à dire

Code :
1
2
3
4
Noms     age
Carter            20
Eric              14
Steeve            15
Toutes propositions sont les bienvenues. Merci
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 18h05   #2
Membre chevronné
 
Avatar de wimbish
 
Homme Christophe Vibert
Développeur informatique
Inscription : octobre 2006
Messages : 291
Détails du profil
Informations personnelles :
Nom : Homme Christophe Vibert
Âge : 37
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 291
Points : 630
Points : 630
Bonjour,
Cela dépend de la façon dont tu rempli ta table.
Perso,j'utilise des tables mémoires et j'utilise une fonction InitTable() pour les remplir.
1-Dans ta fonction InitTable(), tu ajoute ou pas les ligne en fonction des valeurs cochées
2- a chaque modification de tes cases à cocher, tu ré affiche ta table avec InitTable()
wimbish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 18h42   #3
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
La table se remplit à l'exécution d'une requête

Code :
1
2
HExecuteRequete()
TableAffiche()
Les informations de la table proviennent d'une requête
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 18h58   #4
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 099
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 099
Points : 1 922
Points : 1 922
Bonjour,
Pourquoi ne pas filtrer les enregistrements directement dans la requête, soit avec une requête paramétrée, soit en construisant directement la requête SQL ?

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 14h21   #5
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Sauf que les requêtes paramétrées ne permettent de ne sélectionner une seule valeur à la fois. C'est à dire soit tu sélectionnes comme age 14 ou 15 ou 20 mais tu ne peux pas faire plusieures sélections dans une seule et même requête. Si je me trompe est ce que tu peux me simuler un exemple de requêtes paramétrées avec plusieurs sélections sur une seule variable de la table ?
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 14h38   #6
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 099
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 099
Points : 1 922
Points : 1 922
Je ne sais pas s'il y a des limites avec les requêtes paramétrées (que je n'utilise pas), mais avec une requête SQL c'est assez simple à faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MaRequete est une chaine
MaCondition est une chaine
MaSource est une source de données
MaRequete = [
Select col1,col2,col3
from MaTable
%1
]

si toto=titi alors
MaCondition = [
where col4 in (%1)
]
Macondition = chaineconstruit(MaCondtion,LaListedeValeurs)
fin

MaRequete = chaineconstruit(MaRequete,Macondition)
hExecuteRequeteSQL(MaSource,MaRequete)
Là je n'ai mis qu'une seule condition, mais c'est pour l'exemple. Je fais un peu la même chsoe dans une application, mais avec plusieurs dizaines de critères...

Tatayo
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 09h29   #7
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Bonjour j'ai essayé mais ca marche pas, mais c'est gentil pour la proposition. Je vais voir ou j'en suis. Je me disais qu'il y 'avait une possibilité de le faire avec un code directement sur le formulaire comme
Code :
1
2
TableActiveFiltre() ou
HFiltre()
Je sais plus. C'est gentil de votre part.
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2012, 21h09   #8
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Personne n'a toujours pas trouvé de solutions pour mon problème pour le multifitrage d'une table?

cdt,
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 08h22   #9
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 099
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 099
Points : 1 922
Points : 1 922
Dis nous déjà ce que tu entends par "ça ne marche pas", car c'est plutôt vague...
Tu as une erreur dans le lancement de la requête ? Elle ne renvoie rien ? Elle renvoie trop de lignes ? Elle ne renvoie pas les bonnes lignes ?

Montre nous aussi ton code, on pourra peut-être te dire ce qui fait que "ça ne marche pas".

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 18h05   #10
Membre chevronné
 
Avatar de wimbish
 
Homme Christophe Vibert
Développeur informatique
Inscription : octobre 2006
Messages : 291
Détails du profil
Informations personnelles :
Nom : Homme Christophe Vibert
Âge : 37
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 291
Points : 630
Points : 630
La Meilleure solution (selon moi) reste le requétage SQL en ajoutant les valeurs dans ta condition de sélection (passe par un HexecuterequêteSql).
Cependant, si tu n'y arrive pas,tu peux simplement remplir ta table avec tout les enregistrements et à chaque modification de tes cases à cocher, parcourir ta table et rendre visible ou invisible les lignes en fonction de ton sélecteur.
wimbish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h08   #11
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Tu as un idée de la commande qui rend invisible les lignes de la table?
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h29   #12
Membre chevronné
 
Avatar de wimbish
 
Homme Christophe Vibert
Développeur informatique
Inscription : octobre 2006
Messages : 291
Détails du profil
Informations personnelles :
Nom : Homme Christophe Vibert
Âge : 37
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 291
Points : 630
Points : 630
C'est une propriété du Champ.
LaTable[indLigne]..Visible = vrai (ou Faux)
wimbish est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h51.


 
 
 
 
Partenaires

Hébergement Web