Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 23 апр 2024, 15:31

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: post и refresh очищает lookup поле в DBGridEh
СообщениеДобавлено: 28 янв 2019, 16:53 
Не в сети

Зарегистрирован: 03 мар 2017, 07:12
Сообщений: 91
Здравствуйте
Использую EhLib9.2 в Lazarus1.8.0 на Windows8

SQLQuery_steps.SQL = 'select id, name, event, type_ID, time, start, finish from steps'
SQLQuery_types.SQL = 'select id, name from types'
Т.е. поле steps.type_ID является ссылкой на types.id

DBGridEhSteps отображает данные из SQLQuery_steps

Добавил в Грид колонку и настроил ее по инструкции как вариант с LookupParams

Код:
          item
            ButtonStyle = cbsDropDown
            CellButtons = <>
            DynProps = <>
            EditButton.DefaultAction = True
            EditButton.Visible = True
            EditButtons = <>
            Footers = <>
            LookupParams.KeyFieldNames = 'type_ID'
            LookupParams.LookupDataSet = SQLQuery_types
            LookupParams.LookupDisplayFieldName = 'name'
            LookupParams.LookupKeyFieldNames = 'id'
            Title.Caption = 'Тип действия'
            Width = 80
          end     


При выполнении SQLQuery_types.open; SQLQuery_steps.open;
В колонке 'Тип действия' нормально отображаются значения types.name во всех записях.
Но если на подключенном DBNavigator нажать Post или Refresh то колонка просто очищается, кнопки выкидного списка остаются но список пуст и поле пусто.
Хотя в базе поле Type_ID остается заполненным.

Если в колонке еще заполнить параметр FieldName = 'type_ID'

То ситуация меняется, при нажатии Post или Refresh, LookUpValue меняется на LookUpKey и далее отображаются только цифры и при нажатии на кнопку выкидного списка отображается не список а калькулятор как у числовых полей.

Как исправить подскажите пожалуйста.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 фев 2019, 14:08 
Не в сети

Зарегистрирован: 03 мар 2017, 07:12
Сообщений: 91
Разобрался.
При редактировании или вставке данных, срабатывает autoCommit
это приводит к закрытию всех ДатаСетов на соединении, в том числе и на SQLQuery_types который является источником данных для LookupParams
Поставил на SQLQuery_types.Options.sqoKeepOpenOnCommit:=true
теперь Датасет исправно поставляет данные для LookupParams


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB