Autor Beitrag
mr_chrome
Hält's aus hier
Beiträge: 13

WINXP Prof.
Delphi 7 Prof.
BeitragVerfasst: Di 08.06.04 15:29 
Hallo,

kaum hab' ich mich hier angemeldet, kommt ein Problem nach dem anderen :-)
Ich habe eine Tabelle in der verschiedene Produkte gelistet sind und eine andere
Tabelle mit den verschiedenen Herstellern.
In meiner Produkt-Tabelle gibt es ein Feld Hersteller_ID, welches mit dem ID der Hersteller-Tabelle verknüpft ist - soweit auch kein Problem, funktioniert.
In meine Formular möchte ich nun über eine ComboBox die Möglichkeit haben nach
den Herstellern zu filtern. Zu diesem Zweck hab' ich eine DBLookUPComboBox genommen, deren ListSource-Eigenschaft mit meiner Hersteller-Tabelle , ListField mit dem Herstellernamen und KeyField mit dem ID der Hersteller-Tabelle verknüpft ist - funktioniert.
Beim OnClick Ereignis wird String mit folgende SQL-Anweisung generiert:
ausblenden Delphi-Quelltext
1:
myFilterString := 'SELECT * FROM t_produkt WHERE Hersteller_ID = ' + MyFilterLookUpComboBox.KeyValue;					

Diese String wird der SelectSQL Eigenschaft meines DataSets zugewiesen und ausgeführt.
Als Ergebnis erhalte ich genau das was ich will, nämlich, dass nach dem jeweiligen Hersteller gefiltert wird.

Mein Problem ist nun, dass ich als ersten Eintrag in der ComboBox 'Alle Hersteller' stehen haben möchte, um die Where-Klausel aufzuheben, nur möchte ich keinen 'Alle Hersteller' Eintrag in meiner Hersteller-Tabelle haben.
Frage: Kann ich zu meinem Zweck die DBLookUPComboBox verwenden, oder muss ich eine normale ComboBox nehmen und der Eigenschalft 'Items' irgendwie meine Hersteller zuweisen? Zweiteres wäre bestimmt relativ aufwendig??

Ich hoffe ihr könnt einigermaßen nachvollziehen, was ich überhaupt meine :-)

Thomas
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 08.06.04 15:52 
Hallo!

Du hast recht, bei der zweiten Variante wird es aufwändig, weil du dann auch immer die Combobox aktuell halten musst.

Ich habe es über einen Umweg gelöst. Ich habe eine Checkbox "Gefiltert" auf dem Formular, wenn diese Checked ist, wird die LookupCombo freigeschaltet und es wird gefiltert, ist sie nicht "checked", so wird der Filter entfernt und die Combo gesperrt.

Cu,
Udontknow
mr_chrome Threadstarter
Hält's aus hier
Beiträge: 13

WINXP Prof.
Delphi 7 Prof.
BeitragVerfasst: Di 08.06.04 15:58 
Hallo,

danke für die bemerkenswert schnelle Antwort.
Sowas hab' ich mir auch schon überlegt, finde ich zwar nicht so schön, wird aber wahrscheinlich der sinnvollste Weg sein.

Vielen Dank,
Thomas