Здравствуйте уважаемые форумчане, столкнулся с проблемой как подставить значение в DBLookUpCombobox при редактировании записи.
Есть три таблицы:
Okrug поля: id (PK), name_okrug(текст)
Filial поля: id(PK), name_filial (текст), id_okrug(int)
Emp поля: id(PK), last_name(текст), first_name(текст), patr_name(текст), id_filial(int), dataadd(Date/Time)
На форме размещены DBEdit для внесения фио, DBLookUpCombobox(Name:lcbOkrug, ListSource:qrOkrug) и (Name:lcbFilial, ListSource:qrEmpFilialDropDown, DataSource:qrEmp), cxDBDateEdit.
В датамодуле следующие запросы:
qrOkrug
qrFililal
Код:
SELECT Filial.*, Okrug.name_okrug
from Filial
INNER JOIN Okrug on Filial.id_okrug=Okrug.id
qrEmp
Код:
SELECT Emp.*, Filial.name_filial
from Emp
LEFT OUTER JOIN Filial on Emp.id_filial=Filial.id
qrEmpFilialDropDown
Код:
SELECT *
from Filial
where Filial.id_okrug=:id_okrug
Сделал связь Master/Detail для qrEmpFilialDropDown:
MasterSource: dsOkrug
MasterFields:id
DetailFields:id_okrug
На событие lcbOkrugCloseUp добавил код:
Код:
dm.qrEmpFilialDropdown.Close;
dm.qrEmpFilialDropdown.ParamByName('id_okrug').AsInteger := lcbOkrug.KeyValue;
dm.qrEmpFilialDropdown.Open;
При добавлении записи в таблицу Emp всё работает корректно, но если я хочу отредактировать запись, то поля в lcbOkrug и lcbFilial пустые, оно в принципе и понятно в lcbOkrug подставлять нечего т.к. используется только как фильтр для lcbFilial, а lcbFilial пустой т.к. не отработало событие lcbOkrugCloseUp. Можно как нибудь реализовать подстановку значений в эти поля при редактировании записи и не напутал я со связкой Master/Deatail?