LookUp поля в DBgridEh

wellvk
Дата: 24.06.2009 06:57:18
Всех приветствую.Возникла проблема следующего характера:
есть dbgridEh -состоящий из 2-х колонок название (1)и значение(2 LookUp поле)...
Значение для 2 колонки должно вбираться из выпадающего списка- стал думать в сторону LookUp полей. Данные для отображения в гриде берутся из OraDataSource1 из SmartQuery1(ODAC).
В SmartQuery1 создал LookUp поле к др таб из SmartQuery2, в которой находятся значения.
Грид отображает колонки "название" и "значение" верно но "значение" отображается без выпадающего списка,значения не раскрываются...
dbgridEh.column[1].ButtonStyle:=cbsDropDown;
dbgridEh.column[1].DropDownShowTitle:=True;
dbgridEh.column[1].DropDownBox.ListSource:=OraDataSource2;
dbgridEh.column[1].LookupDisplayFields:='IDNAME';

Делал все согласно дока Ehlib :
Несколько полей в выпадающем lookup-списке.
Для отображнения нескольких полей в выпадающем lookup-списке для lookup-полей установите в Column.LookupDisplayFields список полей. Точки с запятыми должны разделять множество имен полей. Имя Column.Field.LookupResultField должно присутствовать в списке LookupDisplayFields. Lookup-список с несколькими полями может быть назначен только lookup-полям. Это свойство работает только для полей DataSet'а типа Lookup (TField.FieldKind = fkLookup).

Спасибо.
Volonter12
Дата: 24.06.2009 10:55:38
Вариантов почему может быть очень много, так как далеко не всё нужно описано в вопросе.
SmartQuery2 открывается?
Значения свойств лукап-поля не приведены. Лукап-поле создано корректно?
Далеко не все свойства колонки приведены, а приведенные свойства не совсем то что нужно.

Вот пример реальной колонки с лукап-полем

          item
            AlwaysShowEditButton = True
            DropDownBox.Columns = <
              item
                FieldName = 'CID'
                Title.Caption = 'Ñèìâîë'
              end
              item
                FieldName = 'NAME'
                Title.Caption = 'Íàçâà'
              end>
            DropDownBox.Options = [dlgColumnResizeEh, dlgColLinesEh]
            EditButtons = <>
            FieldName = 'FIELD_TYPE_NAME_L'
            Footers = <>
            MinWidth = 100
            STFilter.DataField = 'FIELD_TYPE_ID'
            STFilter.KeyField = 'ID'
            STFilter.ListField = 'NAME'
            STFilter.ListSource = DMMain.ODS_DataType
            Width = 100
          end

STFilter к сути вопроса не относится, но есть полезностью.
wellvk
Дата: 24.06.2009 11:01:40
Volonter12,

SmartQuery2 открывается?- Да, он открыт(иначе значения 2 колонки не были видны...)
Лукап-поле создано корректно? - ответа на вопрос не имею.. как проверить?!
wellvk
Дата: 24.06.2009 11:21:46
кинул на форму DBLookupListBox1 указал datafield LookUp-поле.Бегаю по гриду, в DBLookupListBox1 записи выделяются согласно группам колонки свойства.
Volonter12
Дата: 24.06.2009 19:08:50
Ну я даже не знаю что тут еще можно сказать...
А просто взять и проставить указанные мной свойства для 2-й колонки?
(лучше в дизайнере)
Очень конкретный вопрос FieldName = 'ЛУКАП_ПОЛЕ' стоит?

З.Ы. Если значения 2-й колонки видно то наверное Лукап-поле нормальное.
З.Ы.Ы. причём тут DBLookupListBox1?
wellvk
Дата: 25.06.2009 07:40:46
Volonter12,
Разобрался, проблема в том, что у квери (для того чтобы раскрывался список) необходимо во вкладке
UpdateSqls прописать update, insert...и все заработало...