自带的DBGrid,数据集为ClientDateset 要实现其中一个自段值为前几个字段的计算结果,怎么实现啊?

解决方案 »

  1.   

    在提交之前作计算,BeforePost事件里写代码:
    procedure TForm1.ClientDataSet1BeforePost(DataSet: TDataSet);
    begin
      DataSet.FieldByName('合计字段名').AsFloat :=
        DataSet.FieldByName('字段1').AsFloat +
        DataSet.FieldByName('字段2').AsFloat+
        {.....}
        DataSet.FieldByName('字段n').AsFloat;
    end;
      

  2.   

    是不是你某一个字段的为NULL值
      

  3.   

    那你可以在ClientDataSet里加一个计算字段,然后在ClientDataSet.OnCalcFields事件里写就可以了
    procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
    begin
      DataSet.FieldByName('合计字段名').AsFloat :=
        DataSet.FieldByName('字段1').AsFloat +
        DataSet.FieldByName('字段2').AsFloat+
        {.....}
        DataSet.FieldByName('字段n').AsFloat;
    end;
      

  4.   

    我测试的怎么都不行啊啊?DataSet.FieldByName('合计字段名').AsFloat:=55;
    这样直接赋值都显示不出来