IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Filtrer des combo sur datatable


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Filtrer des combo sur datatable
    Bonjour

    Avant de faire n'importe quoi je prefere pecher a la foire aux idées pour trouver la meilleure maniere de faire considérant Linq et autre animaux utilisé pour l'acces aux données

    Voici l'idée

    Je place dans une form 4 combos me permettant de faire different choix
    Disons
    Pays
    Region
    Dialecte
    Specialité

    Au chargement je pourrais faire 4 datatables remplissant les 4 combos des valeurs distinct de chaque type

    Puis si je selectionne un Pays (par exemple) je devrais reduire le contenu des autres combo aux valeurs presentes dans le Pays (inutile de proposer le Valais en france)

    Bien sur je peux faire tout ca a coup de select dans la base de donnée avec des tables distincte pour chaque combo

    Mais je me demande s'in n'y a pas une solution plus elegante en utilisant des dataview, des filtres, des bindingsource ,Linq ou que sais-je ?

    Une idée ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Une BindingSource

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ca c'est vite dit fally

    Déja a mon avis ce serait 4 Bindingsource

    Et puis tu ne dis rien sur la mecanique a mettre en oeuvre

    Moi j'aurais dis au pif

    Une datatable
    Quatre DataView
    Et filtrrer chaque DataView en fonction des SelectedValues des autres combo

    Mais bon c'est precisément parce que cette mecanique me semble un peu délicate que je cherche des idées avant de clacher du code dans tous les sens !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    une bindingsource oui. je suppose que toutes les autres tables dépendent de Pays, alors tu effectues un Filter sur le code pays pour charger les autres combo

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Mais non Fally

    C'est bien entendu un exemple

    Un pays a plusieurs region
    Une region a plusieurs dialecte
    Une specialité peut se retrouver dans plusieurs region ou plusieurs pays
    Un dialecte peut se retrouver dans différentes region

    Si tu pense que ca marche, explique moi comment tu veux manipuler ton bindingsource pour faire ca !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  6. #6
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    quand je dis une bindingsource, je veux pas dire "une seule". Bien
    Un pays a plusieurs region
    un filter sur le combo region pour afficher selon le pays choisi
    Une region a plusieurs dialectes
    un filter sur la combo dialecte pour afficher selon la région
    Une specialité peut se retrouver dans plusieurs region ou plusieurs pays
    oui mais il vaut mieux lier une spécialité à une région puisque tu devras filtrer la région selon le pays
    enfin, bref, je pense que tu devais t'en sortir avec une bindingsource et une reorganisation des relations entre tes 4 tables

  7. #7
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    oui mais il vaut mieux lier une spécialité à une région puisque tu devras filtrer la région selon le pays
    Justement NON !

    Je peux tres bien A PRIORI choisir une spécialité :
    "Tapis d'Orient"

    Et boum !
    Me voici en Turquie, en Tunisie, Au Maroc etc.

    En plus ce serait mas mal de faire un distinct sur les filtres !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  8. #8
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Citation Envoyé par olibara Voir le message
    Justement NON !
    Je peux tres bien A PRIORI choisir une spécialité :
    "Tapis d'Orient"
    Et boum !
    Me voici en Turquie, en Tunisie, Au Maroc etc.
    En plus ce serait mas mal de faire un distinct sur les filtres !
    Hum ; tu veux dire quand l'utilisateur choisira "tapis d'Orient" pour la combo spécialité, le prog devra lui afficher "Turquie, Maroc..." dans la combo pays??
    Parce que moi je me disais qu'il doit y avoir un "ordre" de choix des combo

  9. #9
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Et ben non !

    Tout n'est pas toujours simplement hierarchique
    Ici on est vraiment dans une configuration en étoile !!

    Néanmoins je mets une contraint

    Le user selecte un premier combo au choix
    Du coup je filtre les AUTRES en fonction de ce choix
    Il en choisit un autre : je cumule le premier filtre avec le deuxieme

    etc..

    S'il veut revenir en arriere, il fait un reset !


    Je peux faire ca en sql a coup de select distinct where et remplir plusieurs datatables
    Mais je suis convaincu qu'il y a moyern de rendre ca plus élégant !
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  10. #10
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Ok! J'ai fait un truc pareil y'a pas longtemps. J'ai d'abord chargé toutes les données sans critères et lors de la sélection dans une combo, je fais un Filter de ma bindingsource sur la dgv mais dans mon cas, les données affichées venaient d'une table où avaient migré les codes des combo

Discussions similaires

  1. [WD16] Filtrer une combo sur 3 critères
    Par wojc01 dans le forum WinDev
    Réponses: 5
    Dernier message: 24/05/2011, 23h33
  2. Filtrer des données sur un TMAP
    Par smain_inf dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 24/02/2011, 10h02
  3. Comment filtrer des lignes sur la valeur d'une colonne
    Par BerBiX dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/06/2010, 13h46
  4. [PowerShell] Comment filtrer des fichiers sur leur date de création
    Par Gusss dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 04/01/2010, 10h39
  5. Filtrer des données sur un formulaire de recherche
    Par julien.laget dans le forum IHM
    Réponses: 8
    Dernier message: 12/11/2008, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo