Ich verliere zuvor ausgewählte Lookupdata nach dem Filtern eines Datasets, das mit der Spalte in CxGrid vom Typ DBlookupcombox verbunden ist. finden Sie unten die Details.Löschen zuvor ausgewählter Daten nach Filtern eines Datasets in CxGrid
Wir haben eine cxGrid mit Säulen
ID | Name | Place
1 | abc | Place1
2 | xyz | Place5
3 | lmn |
4 | opq |
5 | rst |
and another table Client
ClientID | Name
1 | abc
2 | xyz
3 | lmn
4 | opq
5 | rst
In database, there is a table PlaceMapping
PlaceMappingID| ClientID | Place
1 | 1 | Place1
2 | 1 | Place2
3 | 2 | Place1
4 | 2 | Place5
5 | 2 | Place6
Basierend auf der ID wir den „Place“ von Tisch PlaceMapping sind holen, die vom Typ DBLookupComboBox ist (unter Eigenschaften von cxgrid haben wir diese Option).
Wir haben den Filter für das Ereignis "GetPropertiesForEdit" der CxGrid-Spalte Place hinzugefügt. Die Place-Lookup-Combobox erhält die korrekten Werte , die angezeigt werden sollen, nachdem der Benutzer ein Element auswählt und den Fokus von dem ausgewählten Element ändert. Es geht leer.
Ich hatte versucht, den Filter für Place-Spalte entfernen, die gut funktioniert, aber es bekommt alle Werte von Orten.
Beispiel: Für die ID "1" erhalten wir eine Lookup-Combobox mit den Werten Place1 und Place2.
Für ID "2" erhalten wir Nachschlagen mit Werten Place1, Place5, Place6.
Jede Hilfe wirklich geschätzt.
"nachdem der Benutzer ein Element auswählt und den Fokus vom ausgewählten Element ändert" Was ist der Status (TDataSetState) des cxGrid-Datasets, wenn diese Fokusänderung auftritt? Wie auch immer, ich denke, dass q ein MCVE benötigt (siehe StackOverflow/Help/mcve). – MartynA
@MartynA Der Datensatz befindet sich im Durchsuchen-Modus. – mano