procedure MyDataSource1DataChange(Sender: TObject; Field: TField);
begin
MyTable2.Filtered := true;
MyTable2.Filter := 'client_id=' + MyTable1.FieldByName('id_client').AsString;
end;
DBGridEh и lockup с MasterSource
Добрый день, есть три TMyTable. Одна подключена к DBGridEh, две других связаны с ней lookup полями. Мне нужно сделать, чтобы список выбора одного lookup поля (адрес) зависел от выбранного значения второго lookup поля (Клиент). Другими словами, у каждого клиента есть несколько адресов, нужно, чтобы в выборе адреса вылезали только адреса выбранного клиента. Попробовал сделать через MasterSource, не получилось. Как это можно реализовать?
Не уверен полностью, но может этот примерчик БД поможет?
У датасурса есть событие OnDataChange, так вот нужно сделать обработчик этого события для первого лукап поля, в котором обращаться к датасету (отличаете датасет и датасурс?) для второго лукап поля, где или фильтровать или заного загружать нужные значения из БД.
Код:
if Field.Name = 'MyLookupField' then
// И тут уже плясать
// И тут уже плясать
Вообще мне кажется что это проблема DBGridEh...
Хотя вообще сложно сказать. Я мог бы посмотреть, если скинете исходники (если конечно там не сверхсекретная софтина), благо EhLib у меня есть, сам с ней щас работаю.
я использую MyDAC компоненты для работы с Mysql базой. Сам проект достаточно большой, могу набросать тестовую программку, посмотрите?
Набросайте, только не с мускулом, а с акцессом. Мускула нету.
Набросал прогу, с этими датасетами отображается правильно вроде, но при открытии списка в поле "адрес" не верно работает. Заранее спасибо за помощь.
Цитата: o_serg
Набросал прогу, с этими датасетами отображается правильно вроде, но при открытии списка в поле "адрес" не верно работает.
К сожалению, архивчик "db_test.zip" не рабочий, (даже 7-Zip его не берёт) требуется перезагрузка!
Цитата:
К сожалению, архивчик "db_test.zip" не рабочий, (даже 7-Zip его не берёт) требуется перезагрузка!
Переименуйте в db_test.rar, хотя у меня winrar и так открывает :)
Лови. В общем, DbGridEh там не причем, у тебя че-то было запутанно с самими датасетами. У меня щас вроде работает.
Проблему решил, в обработчике OnEditButonClick DbGridEh ставлю фильтр. Работает, но неужели нет нормального решения...