我是把上期余额和期末余额放在DBGRID的外部来处理的
累计余额用的是计算字段。

解决方案 »

  1.   

    同意masterdelphi(master)的算法
    一般这种报表只会对一个会计科目。我是用 SQL 选择出上期余额,设科目余额为借方  Select Sum(借-贷) From Table Where Date<varDate然后再用DBGRID其中设个计算字段 Rest,并在外部定义变量 Rest:=0;
    在OnCalcFields事件中加   DataSet.Fieldbyname('Rest').asFloat:=Rest+借-贷;这样就可以算出余额累计期末余额和期初一样,只是日期拖后,如果最后的余额结果与期末一样,还可以验证数据对不对。
      

  2.   

    to johnsonrao(johnson) : 那你没有把余额存在表里?
    这样每次都要大量计算,我觉得不好,要把余额存在表里就没问题了。