Форум: "Базы";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
ВнизДинамическое создание 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c