![]() |
Datenbank: MSQL • Version: 2000^ • Zugriff über: ADO
DBLookupCombobox
Hallo,
in einer DBLookupCombobox zeige ich sortierte (string)Daten einer Tabelle an. Sobald bei aufgeklappter Box eine Taste geklickt wird, wird zum ersten übereinstimmenden Datensatz gesprungen. Soweit so gut. Jetzt ist es so, das die Daten der betroffenen Tabelle immer mit 3 konstanten führenden Zeichen beginnen, sodas immer erst ab dem 4. eingegeben Zeichen eine wirkliche Selektion stattfinden kann. Bsp: '22XMueller' '22XHuber' '22XSchmit', usw. Habe ich eine Möglichkeit die Filterfunktion so zu verändern, dass zur Filterung erst mit der Eigabe des 4.Zeichen begonnen werden kann, also nicht erst '22XM' sondern gleich 'M' eingegeben werden kann um den mit 'M' beginnenden Datensatz zu selektieren. Jemand ne Idee? Danke |
AW: DBLookupCombobox
Ja, entferne die führenden gleichen Stellen ;)
|
AW: DBLookupCombobox
Nun ja, wenn ich im Listfield die im select um 3 Stellen gekürzten Strings anzeige ist doch aber mein Ergebnis auch um 3 Stellen gekürzt.
|
AW: DBLookupCombobox
Zitat:
|
AW: DBLookupCombobox
Du kannst dich in den KeyPress-Events der ComboBox einklinken und die interne Suchfunktion austricksen:
Delphi-Quellcode:
type
TDBLookupControlHelper = class helper for TDBLookupControl public procedure CheckSearchPrefix(const Prefix: string); end; procedure TDBLookupControlHelper.CheckSearchPrefix(const Prefix: string); var Ch: Char; begin if Length(SearchText) < Length(Prefix) then begin SearchText := ''; for Ch in Prefix do ProcessSearchKey(Ch); end; end; procedure TForm181.DBLookupComboBox1KeyPress(Sender: TObject; var Key: Char); begin DBLookupComboBox1.CheckSearchPrefix('22X'); end; |
AW: DBLookupCombobox
@Uwe
Auch wenn die Funktionalität spannend ist, aber würdest du tatsächlich dem User Daten präsentieren, wo die ersten 3 Stellen als "eher störend" empfunden werden, aber für nichts anderes gut, als zur Anzeige, sind? Evtl. liegt hier sogar noch ein Design Fehler der Datenbank vor. Ich wäre am Präsentationstag auf jeden Fall im gelben Urlaub :stupid: PS: Sollten diese 3 Stellen (eigentlich sollen die ja alle gleich sein) tatsächlich benötigt werden, dann würden bei mir die Einträge (in der Anzeige) so aussehen
Code:
Mueller (22X)
Huber (22X) Schmit (22X) |
AW: DBLookupCombobox
Zitat:
Man könnte sich auch eine Abfrage vorstellen, bei der genau dieses Präfix als Einschränkung gilt. Dann macht es schon Sinn, in so einer Combobox dieses Präfix auch immer voranzustellen. Es muss ja nicht immer eine Konstante sein, wie in dem originalen Beispiel. Dann sind die ersten Zeichen schon relevant und können nicht unbedingt weggelassen werden. Es kommt eben immer auf den konkreten Fall an. |
AW: DBLookupCombobox
@Uwe hier werden diese Daten auch nicht als "eher störend" wahrgenommen, weil diese auch zusammengehören.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz