Привет, я хочу, чтобы поле «All.OrdAll» рассчитано или внутренне рассчитано, которое будет суммировать поля Ord .. для каждого входного значения. Я делаю clientdataset (CDS) во время выполнения. Чтобы внести изменения в компакт-диски, я должен закрыть их, но если я закрою его, я потеряю доступ к полю, которое мне нужно сделать. Обратите внимание, что он виртуальный (ftADT). Пожалуйста, помогите с некоторым кодом.Как сделать расчетное поле, которое является виртуальным (ftADT) для Clientdataset в Delphi
with cds do
begin
Close;
fieldDefs.Clear;
FieldDefs.Add('SN',ftInteger);
FieldDefs.Add('NAME',ftString,40);
FieldDefs.Add('ALL',ftADT,3);
FieldDefs.Add('OrdAll',ftFloat);
FieldDefs.Add('KolAll',ftFloat);
FieldDefs.Add('MinAll',ftFloat);
For i:=0 to High(Bases)
do begin
FieldDefs.Add(Bases[i].Name,ftADT,4);
FieldDefs.Add('Price'+IntToStr(Bases[i].SN),ftFloat);
FieldDefs.Add('ORD'+IntToStr(Bases[i].SN),ftFloat);
FieldDefs.Add('Kol'+IntToStr(Bases[i].SN),ftFloat);
FieldDefs.Add('MIN'+IntToStr(Bases[i].SN),ftFloat);
end;
CreateDataSet;
end;
cds.close;
TADTField(cds.FieldByName('All')).Fields.FieldByName('OrdAll').
FieldKind:=fkInternalCalc;
cds.FieldDefs.Update;
cds.Open;
ли ваши 'предполагаемый cds' содержит вложенный набор данных? Что такое «Базы», объявленные как? – MartynA