Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/63: Рейтинг темы: голосов - 63, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48

DBLookupComboBox - отображение выбранного значения

07.02.2012, 02:01. Показов 12742. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сейчас есть: таблица (ADOTable1, форма1), некторые поля которой заполняются через различные компоненты (форма2), в том числе и через DBLookupComboBox.

По нажатию кнопки происходит запись.

Delphi
1
2
3
4
5
6
7
8
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
    fDM.ADOTable1.FieldByName('IPROGRAMID').AsString := fDM.ADOTable4.FieldByName('VCNAME').AsString;
    fDM.ADOTable1.FieldByName('ISTAFFID').AsString := DBEdit1.Text;
    fDM.ADOTable1.FieldByName('VCTASK').AsString := DBMemo1.Text;
    if fDM.ADOTable1.Modified then fDM.ADOTable1.Post;
    Close;
end;
FieldByName('IPROGRAMID') берется из DBLookupComboBoх. Все нормально подставляется, как надо.

Но дальше уже не как надо.
Требуется по двойному клику по строке таблицы на форме 1 перейти в редактирование записи на форму 2.
Поля, которые ранее заполнялись через DBEdit и DBMemo - отображают текущее значение таблицы (как и надо). А поля, которые заполнялись через DBLookupComboBoх, сбрасываются.

Вот делать, чтобы эти значения при переходе с формы1 на форму2 сохранялись?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2012, 02:01
Ответы с готовыми решениями:

отображение записей в DBLookupComboBox
Подскажите плз! проблема такая: есть таблица с 2мя полями, в первом поле записи могут повторяться, во втором - нет. нужно сделать...

DbLookupCombobox Значения
Есть одна таблица Autochek.db, в ней три колонки Firm, Mode и Version. Вопрос: как Связать три компонента DblookupCombobox что бы...

DBLookupComboBox передача значения
Всем привет. Подскажите полалуйста как передать значение из DBLookupComboBox в SQL? Если так...

32
45 / 44 / 2
Регистрация: 06.02.2012
Сообщений: 147
08.02.2012, 16:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от steel_tiger Посмотреть сообщение
Delphi
1
2
3
4
//переоткрываем запрос на отображение
if fDM.ADOQ_GET_Z.Active then
   fDM.ADOQ_GET_Z.Close;
fDM.ADOQ_GET_Z.Open;
теперь вот это можно просто перенести в процедуру рефреш и вызывать ее
в конце Button3Click (кстати кнопку тоже переименуй!!!):


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button3Click(Sender: TObject);
begin
  try
  if Application.MessageBox('Точно удалить?','ADO',MB_YESNO)=IDYES then
  begin
     if fDM.ADOQ_DEL_ZAYAV.Active then
        fDM.ADOQ_DEL_ZAYAV.Close;
 
     fDM.ADOQ_DEL_ZAYAV.Parameters.ParamByName('pid').Value:=fDM.ADOQ_GET_Z.Fields.Fields[0].AsInteger;
     fDM.ADOQ_DEL_ZAYAV.ExecSQL;
     
     //отут вызов процедуры рефреш()
  end;
end;
Удачи!
1
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
08.02.2012, 17:45  [ТС]
Мне еще предстоит сражение с формой редактирования.
Вытаскивание значений из текущей строчки DBLookupComboBox и добавление этого значения с сводную таблицу.
0
45 / 44 / 2
Регистрация: 06.02.2012
Сообщений: 147
08.02.2012, 17:49
что значит в сводную таблицу?
может илюстрацию приведешь того, что хочешь сделать?
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
08.02.2012, 21:30  [ТС]
Есть сводная таблица, и есть 5 таблиц-справочников. Таблицы-справочники могут меняться, если нужных записей в них нет. Ну а сводная берет из справочников нужные поля.
Миниатюры
DBLookupComboBox - отображение выбранного значения   DBLookupComboBox - отображение выбранного значения  
0
45 / 44 / 2
Регистрация: 06.02.2012
Сообщений: 147
09.02.2012, 12:20
Что именно редактируется на форме "Редактирование"?
что должно измениться при нажатии на кнопку "Сохранить"?

Добавлено через 5 минут
"Заказчик" - это Worker?

Добавлено через 5 минут
и куда в редактировании делось поле "комментарий"?
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
09.02.2012, 18:10  [ТС]
в форме редактирования редактируется Исполнитель, Статус и ставится Дата начала.
Как только на заявку назначается исполнитель, ей присваивается статус Принята и Дата начала приравнивается к текущей дате.

Заказчик это Staff.

Про коммнетарий нинай.. вроде не надо его редактировать.

Вот потому что вроде не много редактировать, я и думала, чтобы по двойному клику по строке в первой форме открывалось окно подачи заявки, но в режиме редактированния (просто добавить там возможность выбора пользователя). Так было бы логично - сразу было бы видно имя клиента, его номер телефона, в каком отделе он работает
0
45 / 44 / 2
Регистрация: 06.02.2012
Сообщений: 147
09.02.2012, 18:34
вобщем создайте запрос ГЕТ_ИСПОЛНИТЕЛЬ в котором просто сделайте выборку всех исполнителей и подключите его к соответствующему комбобоксу .
аналогично с статусом.
при открытии формы редактирования, присвойте
Delphi
1
комбобокс.KeyValue :=  Form1.fDM.ADOQ_GET_Z.FIELDBYNAME('соответствующий_id')
так вы позволите выбирать все возможные варианты, но по умолчанию, проставите то, что стояло раньше.

для остальных полей нужно создать отдельный квери с запросом типа:
SQL
1
2
3
4
5
6
7
8
9
SELECT worker.VCFIRSTNAME, WORKTYPE.VCNAME AS WT_NAME, PROGRAM.VCNAME AS PG_NAME 
FROM ZAYAVKA
INNER JOIN worker 
    ON worker.iworkerid = ZAYAVKA.IWORCERID
       AND ZAYAVKA.IZAYAVKAID = :p_IZAYAVKAID
INNER JOIN WORKTYPE
    ON WORKTYPE.IWORKTYPEID = ZAYAVKA.IWORKTYPEID
INNER JOIN PROGRAM
    ON PROGRAM.IPROGRAMID = ZAYAVKA.IPROGRAMID
p_IZAYAVKAID беоете тоже с Form1.fDM.ADOQ_GET_Z.FIELDBYNAME.
результат запроса розпихиваете по эдитам.

_______________

короче первая задача, это по клику на нужную запись, в форму подтащить именно ее значения
1
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
09.02.2012, 20:14  [ТС]
Delphi
1
DBLookupComboBox1.KeyValue := fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKAID');
[Error] Unit7.pas(57): Incompatible types: 'Variant' and 'TField'

Delphi
1
DBLookupComboBox1.KeyValue := fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKAID').AsVariant;
Ошибка при компиляции.
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
09.02.2012, 21:18
Цитата Сообщение от Nirvanka Посмотреть сообщение
Delphi
1
DBLookupComboBox1.KeyValue := fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKAID');
[Error] Unit7.pas(57): Incompatible types: 'Variant' and 'TField'

Delphi
1
DBLookupComboBox1.KeyValue := fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKAID').AsVariant;
Ошибка при компиляции.

Все проще:

Delphi
1
DBLookupComboBox1.KeyValue := fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKAID').Value;
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
09.02.2012, 22:40  [ТС]
Все равно ошибка с этим кей валюе ((

И еще. Чего процедура обновления не работает нормально? Я ее уже и на активацию окна ставила, и на кнопки закрытия других форм, и на открытие главной формы..
Я конечно добавила просто кнопку "Обновить", и на нее ту же процедуру обновления.. Ну все таки..
Миниатюры
DBLookupComboBox - отображение выбранного значения  
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
10.02.2012, 17:00  [ТС]
Или я неправильно делаю?
DBLookupComboBox подключаю к одной таблице, потом
Delphi
1
DBLookupComboBox1.KeyValue := fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKASTATUSID').Value;
где
Delphi
1
fDM.ADOQ_GET_Z.FIELDBYNAME('IZAYAVKASTATUSID')
это таблица и поле, из которых мне надо получить текущее значение для комбобокса?
0
45 / 44 / 2
Регистрация: 06.02.2012
Сообщений: 147
13.02.2012, 23:19
accessviolation - это из-за того, что на FormCreate код висит. перенеси на FormShow. Стыдно наступать на те же грабли.

Добавлено через 3 минуты
DBLookupComboBox подключаю к одной таблице
- я надеюсь, это образно?
Забудь компонент ADOTable. Подключай DBLookupComboBox к Query в котором написано
SQL
1
SELECT key_field, text_field FROM table1
1
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
14.02.2012, 08:59  [ТС]
Цитата Сообщение от steel_tiger Посмотреть сообщение
- я надеюсь, это образно?
Конечно, образно )
Имелось в виду - к таблице базы данных через квери )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2012, 08:59

не отображает значения в dblookupcombobox
Доброго времени суток. Помогите, пожалуйста. Задача стоит такая. В IBExpert создана таблица GROUPS и полями ID_GROUPS, GROUPS. На форме...

Передача значения из DBLookupComboBox в Edit
есть таблица Клиент с полями: ID, фио, адрес и т.д. Так же есть DBLookupComboBox и в свойствах ListSourse - таблица Клиент; ListField...

Исключить повторяющиеся значения в dblookupcombobox
в списке dblookupcombobox повторяются значения поля name_d, нужно исключить повторяющие с помощью sql, либо другим способом. Заранее...

Как вытащить значения из DBLookUpListBox и DBLookUpComboBox
Я хочу получить список всех значений из DBLookUpListBox (DBLookUpComboBox) в отдельную таблицу например, или просто куда нибудь в...

Как выводить в DBLookupCombobox только уникальные значения?
Помогите пожалуйста, как сделать так, чтобы DBLookupCombobox показывались только уникальные значения? Желательно без SQL :)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru