Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: 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 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
14-1126549319
Большой Гого
2005-09-12 22:21
2005.10.02
Определить фразу в Edit!


14-1126006920
Ylia___
2005-09-06 15:42
2005.10.02
Симуляция нажатия клавиш в играх


1-1126367091
lionts
2005-09-10 19:44
2005.10.02
Импорт перемненных из внешних модулей


4-1123564499
ANB
2005-08-09 09:14
2005.10.02
Как получить номер версии своей программы ?


4-1123156568
grigory
2005-08-04 15:56
2005.10.02
Не удается выполнить исходящий вызов...