思路如下(Crystal语法):
1:用一个变量mySum来累计页面数据 “订单.订单金额”
公式@CurrentSum,放在详细资料节需要进行汇总的字段的位置
WhilePrintingRecords;
CurrencyVar mySum;
mySum:
=
mySum
+
{订单.订单金额};
如果不需要显示,抑制显示即可
2: 在每页的页脚获取到这个变量的值(也就是该页最后一个Sum值),当然这个时候后一个mySum是前面所有数据的和,
也就是仍然是我以前犯的错误症状
@CurrentPageSum
WhilePrintingRecords;
CurrencyVar mySum;
3:关键所在,在每页的页眉或者页脚的位置将我们的变量重置@ResetPageSum,保证在每页的开始它都是从0开始累计的
WhilePrintingRecords;
CurrencyVar mySum :
=
0
;
在这里对两个基本概念进行说明
WhilePrintingRecords:
这里的Printing不是指打印机打印的时候,而是水晶报表在获取完数据后将数据显示在报表上的过程
WhilePrintingRecords 强制公式将在程序打印数据库记录的同时进行计算。
该函数也可以强制不含数据库字段和组字段的公式在打印记录的同时而不是在读取记录之前进行处理。它还强制含有数据库字段的公式在打印记录而不是在读取记录的同时进行处理。
转自http://www.cnblogs.com/sghc_lv/archive/2008/12/18/1357612.html
本文介绍如何使用Crystal报表实现每页数据的累加求和功能。通过设置WhilePrintingRecords和变量mySum,在每页页眉重置计数器,确保每页数据独立计算。
1165

被折叠的 条评论
为什么被折叠?



