Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBLookupCombobox oder Combobox oder ganz anders? (https://www.delphipraxis.net/53360-dblookupcombobox-oder-combobox-oder-ganz-anders.html)

Emilio 14. Sep 2005 20:57

Datenbank: DBISAM • Version: 4.17 • Zugriff über: DBISAM

DBLookupCombobox oder Combobox oder ganz anders?
 
Hallo erstmal ...,

über DBLookupCombobox und sonstige Comboboxen ist ja schon ne Menge diskutiert und gechrieben worden, dennoch verschließt sich mir dieses Ding. Ich verwende folgende Komponenten und habe folgendes vor:


DBISAMtable1: Artikel, primkey: ARTID (autoInc) + 3 weitere sek.keys, Datasource 1
DBISAMtable2: Preise, primkey ARTID (Integer), Datasource 2

DBISAMqry1: Abfrage aus 4 Tabellen mit Datsource 3 ( die aus Integer-Salat Text macht und damit eine Preisliste darstellt)

Meine Vorstellung geht dahin, dass ich aus einer DBLookupCombox (welche tatsächlich schon das anzeigt, was sie soll) einen Artikel auswähle und in DBEdit- oder Edit-Feldern (nicht in einem Grid) die Daten des Datensatzes angezeigt werden - kriegs partout nicht hin.
Im Grunde genommen wäre Listsource und DataBinding-Source dieselben - was ja nicht geht (zirkulärer Bezug). Also mache definiere ich table 1 und table 2 eine Master-Detail-Beziehung über das primkey-Feld ARTID. Soweit alles schick, aber die Editfelder bleiben leer.

Hrrgmpf! In den DELPHI-Demos ist ein Beispiel (Demos\DB\MastApp, Order Form], in dem man aus einer DBLookupCombobox einen Wert auswählen kann und sich dann entsprechend dazu die TDBEdit-Felder mit den zugehörigen Daten füllen. Ich glaub ich seh den Wald vor Bäumen nicht - ich kann nicht nachvollziehen wie das gemacht wird.

Würde mich mächtig freuen, wenn mir jemand weiterhelfen könnte oder aber einen passenden Greenhorn-Almanach-Link weist.

VG Emilio

marabu 15. Sep 2005 06:03

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Hallo Emilio,

die DBLookupComboBox ist keine Retrieval-Komponente, sondern dient der Eingabe in Datenbankfelder mit festem Wertebereich, der selbst auch wieder in einer DB-Tabelle gespeichert ist. Wenn du noch weitere datensensitive Komponenten auf deiner Form verstreust, die über eine DataSource mit der Lookup-Tabelle verknüpft sind, dann ändert sich natürlich auch deren Inhalt.

Grüße vom marabu

Emilio 15. Sep 2005 08:28

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Hi marabu,

Danke für Deine Antwort. Ähm, mit Verlaub, Deine Antwort bringt mich nicht weiter. Ich habe auch schon den Verdacht, dass die DBLookupCombobox nicht so ganz die richtige Wahl für mein Vorhaben sein könnte, aber da ich diese (oder eine Verwandte) in zig Anwendungen gesehen habe (wie auch im genannten Beispiel eine TDBLookupCombobox und TDBEditFelder verwendet werden) denke ich, dass sie doch dafür geeignet sein müsste.
Wenn nicht, wie dann machen?
Hinweis: die in den DBEdit-Feldern anzuzeigenden Daten sollen nicht editierbar sein - nur sichtbar. Da die tables 1 und 2 überwiegend Integer-Werte enthalten, macht es meiner Meinung nach Sinn, für die ListSource das genannte qry zu verwenden.

VG Emilio

Sharky 15. Sep 2005 09:07

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Hai Emilio,

eigentlich sollte das gehen. Du hast also ein Query und eine DataSource. Die DataSource ist mit den DBEdits verbunden?
Jetz setzt Du einfach eine DBLookupComboBox auf die Form und trägst bei ListSource deine DataSource ein. Bei Listfield z.B die Artikelnummer und bei KeyField die ArtikelID. Bei DataSource und DataField nichts eintragen. Dann sollte es gehen.

Ich selber verwende allerdings fast keine DBxxxx Komponenten mehr sondern löse das immer mit den "normalen" Komponenten. Ich finde das ist flexiebler ;-)

Emilio 15. Sep 2005 09:33

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Hi sharky,

Danke für Deine Antwort.
Habs gleich mal ausprobiert - hrgmpf! Tut leider nicht. Die CB funktioniert prima, aber die DBEdit-Felder bleiben auf dem ersten Datensatz stehen.
Muss man dem DBEdit-Feld nicht irgendwo oder irgendwie sagen, dass es sich aktualisieren soll?

VG Emilio

marabu 15. Sep 2005 09:36

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Artikel und Preise stehen doch in einer Master-Detail Beziehung - wäre es da nicht sinnvoller diesen Sachverhalt auch nachzustellen (Preise.MasterSource = ArtikelSrc)?

marabu

Sharky 15. Sep 2005 09:39

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hänge mal ein ganz einfaches Demo mit einer Tabelle in der DB an.

Aber wie schon gesagt. Ich mache das immer ohne DBxxxx sachen.

Emilio 15. Sep 2005 09:53

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Hi marabu,

Master-Detail habe ich abgebildet - Ergebnis bleibt das gleiche.

sharky,

Danke ich werds im Laufe des Tages ausprobieren - vielen Dank

VG Emilio

Emilio 15. Sep 2005 10:47

Re: DBLookupCombobox oder Combobox oder ganz anders?
 
Hi allerseits,

Danke sharky, Deine Demo habe ich mit meinen tables und queries gefüllt und ausprobiert - tut prima. Warums in meinem eigenen Entwurf nicht funktioniert hab ich noch nicht raus - der Unterschied ist, dass ich eine DBLookupComboBox von DevExpress verwende (verwendet habe). Ich glaube ich brauche nun nicht mehr an meinem Verstand zweifeln, sondern sollte mal die Supportabteilung von DEVExpress bemühen.

Vielen Dank für Eure Hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz