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 :

filtrage de donnée


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut filtrage de donnée
    bonjour,
    voila une table qui se présente comme suite:

    ref_client
    ref_type_client

    je veux imprimer tout les clients "ref_client" qui ont le meme " ref_type_client"

    j'ai besoin de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par thered Voir le message
    bonjour,
    voila une table qui se présente comme suite:

    ref_client
    ref_type_client

    je veux imprimer tout les clients "ref_client" qui ont le meme " ref_type_client"

    j'ai besoin de votre aide
    Salut;

    la requête ne serait-elle pas comme ça : je veux lister tout les clients qui ont la même référence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Mode SQL
    Select * From taTable
    where ref_type_client =: type_client
    que tu invoque comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Query1.Clear;
    Query1.SQL := 'Select * From taTable ';
    Query1.SQL := Query1.SQL + 'where ref_type_client =: type_client';
    Query1.ParamByName('type_client').Value := EditTypeClient.Text;
    Query1.ExecSQL;
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    merci pour ta réponse;
    je vois que j'ai pas bien posé mon probleme,
    la table client qui contient 100 ref_type_client
    et sous chaque ref_type_client il y a plus de 200 clients
    je veux avoir un listing de tous les client d'une ref_type_client

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    La réponse donnée est presque excellente pourtant
    @justsoft une petite erreur dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('Select * From taTable ');
    Query1.SQL.Add(Query1.SQL + 'where ref_type_client =:type_client);
    Query1.ParamByName('type_client').Value := EditTypeClient.Text;
    Query1.Open; // ou query1.active:=true
    
    maintenant , s'il s'agit d'imprimer , il faudrait peut-être nous préciser quel est le générateur d'état utilisé , voir la version de Delphi

    une bonne Question ouvre souvent la voie a une bonne réponse , une question floue obtient toujours une réponse floue
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    merci encore de votre aide;
    je trouve que c'est un travail pénible de saisir 100 fois la référence pour avoir les listing;
    ce que je veux faire c'est de remplir une listebox avec toutes les ref_type_client; et apres
    a chaque fois que je clic sur une référence j'aurai tous les clients qui appartient a cette référence

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Quel rapport avec l'impression ?
    enfin rien de plus simple pour avoir les différents types , encore un SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT TYPE_CLIENT FROM LATABLE
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    je veux tout d'abord lister les reference des clients sur un liste box; pour cela
    jé mis query(BDE) avec le code sql(select distinct ref_typ_cli from client)
    maintenant comment je vais proceder pour afficher tous ces reference sous listbox

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    pourquoi ne pas mettre un DbCombolistbox ?
    sinon , une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    QueryL.Open;
    Liste.Items.Clear
    While not QueryL.eof do
      begin
       Liste.Items.Add(QueryL.Fieldds[0].asString;
       QueryL.Next;
      end;
    QueryL.Close;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    merci beaucoup a ta réponse; j'ai réussi a remplir cette liste avec les éléments de la table;
    maintenant je veux qu'on je vais clické sur un element de la liste je veux qu'un grid m'affiche tous les clients de cette catégorie;

  10. #10
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    tu n'as qu'à appeler la méthode OnClick de la liste box et tu passe à ton code SQL déjà fournie l'élément sélectionné.

    je pense à quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Procedure DbCombolistboxClick(Sender :TObject)
    begin
      Query1.Close;
      Query1.SQL.Clear;
      Query1.SQL.Add('Select * From taTable ');
      Query1.SQL.Add(Query1.SQL + 'where ref_type_client =:type_client');
      Query1.ParamByName('type_client').Value := CombolistboxClick.Items[eltselectionne];
      Query1.Open; // ou query1.active:=true
    end;
    je ne me souviens plus de comment faire pour avoir "eltselectionne", tu peux consulter la FAQ pour ça ou bien l'aide Delphi.

    En gros l'idée c'est ça
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  11. #11
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    merci pour ta réponse!
    je vais essayer de me débrouiller en attendant d'autre réponses

  12. #12
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    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
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
     Query1->Open();
     ListBox1->Items->Clear();
     while(! Query1->Eof)
     {
      ListBox1->Items->Add(Query1->FieldByName("des_f")->AsString);
      Query1->Next();
     }
     Query1->Close();
    }
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    long i;
     
    for(i=0;i<ListBox1->Count;i++)
     {
      if(ListBox1->Selected[i])
       {
        num=i;
       }
     }
    //Edit1->Text=IntToStr(num);
    Edit2->Text=ListBox1->ItemIndex;
     
    //ListBox1->Items[num];
    Edit1->Text=ListBox1->Items->Strings[num];
    Query2->Active=False;
    Query2->SQL->Clear();
    Query2->SQL->Text="select ref_typ_cli from type_client where des_f="+QuotedStr(Edit1->Text);
    Query2->Active=True;
     
    //Query3->Active=False;
    //Query3->SQL->Clear();
    //Query3->SQL->Text="select * from client where ref_typ_cli=(select ref_typ_cli from type_client where des_f="+QuotedStr(Edit1->Text);
     
    //Query3->SQL->Text=
    //Query3->Active=True;
    maintenant je veux concaténer utliser le resultat de query2 dans query3
    comment le faire !!!

  13. #13
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Re;

    en phrases simples que veux-tu que query3 fasse ?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    je croyais qu'on était sur un forum Delphi Pascal , pas C !

    et une description des tables ne serait pas un luxe , chacun de tes posts amène un lot de surprises

    post1 : imprimer une liste
    ...
    post2 : toujours à priori imprimer mais toujours sans parler du générateur d'etat
    ...
    post3 : une sélection dans une liste box
    ...
    post4 : la list box est remplie , on ne sait par quel méthode , qu'il faut déduire du post5
    ...
    post5 : du C et un nouveau champ 'des_f'

    c'est de l'analyse interactive ton programme ? un peu de rigueur !

    PS . dans un listbox on peut ajouter des objets plutôt que juste des chaine (ce qui éviterait cette query souk)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  15. #15
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    bonjour, merci beaucoup pour vos réponses et je suis vraiment désolé;
    voila ce que je veux réaliser:
    j'ai deux table sql :
    type_client:
    ref_typ_cli
    des_f (la désignation de la fonction du client ex: artisan,libririe....)

    client
    ref_cli
    ref_typ_cli

    je veux imprimer une liste de client en fonction de ref_typ_cli
    alors au début j'ai voulu creer une liste box qui va contenir toute les des_f

    et apres a chaque fois que je sélectionne un element de la liste; j'aurai sur un dbgrid ou sur un etat de sortie tous les clients de cet type

  16. #16
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    l'utilisation d'un DBLookupCombo serait mieux qu'un ListBox

    donc sur la form ,
    un TTable sur la table type_client
    un TDatasource lié a cette Table
    un DBlookupCombo
    propriété LookupSource = le Datasource lié à la table type_client
    LookupField = ref_typ_cli
    LookupDisplay = des_f
    un TQuery
    la query serait alors liée à au même Datasource (propriété datasource)
    et de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM CLIENTS WHERE REF_TYP_CLI=:REF_TYP_CLI
    un Dataset sur la Query
    un DbGrid
    ne pas oublier les open des TTable et TQuery et le tour est joué
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  17. #17
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    voila le composant que j'ai trouvé : DBLookupComboBox1
    mais je ne trouve pas les propriétés:
    LookupSource,LookupDisplay

    a la place de LookupField j'ai trouvé Listfield
    es ce que tu peux m'aider encore ?

  18. #18
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    voila ce que c'est de pas donner sa version de Delphi !
    j'ai regardé le propriétés rapidement sur BDS2006

    sous D7 on dira :
    ListSource
    ListField
    et keyField
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  19. #19
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 53
    Points
    53
    Par défaut
    ça marche bien, il me reste maintenant comment récupérer la valeur du field selectionné et l'utiliser sur Query..
    je vais essayer de faire ça tout seul sinon j'espere que tu vas m'aider

  20. #20
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par thered Voir le message
    ça marche bien, il me reste maintenant comment récupérer la valeur du field selectionné et l'utiliser sur Query..
    je vais essayer de faire ça tout seul sinon j'espere que tu vas m'aider
    Re;

    pas très clair ça "le field sélectionné". sinon puisque tu as un code qui marche, poste le et sois clair dans ta demande comme ça on pourra travailler sur du concret.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Filtrage de données avec deux listbox
    Par kinaï dans le forum ASP.NET
    Réponses: 0
    Dernier message: 05/09/2007, 11h13
  2. Réponses: 1
    Dernier message: 05/06/2007, 17h19
  3. Réponses: 3
    Dernier message: 30/03/2007, 09h53
  4. filtrage de données
    Par gil35131 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/10/2006, 18h49
  5. filtrage de données
    Par gil35131 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/10/2006, 11h58

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