![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамически-создаваемые поля. [D6, XP]
DROWSY © (2010-06-08 15:01:00)Если добавлять поле типа fkLookup или fkCalculated в Fields динамически, то как правильно это сделать?
В обработчике события DataSet.BeforeOpen - добавить, в DataSet.AfterClose - удалить, или как-то иначе?
DROWSY (2010-06-08 17:53:00) [1]Большое спасибо, Медвежонок Пятачок, за ликбез! :)
Медвежонок Пятачок (2010-06-08 17:19:00) [2]сначала филддефс.апдейт.
затем добавляем туда вычисляемые поля.
затем цикл и создание тфилд'ов
потом открываем
DROWSY (2010-06-08 17:18:00) [3]Сделал так, верно?
procedure TdmMills.ibMillsBeforeOpen(DataSet: TDataSet);
var i : integer;
look_fld : TStringField;
begin
DataSet.Fields.Clear;
DataSet.FieldDefs.Update;
for i := 0 to DataSet.FieldDefs.Count -1 do
DataSet.FieldDefs[i].CreateField(DataSet);
look_fld := TStringField.Create(DataSet);
look_fld.Size := 25;
look_fld.FieldName := 'TYP_STR';
look_fld.FieldKind := fkLookUp;
look_fld.KeyFields := 'TYP';
look_fld.LookupDataSet := ibMills_Type;
look_fld.LookupKeyFields := 'CODE';
look_fld.LookupResultField := 'TYPE_STR';
look_fld.DataSet := DataSet;
end;
DROWSY (2010-06-08 17:11:00) [4]Спасибо!
Медвежонок Пятачок (2010-06-08 15:10:00) [5]манипуляции с TFieldDefs до открытия датасета.