![]() |
FireMonkey Problem bei Nachempfinden einer DBLOOKUPCOMBOBOX
Hallo zusammen
Ich habe eben erst mit FireMonkey begonnen, daher sind dies auch meine ersten Versuche mit Bindings zu arbeiten. Grund für den wechsel von VCL zu FMX ist der Glaube meines Chefs, dass dies die Zukunft sein wird und außerdem die Oberflächen schöner aussehen (letzteres stimmt:wink:) Ich stehe nun vor folgendem Problem (bei VCL ist es keines): Ich habe 2 Datasets über Master/Detail miteinander verknüpft. Die Daten habe ich in 2 Stringgrids umgeleitet. Wechsel ich nun im Grid des Masters einen Datensatz, so werden mir die verknüpften DS im Detailgrid angezeigt. So war es im VCL mit den DB-Komponenten ja auch. Jetzt möchte ich aber nicht mit Grids hantieren, sondern lieber ComboBoxen nehmen. Sprich, ich wähle in CB1 einen DS aus und der Inhalt der LookUpData in CB2 aktualisiert sich entsprechend. Ich weiß nur nicht, wie das gehen soll. Ich habe zwar die Eigenschaft Item.Text der Detail-Box mit meinem DB-Feld verknüpft (es werden sogar Daten angezeigt), aber wenn ich mich durch den MasterGrid bewege, ändert sich am Inhalt der Combobox nichts. Wie bekomme ich das aktualisiert? Mein erster Gedanke war, die Synch-Eigenschaft der Box an meine BindingSourceDB zu hängen, aber da hängt sich das Programm beim Versuch einen Master-Datensatz auszuwählen auf. Ich hoffe ihr habt da ein paar gute Hinweise VG Swen |
AW: FireMonkey Problem bei Nachempfinden einer DBLOOKUPCOMBOBOX
Notfalls über den AfterScroll-Event des Master DataSet den Filter auf das Detail DataSet setzen.
|
AW: FireMonkey Problem bei Nachempfinden einer DBLOOKUPCOMBOBOX
Das bringt leider auch nichts. Ich habe die Master-Detail-Beziehung aufgelöst und setze den Filter vorübergehend per Button. Ist SYNCH gebunden, so hängt sich das Programm auf, ist es nicht gebunden, werden die Daten in der ComboBox nicht gefiltert.
|
AW: FireMonkey Problem bei Nachempfinden einer DBLOOKUPCOMBOBOX
Hat wirklich keiner eine Idee, wie ich die Combobox update, wenn sich der Inhalt der Lookup-Datenquelle ändert?:(
|
AW: FireMonkey Problem bei Nachempfinden einer DBLOOKUPCOMBOBOX
Zitat:
Delphi-Quellcode:
War es vielleicht das, was du gesucht hattest? Dann wäre die Frage gewesen: Wie ermittle ich bei einer ComboBox den Index eines bestimmten Eintrags? Das hätte vermutlich jeder sofort verstanden. So aber hast du erstmal keine Antworten erhalten, weil niemand weiß, was genau du willst und nicht jeder so wie ich Zeit und Muse hat, da groß herumzuraten ...
Combo.ItemIndex := Combo.Items.IndexOf('Suchwort');
|
AW: FireMonkey Problem bei Nachempfinden einer DBLOOKUPCOMBOBOX
Hallo Perlsau
ich versuchs nochmal: Ich habe 2 Tabellen, welche über Master-Detail verknüpft sind. Ziel ist es, für eine nachfolgende Funktion Parameter aus diesen beiden Tabellen zu bestimmen. Scrolle ich durch den Master (im Augenblick sind nur die Grids eingebunden), ändern sich logischerweise der Datensatzzeiger der Mastertabelle und der Inhalt der Deatiltabelle. Nun wähle ich in der Detailtabelle einen beliebigen DS aus und starte meine Funktion mit Übergabe des ausgewählten Datenfeldes (subqry.fieldbyname('id').asstring). Da das optisch/platztechnisch nicht der Stein der Weisen ist, möchte ich die Grids durch ComboBoxen ersetzen. Dazu habe ich zuerst eine Combobox für die Subtabelle eingefügt (Grids sind zur Kontrolle der Daten noch da). Binde ich die Combobox an die Tabelle (ohne SYNCH zu binden), so werden nur die DB-Einträge der Subtabelle angezeigt, welche mit dem ersten Datensatz der Mastertabelle verknüpft sind. Bewege ich mich nun durch den Master, so wird zwar das Detailgrid aktualisiert, nicht aber der Inhalt der Combobox. Binde ich SYNCH an die Detailabfrage (weil ich vermute, dass dadurch die Daten aktualisiert werden) und versuche mich anschliessend in der Mastertabelle zu bewegen, so hängt sich das Programm auf. In der VCL (ohne dem Livebinding) funktionierte das alles wunderbar. Habe ich im Master einen neuen DS ausgewählt, so wurde der "lookup" des Detail-DBlookupcombobox automatisch aktualisiert. Ich hoffe, dass mein Problem nun klarer rüber gekommen ist. Gruß Swen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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 by Thomas Breitkreuz