合计函数也称聚合函数,是指对一系列值进行计算。典型的系列值是数据集多条记录的同一字段,因此聚合函数的典型参数值就是数据集字段。
常用的合计函数如下:
- Avg:
返回指定表达式的所有非空值的平均值。如:=Avg( Fields!销售额.Value)。 - Count:
返回指定表达式的值的计数。 - CountDistinct:
返回指定表达式的所有不同值的计数。 - CountRows:
返回指定范围内的行的计数。 - First:
返回指定表达式的第一个值。通常是数据集第一条记录的指定字段值。 - Last:
返回指定表达式的最后一个值。 - Max:
返回指定表达式的所有非空值中的最大值。
- Min:
返回指定表达式的所有非空值中的最小值。
- RunningValue:
返回指定表达式的累进计算值。函数原型为:RunningValue(<Expression>, <Aggregate>, <Scope>)。其中,<Expression>为被计算的表达式,<Aggregate>为累进计算方法,比如:SUM表示合计,AVG表示平均。例如:=RunningValue(Fields!库存量.Value, SUM) 返回从数据集首行至当前行的库存量累计。 - StDev:
- 返回指定表达式的所有非空值的标准偏差。
- StDevP:
返回指定表达式的所有非空值的总体标准偏差。 - Sum:
返回指定表达式的值的总和。 - Var:
返回指定表达式的所有非空值的方差。 - VarP:
返回指定表达式的所有非空值的总体方差。
- CumulativeTotal:
计算累计值,可能是合计、平均值、最大或最小值的累计。例如:=CumulativeTotal( Fields!Qty.Value , Sum) 返回数据集字段Qty的当前累计,其中的“Sum”可以为“AVG”以求累计平均值。此函数多用于会计类报表的滚动汇总。
每个合计函数都可以使用 Scope 参数,该参数定义执行合计函数的范围。有效的范围值是分组、数据集或数据区域的名称。如:=Avg( Fields!销售额.Value, "DataSet1")。
只有直接或间接包含表达式的分组或数据区域才能作为范围。如果表达式位于数据区域内,则对于所有聚合函数,Scope 都是可选参数。如果省略 Scope 参数,则聚合的范围就是报表项所属的最里面的数据区域或分组。如果将范围指定为 Nothing,则表示将范围设置为报表项所属的最外面的数据区域。
如果表达式位于数据区域外,Scope 参数将引用数据表或业务对象。如果报表包含多个数据集,则必须使用Scope 参数。如果报表只包含一个数据集,并且省略了 Scope 参数,则范围将设置为该数据集。如果报表项位于数据区域外,则不能为其指定 Nothing 关键字。
在页眉或页脚中不能使用 Scope 参数。