Hallo Zusammen,
ich verwende die Datenbankzugrifskomponenten AnyDAC. Auf der Form habe eine
Query mit Join, dessen result in einem TDBAdvGrid angezeigt und editiert werden soll. In AnyDAC ist einstellbar dass die MasterTbl editierbar ist und die Joins eben nicht. In der Master verwalte ich die IDs als FK und hole mir durch die Joins die entsprechenden Detaildaten.
Um ein TAdvDBLookUpComboBox innerhalb des Grids verwenden zu können muss ich ein TFormControlEditLink Komponente zusätzlich auf die Form platzieren und mit der TAdvDBLookUpComboBox binden. Das Problem ist, das TAdvDBLookUpComboBox ausschließlich auf Felder dargestellt wird die selbst editierbar sind. In meinem Select ist das Feld A.EMAIL editierbar da es zur MasterTbl gehört. Die Felder aus den Join Tabellen sind nicht editierbar. Auf genau so ein Feld V.VREIN soll das TAdvDBLookUpComboBox erscheinen um die entsprechende Auswahl durchführen zu können.
Code:
SELECT A.AMTZUORDNUNGID
, A.AMTID
, A.VEREINID
, A.ADRESSID
, V.VEREINNR
, V.VEREIN <<<hier geht LookUp nicht weil das Feld durch
das Join nicht editierbar ist.
, A1.AMT
, A.EMAIL <<<hier geht LookUp weil das Feld Editierbar ist.
, A.EINTRITT
, A.AUSTRITT
FROM AMTZUORDNUNG A
LEFT JOIN VEREINE V ON A.VEREINID=V.VEREINID
LEFT JOIN AEMTER A1 ON A.AMTID=A1.AMTID
WHERE !condition
Die Frage ist, es mit TDBAdvGrid überhaupt möglich ein TAdvDBLookUpComboBox
auf ein nicht editierbares Feld darzustellen? Mit den IBObjects Komponenten geht das ohne weiteres.
Gruß Kostas