Adotable1有3个字段 :小计,月收入,月其他收入。
用DBGRID通过DATESOURCE连接上ADOTABLE1
在ADOTABLE1中把‘小计’的fieldkind设置成fkCalculated;
然后在ADOTABLE1的onCalcFields事件中写上代码。如下:
procedure TFjmbzj.ADOTable1CalcFields(DataSet: TDataSet);
begin
     dataset.FieldValues['小计']:=dataset.FieldValues['月收入']+dataset.FieldValues['其它收入'];
end;
为什么执行过后 我打开表看的时候 小计 没有值 ?在DBGRID中确能看到值?
怎样才能把小计保存到数据表中?
(3个字段均为float)

解决方案 »

  1.   

    把你的赋值函数写在dataset的onfilter事件里,然后再让dataset.filtered:=ture一下应该 也可以的。
      

  2.   

    procedure TFjmbzj.ADOTable1CalcFields(DataSet: TDataSet);
    begin
         dataset.Fieldbyname('小计').asFloat:=dataset.Fieldbyname('月收入').asFloat+dataset.FieldbyName('其它收入').asFloat;
    end;
      

  3.   

    想存进去可以。不能
    “在ADOTABLE1中把‘小计’的fieldkind设置成fkCalculated;”
    这样会有问题的只能把它设置为普通字段,自己写update才行
    这样虽然很麻烦。不过肯定能完成