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

Discussion :

Utilisation des filtres dans un système Modèle/Vue

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut Utilisation des filtres dans un système Modèle/Vue
    Bonjour,

    Dans mon application Qt, je dois créer une partie de filtre :

    une tableview affichée et on filtre sur 3 champs

    exemple : nom = ah*
    age> 25
    etc..

    Mon problème est que Model->setFilter (...) écrase l'autre à chaque fois : ne prend en considération que le dernier setFilter or mon besoin et de faire le AND à chaque fois qu'il saisit un critère de filtre.

    Merci pour votre aide, ou dois-je carrément changer et travailler avec QSqlQueryModel ?

  2. #2
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Bonjour,

    je suppose que le model utilisé est un QSqlTableModel.

    La doc dit :

    The filter is a SQL WHERE clause without the keyword WHERE (for example, name='Josephine').
    Donc j'aurais tendance à essayer un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Model->setFilter("nom='ah*' AND age>25");

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut filtre
    Bonjour,

    En fait j'ai pas bien exprimer mon problème. L'application comporte plusieurs critère de filtrage : nom, prénom, age et société...

    Je veux que quand l'utilisateur saisit nom = ah* il cherche tous les noms commençant par ah et s'il saisit société il cherche ...

    C'est pas fixer dès le début les critères de filtres, on a plusieurs champs et il saisit ce qu'il veut et selon les champs saisit on réalise le filtrage (les autres champs seront nuls donc je ne peux pas faire un model.setFilter(.... AND ..... AND...)

    Tu vois ?

    merci pour votre aide

  4. #4
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Citation Envoyé par devqt
    en fait j'ai pas bien exprimer mon problème.
    En fait, j'avais très bien compris

    Je ne comprend pas en quoi, le fait que les filtres ne sont pas fixés à l'avance pose problème.

    Si l'utilisateur ecrit dans un champs de recherche type QLineEdit, tu peux copier le contenu puis l'appliquer à setFilter. Au pire, il faut ajuster la chaine de caractère pour qu'elle soit au bon format.

    Par exemple, l'utilisateur saisie un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom = ah*, age > 25
    Avec la moulinette qui va bien cela se transforme en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom = 'ah*' AND age > 25

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    rebonjour
    c'est encore moi j'ai lu quelques part qu'on peut écrire dans une requête sql "if not null nom = ' " & txtnom.text() & "' ..." je sais si vous avez déjà travailler avec ce genre de requête ????????????

  6. #6
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    et s'il ne précise pas l'age ??? et j'ai déjà fait AND age ????
    c'est ici ou se pose le problème

  7. #7
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Citation Envoyé par devqt Voir le message
    rebonjour
    c'est encore moi j'ai lu quelques part qu'on peut écrire dans une requête sql "if not null nom = ' " & txtnom.text() & "' ..." je sais si vous avez déjà travailler avec ce genre de requête ????????????
    moi, non.

    Citation Envoyé par devqt Voir le message
    et s'il ne précise pas l'age ??? et j'ai déjà fait AND age ????
    c'est ici ou se pose le problème
    C'est à la moulinette d'être intelligente! Donc de ne pas ajouter un critère de filtrage si celui-ci est incomplet ou inexistant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser des filtres dans un data set
    Par pdiaz dans le forum BIRT
    Réponses: 1
    Dernier message: 27/06/2014, 09h51
  2. Réponses: 2
    Dernier message: 17/09/2009, 16h11
  3. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40
  4. Utilisation des nombres dans Winsock2
    Par DeusXL dans le forum MFC
    Réponses: 14
    Dernier message: 01/12/2004, 17h36
  5. [TIBCLientDataSet] Utilisation des Filtres
    Par nico27 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/06/2004, 14h22

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