![]() |
DbComboBox Wert anders als Auswahlliste
Hallo und schönes Wochenende :mrgreen:
Lässt sich folgendes Problem mit der in Delphi 7 Standardmässigen Klasse TDBComboBox lösen :?: Folgendes Verhalten Möchte ich erreichen: Die Combobox wird an ein Db Feld gebunden und reagiert genau wie ein TDBedit (kein Problem) Die Drop down Liste enthält nur die Beschreibungen der zu auswählenden Datensätze aber nicht die Id, die nachher in die DbCombo übernommen wird :?: zb.( Benutzer legt Adresse an und steht auf dem Feld Plz in der Liste erscheinen nur die Namen der Orte wählt der Benutzer einen Eintrag aus wird nur die Postleitzahl übernommen [das Beispiel diehnt nur zur Veranschaulichung])) Bin gespannt auf Lösungsvorschläge :?: :?: :?: |
Re: DbComboBox Wert anders als Auswahlliste
Die standardmässige TDBCombobox ist dazu zu schwach ausgestattet.
TRxDBcomboBox hat für diesen Zweck die Properties Items[] und Values[]. Du könntest die Items[] mit deinen Beschreibungen befüllen und im OnChange-Event:
Delphi-Quellcode:
procedure .... OnChange(Sender:TObject);
var s : string; begin s := DBcombobox1.Text; DBcombobox1.Text := FindePLZzumOrt(s); end; |
Re: DbComboBox Wert anders als Auswahlliste
:(
Danke für die Schnelle Antwort ich hatte schon so was befürchtet da ich mich einige Zeit erfolglos gespielt habe Da ich das ganze auch mit Spalten realisieren will bastle ich gerade an eine dynamische Listview zur Laufzeit die dann den Job erledigen soll. :coder: :coder: |
Re: DbComboBox Wert anders als Auswahlliste
Seltsam finde ich, dass du nach der DBComboBox fragst, aber die Funktionalität einer DBLookupComboBox beschreibst...
Grüße vom marabu |
Re: DbComboBox Wert anders als Auswahlliste
@marabu
Zitat:
Ich brauche diese Funktion bei einer Anwendung im Industriebereich der Benutzer, (absoluter Feind jeder Maus :mrgreen: ) ordnet ein bestimmtes Unterrecord nur durch eingabe einer einzigen Zahl zu und gibt sehr viele Sätze ein Wenn er jedesMal zur Maus greifen muss oder mit den Keyboard aus sagen wir 20 Einträgen auswählen muss hätte ich ein Problem :wink: :coder2: |
Re: DbComboBox Wert anders als Auswahlliste
Das kann ich nachvollziehen. Allerdings verwende ich in solchen Fällen nicht die mitgelieferten datensensitiven Controls (die ich generell selten verwende), sondern die normalen Gegenstücke, die ich dann an meine Bedürfnisse anpasse.
Freundliche Grüße vom marabu |
Re: DbComboBox Wert anders als Auswahlliste
Liste der Anhänge anzeigen (Anzahl: 1)
:drunken: :gruebel:
so für alle die es interessiert bzw denen es vielleicht helfen könnte habe ich eine imho elegente Lösung für mein Problem gefunden eine dynamisch erstellte TListView wenn der Benutzer auf den Such Button klickt bzw wenn er im DbEdit eine bestimmte Taste drückt Siehe Anhang Sollte jemanden der Code interessieren bitte kurzes Posting :dp: |
Re: DbComboBox Wert anders als Auswahlliste
:wall: :wall: :wall: :wall: :wall:
Bin gerade durch Zufall daraufgekommen wie es wirklich geht eine datenbank gebundene Combobox mit mehreren spalten zu realisieren wo es egal ist welche spalte dann wirklich in das Hauptdataset der DB zurückgespeichert wird als Id sozusagen. da ich diese informationen nirgends in der DP gefunden habe obwohl ich wirklich lange gesucht hab möchte ich meine erkenntnisse gerne hier zur verfügung stellen Folgende eigenschaften bei der Combobox setzen:
Delphi-Quellcode:
Anschliessend noch mit der Eigenschaft Listfieldindex die spalte einstellen nach der man durch drüberschreiben auswählen will bzw die im editbereich der combobox angezeigt werden soll.
with DBLookupComboBox1 do
begin DataSource := DataSource1; // -> AdoTable1 -> DBGrid1 ListSource := DataSource2; DataField := 'AuthorEmail'; // from AdoTable1 KeyField := 'Email'; ListFields := 'Name; Email'; // Wenn man mehrere Spalten möchte einfach in den Listfields mit // Strichpunkt die dbFelder trennen (so einfach kanns gehen) end; DataSource2.DataSet := AdoQuery1; AdoQuery1.Connection := AdoConnection1; AdoQuery1.SQL.Text := 'SELECT Name, Email FROM Authors'; AdoQuery1.Open; :chat: :chat: :chat: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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