Importation des données dans mon combobox

Résolu
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 12 avril 2013 à 10:26
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015 - 15 avril 2013 à 12:55
Salut!

J'ai deux combobox (cbxType et cbxProd). J'ai dans le cbxType trois items que j'ai inseré: lundi, mardi, mercredi. Je voudrai bien que lors d'un clique sur un de ces items que le cbxProd affiche les données dudit item choisi dans cbxType. Mais ça devra venir de la colonne cbxProd de la table Firme.
Voici ce que j'ai fait:

cbxProd.Items.Clear;
case cbxType.ItemIndex of
0: begin
cbxProd.Clear;
Firme.Filter:='Type=' +quotedstr(cbxType.Text);
Firme.Filtered:= true;
cbxProd.Items.Add(FieldByName('prod').asstring;


Developper est une dimension pour moi.
Leader2000

3 réponses

Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
12 avril 2013 à 10:56
J'ai essayé ceci mais ça ne marche toujours pas.

cbxProd.Items.Clear;
case cbxType.ItemIndex of
0: begin
cbxProd.Clear;
Firme.Filter:='Type=' +quotedstr(cbxType.Text);
Firme.Filtered:= true;

try
while not Name_set_anex.Eof do
begin
cbxProd.Items.Add(Firme.FieldByName('prod').asstring);
cbxProd.Next;
end;
finally
firme.EnableControls;


Developper est une dimension pour moi.
Leader2000
3
solilog Messages postés 273 Date d'inscription samedi 13 juin 2009 Statut Membre Dernière intervention 18 avril 2015 10
12 avril 2013 à 20:52
Bonsoir,
tu devrais essayer qq'chose comme çà:

Chez moi cbxType contient 1, 2, 3, ...
J'ai une table avec les champs RapId, RapLi, Libel
Je charge cbxProd avec le champ Libel filtre sur RapId
Le champ "RapId" est integer chez moi, mais avec tes quotesstr tu devrais t'en sortir.
Dans la procedure click de ton cbxType:

procedure TForm1.cbxTypeClick(Sender: TObject);
var vFilter:string;
begin
cbxProd.clear;
vFilter := 'RapId=' + cbxType.text; // chez toi quotedstr ...
table2.filter := vFilter;
table2.filtered := true;
table2.first;
while not table2.eof do
begin
cbxProd.items.add( table2.fieldbyname('Libl').asstring);
table2.next;
end;
end;
Avec ma table, çà marche. Mais c'est vraiment pas top, il y a bien mieux à faire, commence à utiliser les dbLookupCombobox directement sur le datasource de ta table.

Salut
solilog
3
Leader2000 Messages postés 187 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 28 août 2015
15 avril 2013 à 12:55
Merci @solilog.

Curieusement, j'ai ces mêmes codes que j'ai mis dans un Tbutton. ça marché quand. Je n'ai pas essayé le tien. Mais en lisant tes codes ça marcherait bien.

Code Delphi :
cbxProd.Items.Clear;
case cbxType.ItemIndex of
0: begin
cbxProd.Clear;
Firme.Filter:='Type=' +quotedstr(cbxType.Text);
Firme.Filtered:= true;

try
while not Name_set_anex.Eof do
begin
cbxProd.Items.Add(Firme.FieldByName('prod').asstring);
cbxProd.Next;
end;
finally
firme.EnableControls;


Developper est une dimension pour moi.
Leader2000
0
Rejoignez-nous