Вниз
Скачать: CL | DM;

Динамическое создание Lookup полей.   Найти похожие ветки 

← →
PAI   (2005-08-09 16:32) [0]

Что-то никак не удаётся создать динамически Lookup -поле.
Это вообще возможно, или как..?


← →
sniknik ©   (2005-08-09 16:39) [1]

однозначно.
вообще созданое в "дизайне" в итоге тот же самый "рантаймовский" код, но сделанный за тебя дядей Борландом.


← →
hope   (2005-08-17 07:45) [2]

Динамическое создание полей, вообще не особо тривиально, особенно если вы пользуетесть запросами или клиентскими датасетами. Дело в том что список полей Fields - заполняется либо из FieldDefs либо пользователем. Первый случай присходит тогда и только тогда, когда вы сами не вносите изменеий в Fields, но и FieldDefs заполняется полями автоматически, только если вы его сами не изменили.
Поэтому, если вам надо добавить поле в набор данных, особенно Lookup (потому как при его создании производится проверка наличи\ всег полей, на которые он ссылается) то у вас только один вариант - ЗАПОЛНИТЬ Fields самостоятельно до открытия набора.
Самый простой способ:

With DataSet do
begin
 FieldDefs.Update;
 FieldDefs.Add(Name + "MyFieldName", ftString{например});
 for I := 0 to FieldDefs.Count-1 do
  FieldDefs[I].CreateField(FieldDefs.Dataset);

 with FieldByName("MyFieldName") do
 begin
   FieldKind := fkLookup;
   KeyFields := {список ключевых полей основного набора};
   LookupDataSet := {какой-то датасет};
   LookupKeyFields := {список ключевых полей LookupDataset};
   LookupResultField := {имя отоюражаемого поля из LookupDataset};
 end;
 Open;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
1-1126431177
The Only
2005-09-11 13:32
2005.10.02
Status Bar на меню


1-1126413742
Aliv
2005-09-11 08:42
2005.10.02
openfiledialog и loadfromfile


14-1126267812
vrem
2005-09-09 16:10
2005.10.02
Что это такое?


3-1124243943
goodroman
2005-08-17 05:59
2005.10.02
Что нужно для работы с Mysql?


4-1123454145
Makhanev A.S.
2005-08-08 02:35
2005.10.02
Как получить путь к windows на удаленной машине...




   Наверх