Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DbComboBox Wert anders als Auswahlliste (https://www.delphipraxis.net/52282-dbcombobox-wert-anders-als-auswahlliste.html)

etom291272 26. Aug 2005 16:27


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

:?: :?: :?:

shmia 26. Aug 2005 17:32

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;

etom291272 26. Aug 2005 17:37

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:

marabu 26. Aug 2005 18:01

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

etom291272 26. Aug 2005 18:08

Re: DbComboBox Wert anders als Auswahlliste
 
@marabu

Zitat:

Seltsam finde ich, dass du nach der DBComboBox fragst, aber die Funktionalität einer DBLookupComboBox beschreibst...
Die DbLookUpcombobox wurde in meinem Beispiel den Ort anzeigen und ich hätte keine Möglichkeit durch schnelles eingeben der id den ort zuzuordnen.
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:

marabu 26. Aug 2005 18:13

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

etom291272 26. Aug 2005 18:54

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:

etom291272 2. Sep 2005 16:42

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:
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;
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.

: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