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

Bases de données Delphi Discussion :

Filtre sur plusieurs colonnes dbgrid


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut Filtre sur plusieurs colonnes dbgrid
    Salut à tous, j'ai toujours aimer ce forum parce que en y trouve toujours son bonheur, voila j'utilise delphi 2010 Base de donnée ORACLE est je voudrais mettre un filtre sur plusieurs colonnes de mon DBGrid suivant 09 Tedit à saisir. J'ai réussi à faire un programme qui marche mais je le trouve compliquer et hasardeux, pour terminer je voudrais que les filtres marche tous en même temps quand je mets le premier lettre dans chaque Tedit, voici mon code + un image de ma conception du programme de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    procedure Tform1.Tri_DbGrid(Sender : TObject);
    Begin
      if (Edit3.Text<>'') And (Edit4.Text='') And (Edit5.Text='') And (Edit6.Text='') And (Edit7.Text='') And (Edit8.Text='') And (Edit9.Text='') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'BASE like' + QuotedStr(Edit3.Text+'%');
          OraQuery1.Filtered := True;
        end
        Else
         if Edit3.Text='' then OraQuery1.Filtered := False;
     
      if (Edit3.Text='') And (Edit4.Text<>'') And (Edit5.Text='') And (Edit6.Text='') And (Edit7.Text='') And (Edit8.Text='') And (Edit9.Text='') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'No_Assure like' + QuotedStr('%'+Edit4.Text+'%');
          OraQuery1.Filtered := True;
        end;
     
      if (Edit3.Text='') And (Edit4.Text='') And (Edit5.Text<>'') And (Edit6.Text='') And (Edit7.Text='') And (Edit8.Text='') And (Edit9.Text='') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'Nom like' + QuotedStr(Edit5.Text+'%');
          OraQuery1.Filtered := True;
        end;
     
      if (Edit3.Text='') And (Edit4.Text='') And (Edit5.Text='') And (Edit6.Text<>'') And (Edit7.Text='') And (Edit8.Text='') And (Edit9.Text='') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'Prenom like' + QuotedStr(Edit6.Text+'%');
          OraQuery1.Filtered := True;
        end;
     
      if (Edit3.Text='') And (Edit4.Text='') And (Edit5.Text='') And (Edit6.Text='') And (Edit7.Text<>'') And (Edit8.Text='') And (Edit9.Text='') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'Naissance like' + QuotedStr('%'+Edit7.Text+'%');
          OraQuery1.Filtered := True;
        end;
     
      if (Edit3.Text='') And (Edit4.Text='') And (Edit5.Text='') And (Edit6.Text='') And (Edit7.Text='') And (Edit8.Text<>'') And (Edit9.Text='') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'CodCentre like' + QuotedStr('%'+Edit8.Text+'%');
          OraQuery1.Filtered := True;
        end;
     
      if (Edit3.Text='') And (Edit4.Text='') And (Edit5.Text='') And (Edit6.Text='') And (Edit7.Text='') And (Edit8.Text='') And (Edit9.Text<>'') Then
        begin
    //      OraQuery1.Close;
    //      OraQuery1.Open;
          OraQuery1.Filtered := False;
          OraQuery1.Filter := 'SP like' + QuotedStr('%'+Edit9.Text+'%');
          OraQuery1.Filtered := True;
        end;end;
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je verrai un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    var
      MonFiltre : String;
    begin
     OraQuery1.Filtered := False;
     MonFiltre  := '';
     if (trim(Edit3.Text)<>'') Then
        begin
          MonFiltre := 'BASE like' + QuotedStr(Edit3.Text+'%');
        end;
     
      if (Trim(Edit4.Text)<>'') Then
        begin
          if Trim(Monfiltre) <> '' then
            MonFiltre := Monfiltre + ' and ';
         MonFiltre  :=  MonFiltre  + 'No_Assure like' + QuotedStr('%'+Edit4.Text+'%');
        end;
     
    // etc ... (Je n'ai fait que les premiers pour l'exemple
     
      If trim(MonFiltre) <> '' then
      begin
         OraQuery1.Filter := MonFiltre;
         OraQuery1.Filtered := True;
      end;
    end;

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2010
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 192
    Points : 71
    Points
    71
    Par défaut Filtre sur plusieurs colonnes dbgrid
    Merci Rayek ça marche nikel

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

Discussions similaires

  1. [XL-2010] Filtre sur plusieurs colonnes / filtre impossible si cellule vide !!!
    Par le-guedin dans le forum Macros et VBA Excel
    Réponses: 41
    Dernier message: 15/02/2013, 10h29
  2. Filtres sur plusieurs colonnes avec OU
    Par JackIsJack dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/05/2011, 16h40
  3. Filtre sur plusieurs colonnes
    Par bellenthan dans le forum Excel
    Réponses: 2
    Dernier message: 10/12/2010, 10h57
  4. Filtre sur plusieurs colonnes
    Par psyskasax dans le forum Modélisation
    Réponses: 9
    Dernier message: 10/03/2009, 11h31
  5. filtre sur plusieurs colonnes en vba
    Par caloumaya dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/05/2007, 14h05

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