那有什么办法实现这个目的?我用
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
  DataSet['实得工资'] :=
    DataSet.FieldByName('基本工资').AsFloat + 
    DataSet.FieldByName('奖金').AsFloat +
    DataSet.FieldByName('补贴').AsFloat -
    DataSet.FieldByName('扣款').AsFloat;
end;
没有反应的,为什么?

解决方案 »

  1.   

        DataSet.FieldByName('实得工资').AsFloat :=    DataSet.FieldByName('基本工资').AsFloat + 
        DataSet.FieldByName('奖金').AsFloat +
        DataSet.FieldByName('补贴').AsFloat -
        DataSet.FieldByName('扣款').AsFloat;
     ?!
      

  2.   

    没人知道吗?实际上就是一个dbgrid中计算的问题啊。某一列的值是其它列相加减得出的,而且随之自动得出结果。
      

  3.   

    BCB说的就对呀,在BeforePost里写就行了
      

  4.   

    还可以在dateSet创建一个Tfield,她的
    field1.fieldkind:=fkcalculated;
    Field1.calculated:=true;
    table1.autocalcfields:=false;然后在Table1.oncalcField中写上你的计算逻辑;
      

  5.   

    wangxd1976(西门吹雪) :没有反应的。一点反应都没有,会不会和我把字段类型设成a有关?