Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.02.2019, 19:58
brookhut brookhut вне форума
Прохожий
 
Регистрация: 21.05.2017
Сообщения: 13
Версия Delphi: rad studio xe8
Репутация: 10
По умолчанию Подстановка значений в DBLookUpComboBox

Здравствуйте уважаемые форумчане, столкнулся с проблемой как подставить значение в 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
Код:
SELECT * from Okrug
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?
Ответить с цитированием
  #2  
Старый 16.02.2019, 20:42
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 178
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Во время редактирования можно подставить значение в DBLookUpCombobox, предварительно найдя код нужной записи в справочной таблице (назовём его ids (Integer)), после чего:
Код:
 DBLookUpCombobox.KeyValue := ids
Может я не то написал, трудновато понять Ваш пост. Может нужно что-то другое?
Ответить с цитированием
Этот пользователь сказал Спасибо Guaho за это полезное сообщение:
brookhut (04.02.2021)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter