找回密码
 立即注册

QQ登录

只需一步,快速开始

williamluo

高级会员

94

主题

216

帖子

1028

积分

高级会员

积分
1028

活字格认证

williamluo
高级会员   /  发表于:2020-2-18 14:48  /   查看:2973  /  回复:0
本帖最后由 Eden.Sun 于 2023-1-5 18:51 编辑

表格类报表的尾部,往往需要显示总行数和合计数之类的信息,这种汇总性质的数据可以用表格的表尾行来实现。

(一)总行数

Wyn的表格元素,在为明细数据行单元格绑定数据集字段的时候,会自动设置表尾行单元格的表达式,如下图:
image.png127647093.png
其中,第一列尾行的汇总计算是Count,原因是【订单编号】字段的类型是字符型;第二列尾行的汇总计算是Sum,原因是【购买数量】字段是数值型的。
凡是数值型的字段,表尾行的表达式都是 =Sum([字段名]) ;非数值型则是 =Count([字段名]) 。

Count函数是通过对非数值型字段进行计数,结果就是记录总行数,如下图:
image.png844557189.png

事实上,表格头的单元格也可以用Count函数来展示总行数,只是表格头一般都是用于显示列名,所以Wyn会自动填写字段名称,而不是Count表达式。

(二)分组行数

前面的例子是对整个表格的行数进行统计。如果表格设置了行分组,比如根据销售区域统计订单数,怎么统计每个区域的订单数呢?
与总行数类似,这种按分组统计行数的方法是:在分组头或者分组尾行使用Count函数。

下面是一个具体的操作步骤示例。

(1)添加行分组
添加行分组,可以在明细数据行中点击鼠标右键,再点击【分组操作】-【插入分组】,如下图:
image.png480225829.png
再设置【分组条件】字段,如下图:
image.png751291503.png

更简单的方法是,将数据集的分组条件字段直接拖放到表格分组框内,如下图:
image.png368107604.png

(2)在分组尾行单元格设置Count表达式
在分组尾的单元格中,输入 =Count([字段名]) 表达式,如下图:
image.png974107971.png
预览时,可以看到,尽管表达式都是  =Count([字段名]) ,但是分组尾和表尾行显示的数字却是不同的,如下图:
image.png875524902.png
也就是说,Wyn会自动根据表达式所在的位置(内部称为数据区域,Data Region)来决定计数的范围。分组尾上的表达式,就针对分组内的数据行进行计数;表尾行的表达式,则是对整个数据集进行计数。

(三)跨数据区域的汇总表达式

前面介绍的Count函数在不同数据区域(分组头尾,表尾行)的不同结果。如果需要在一个区域内显示另一个区域的汇总结果,比如在分组内显示总订单数,那应该怎么办呢?
实际上,Count,Sum等汇总函数,除了字段名称这个参数之外,还有另一个被称为“作用域”的参数,也就是说,完整的表达式是下面这样的:
=Count([字段名],"作用域名")
=Sum([字段名],"作用域名")

所谓作用域,是指函数计算所针对的数据范围。
作用域名,可以是数据集名称,也可以是一个分组的名称。

设置好分组的表格如下图:
image.png501344298.png
其中的“表格1_销售大区1”就是分组名称。

为说明作用域参数的效果,我们在明细数据行单元格中分别输入下面的表达式:
=Count(Fields!订单编号.Value, "表格1_销售大区1")
=Count(Fields!订单编号.Value, "销售明细_报表")
如下图:
image.png915949096.png
其中:
表格1_销售大区1 是分组名;销售明细_报表 是数据集名称。
预览效果如下图:
image.png835221557.png

与Count函数类似,Sum,Avg,Max等函数都支持这种作用域参数,可以针对不同范围统计合计值、平均值、最大值。





0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部