天天看点

Crystal Reports单页求和

思路如下(Crystal语法):

1:用一个变量mySum来累计页面数据 “订单.订单金额”

公式@CurrentSum,放在详细资料节需要进行汇总的字段的位置

Crystal Reports单页求和

WhilePrintingRecords; 

Crystal Reports单页求和

CurrencyVar mySum; 

Crystal Reports单页求和

mySum: = mySum  +  {订单.订单金额}; 

如果不需要显示,抑制显示即可

2: 在每页的页脚获取到这个变量的值(也就是该页最后一个Sum值),当然这个时候后一个mySum是前面所有数据的和,

  也就是仍然是我以前犯的错误症状 

  @CurrentPageSum 

Crystal Reports单页求和

WhilePrintingRecords; 

Crystal Reports单页求和

CurrencyVar mySum; 

3:关键所在,在每页的页眉或者页脚的位置将我们的变量重置@ResetPageSum,保证在每页的开始它都是从0开始累计的

Crystal Reports单页求和

WhilePrintingRecords; 

Crystal Reports单页求和

CurrencyVar mySum : =   0 ; 

在这里对两个基本概念进行说明

WhilePrintingRecords:

这里的Printing不是指打印机打印的时候,而是水晶报表在获取完数据后将数据显示在报表上的过程

Crystal Reports单页求和

WhilePrintingRecords 强制公式将在程序打印数据库记录的同时进行计算。 

Crystal Reports单页求和

该函数也可以强制不含数据库字段和组字段的公式在打印记录的同时而不是在读取记录之前进行处理。它还强制含有数据库字段的公式在打印记录而不是在读取记录的同时进行处理。 

变量的作用域问题 :

在此处则使用的是全局变量(Global)的特性

同一名称的全局变量,在报表(一个报表,不含子报表)中使用同样的内存空间,可以为报表中所有的公式使用

默认情况下,可以省略Global关键字,所以在前面的公式中没有出现这个关键字