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
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.
que tu invoque comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3// Mode SQL Select * From taTable where ref_type_client =: type_client
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
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
La réponse donnée est presque excellente pourtant
@justsoft une petite erreur dans le code
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
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
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
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
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
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
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
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;
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 :
je ne me souviens plus de comment faire pour avoir "eltselectionne", tu peux consulter la FAQ pour ça ou bien l'aide Delphi.
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;
En gros l'idée c'est ça
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
merci pour ta réponse!
je vais essayer de me débrouiller en attendant d'autre réponses
maintenant je veux concaténer utliser le resultat de query2 dans query3
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;
comment le faire !!!
Re;
en phrases simples que veux-tu que query3 fasse ?
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
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
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
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 :
un Dataset sur la Query
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM CLIENTS WHERE REF_TYP_CLI=:REF_TYP_CLI
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
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 ?
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
ç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
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager