Здравствуйте
Использую 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.idDBGridEhSteps отображает данные из 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 и далее отображаются только цифры и при нажатии на кнопку выкидного списка отображается не список а калькулятор как у числовых полей.
Как исправить подскажите пожалуйста.