![]() |
Frage zu einer DB Komponente
Morgen liebe Delphianer
Habe mich nun auch mal in der Delphi-Praxis angemeldet weil ich bei meinem Projekt festhänge und mir die sonstigen Einträge im Forum leider keine Infos geben. Ich programmierer gerade ein Programm zur Bugerkennung zum Auslesen der Fehler. Auf der linken Seite besitze ich eine DBLookuplist Komponente, wo ich neue Datensätze mit einem DBNavigator hinzufügen oder wieder entfernen kann, wo verschiedene Versionen von den Bugs aufgelistet werden. Nun sollte bei einem Klick auf eine Version, die in der DBLookuplist Komponente steht mir in anderen DBEdit-Feldern die restlichen Informationen liefern. Da liegt aber jetzt das Problem und zwar wenn ich auf einen Eintrag in der DBLookuplist Komponente klicke wird mir aber nichts angezeigt. Anders wie bei einer ganz normalen DBListbox. Nun zu meiner Frage: Gibt es eine Property für die DBLookuplist Komponente oder andere Möglichkeiten, sodass man durch einen Klick die Infos angezeigt bekommt oder geht das einfach bei dieser Komponente nicht? Danke für eure Mühe schonmal. MFG euer Baly |
Re: Frage zu einer DB Komponente
Die LookupListe ist fast wie eine normale Liste. Bei der Lookupliste kannst Du halt die auswählbaren Items aus einer Tabelle holen. Das ausgewählte Item wird dann in den aktuellen Satz gespeichert. Damit wirst Du eigentlich eher nicht den Datensatzzeiger bewegen. Etwas Eigeneinsatz muss da schon kommen, im OnChange zum Beispiel. Da kannst Du dann ein Locate mit dem ausgewählten Item machen.
Sherlock |
Re: Frage zu einer DB Komponente
Eine DBLookupList hat 2 Datenmengen, eine als Quelle und eine als Ziel
BTW. Ich werde den Beitrag in den Bereich Datenbanken verschieben. Dann kannst du dort durch Editieren des 1. Beitrages weitere Informationen zum verwendeten DBMS usw. ergänzen |
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Sonstige Fragen zu Delphi" nach "Datenbanken" verschoben.
Geht um Datenbanken |
Re: Frage zu einer DB Komponente
Es müsste doch auch so klappen oder nicht?
Delphi-Quellcode:
Hier spuckt der Compiler dann eine Exception der Klasse EInvalidOperation raus:
procedure TForm1.DBLookupList1Click(Sender: TObject);
begin DBStatusProgrammierer.DataSource := DataSource1; DBStatusProgrammierer.DataField := 'Status Pro.'; DBPrioritaetProgrammierer.DataSource := DataSource1; DBPrioritaetProgrammierer.DataField := 'Priorität Pro.'; DBAnmerkungenProgrammierer.DataSource := DataSource1; DBAnmerkungenProgrammierer.DataField := 'Anmerkungen Pro.'; DBLookupList1.DataSource := DataSource1; DBLookupList1.DataField := 'Versionen'; end; "Kann doppelte Datasource und LookupSource nicht benutzten" |
Re: Frage zu einer DB Komponente
Die Zuweisung der DataSourcen muss vorher gemacht werden
ListSource und DataSource müssen verschieden sein |
Re: Frage zu einer DB Komponente
Wie meinst du des das die Zuweisung der DataSourcen vorher gemacht werden muss? Und woher bekommt man Listsource? Per Property?
|
Re: Frage zu einer DB Komponente
Liste der Anhänge anzeigen (Anzahl: 1)
Man legt die im OI fest
|
Re: Frage zu einer DB Komponente
Ok du hast jetzt DBLookuplistBox gemeint. Ich benutze nur eine DBLookuplist. Sollte ich lieber eine DBLookuplistBox verwenden?
|
Re: Frage zu einer DB Komponente
Die entsprechenden Eigenschaften sollten identisch sein
|
Re: Frage zu einer DB Komponente
Und wie sollen die veschieden sein? Soll ich da noch eine weitere Datasource Komponente einfügen? Sonst kann ich ja sonst datasource nichts zuweissen
|
Re: Frage zu einer DB Komponente
Moin liebe dp´ler
habe mal alles mögliche rumprobiert... Ich komme einfach nicht darauf wie ich durch einen Klick es anzeigen lasse.
Delphi-Quellcode:
Müsste aber schon die richtige richtung einschlagen oder seh ich das falsch :gruebel: ?
procedure TForm1.DBLookupList1Click(Sender: TObject);
begin DBBugnummer.DataSource := DataSource1; DBBugnummer.DataField := 'Bugnummer'; DBDatum.DataSource := DataSource1; DBDatum.DataField := 'Datum/Uhrzeit'; DBTester.DataSource := DataSource1; DBTester.DataField := 'Tester'; DBMailTester.DataSource := DataSource1; DBMailTester.DataField := 'E-Mail Tester'; DBStatusTester.DataSource := DataSource1; DBStatusTester.DataField := 'Status Tester'; DBPrioritaetTester.DataSource := DataSource1; DBPrioritaetTester.DataField := 'Priorität Tester'; DBAnmerkungenTester.DataSource := DataSource1; DBAnmerkungenTester.DataField := 'Anmerkungen Tester'; DBFehlermeldung.DataSource := DataSource1; DBFehlermeldung.DataField := 'Fehlermeldung'; DBFehlerangaben.DataSource := DataSource1; DBFehlerangaben.DataField := 'Fehlerangaben'; DBProgrammierer.DataSource := DataSource1; DBProgrammierer.DataField := 'Programmierer'; DBMailProgrammierer.DataSource := DataSource1; DBMailProgrammierer.DataField := 'E-Mail Pro.'; DBStatusProgrammierer.DataSource := DataSource1; DBStatusProgrammierer.DataField := 'Status Pro.'; DBPrioritaetProgrammierer.DataSource := DataSource1; DBPrioritaetProgrammierer.DataField := 'Priorität Pro.'; DBAnmerkungenProgrammierer.DataSource := DataSource1; DBAnmerkungenProgrammierer.DataField := 'Anmerkungen Pro.'; DBLookupList1.LookupSource := DataSource1; DBLookupList1.LookupField := 'Versionen'; Table1.Locate('ID', DBLookupList1.FieldCount + 1 , []); end; mfg Baly |
Re: Frage zu einer DB Komponente
Ich kann mir nicht helfen, aber alleine vom hinsehen erscheint mir das nicht richtig. Vielleicht erklärst Du nochmal (in einfacheren Worten, ohne Benennung konkreter Komponenten) was Du eigentlich willst. :gruebel:
Sherlock |
Re: Frage zu einer DB Komponente
Ich will das wenn ich auf einen Eintrag in der Liste klicke, mir die Daten in anderen Feldern angezeigt werden sollen. Bis jetzt klappt das ja nicht, mir wird kein Eintrag in den anderen Feldern (DB-Edits) angezeigt wenn ich auf einen Eintrag in der Liste (DBLookuplist) klicke.
Hoffe es war soweit verständlich |
Re: Frage zu einer DB Komponente
OK, dann würde ich das eher so machen, daß die Liste als DBGrid angezeigt wird. Wenn Du dort eine Zeiel anklickst, wird der Satzzeiger des DataSets entsprechend dorthin bewegt, die Details sollten dann automatisch entsprechend gefüllt werden.
Sherlock |
Re: Frage zu einer DB Komponente
Oh man tausend dank dir Sherlock :-D .
Wie ich einfach mir zu viele Gedanken gemacht habe und mit einer DBGrid alles wunderbar klappt. Danke nochmal MFG Baly |
Re: Frage zu einer DB Komponente
Eine LookupList dient dazu, für das dementsprechende Feld (DataSource, DataField) nur eine feste Anzahl an Werten zu erlauben, bzw vorzuschlagen (LookupSource, LookupField).
Beispiel: du willst einen neuen Bug eintragen, welchen du als harmlos, normal oder kritisch einstufen kannst. Dann würde sich eine LookupList anbieten, in welcher du die unterschiedlichen Stati vordefinierst und aus diesen für das Feld Bugstatus auswählen kannst. Wenn du hier im Forum unter Profil die Delphi Version auswählst, mit der du arbeitest ist das im Grunde auch eine LookupList (genau genommen eine LookupCombobox). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 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