|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема с лукап полями
Меня эта проблема вообще в тупик загнала, вот в чем ее суть:
программно создаю lookup поля в AdoTable вот процедура создания полей: Код:
procedure CreateLookups; //Процедура создания LookUp поля procedure createit(KeyF, //Имя поля которое нужно заменить LUpKeyF, LUpRes :string; T1, T2 :TADOTable); begin with TStringField.Create(DataModule1.T) do begin FieldName := 'lookup' + KeyF; FieldKind := fkLookup; DataSet := T1; Name := 'My' + FieldName; KeyFields := KeyF; LookUpDataSet := T2; LookUpKeyFields := LUpKeyF; LookUpResultField:= LUpRes; DataModule1.T.FieldDefs.Add(Name, ftString, 100, false); end; DataModule1.T.FieldByName(KeyF).Visible:=false; DataModule1.T.FieldByName(KeyF).Index:=T1.Fields.Count-1; DataModule1.T.FieldByName('lookup' + KeyF).Index:=StrToInt(KeyF)-1; DataModule1.T.FieldByName('lookup' + KeyF).DisplayLabel:=KeyF; end; begin DataModule1.T.Active:=false; createit('2','id','value', DataModule1.T, DataModule1.T2); createit('4','id','value', DataModule1.T, DataModule1.T4); createit('76','id','value', DataModule1.T, DataModule1.T76); DataModule1.T.Active:=true; end; Но при просмотре таблицы получается, что отображается только первые 20 символов во всех 3х полях(пример в файле). Проверял с разными таблицами, везде ошибка повторяется, значит ошибка в датасете. Создовал в ручную лукап поле, вроде, отображается нормально, но меня интересует именно программное создание полей. Подскажите как можно исправить ошибку? |