报表中组内占比、全局占比计算的实现

时间:2024-02-20 07:38:17

如图,在使用报表软件中经常会有按照分组和全局进行数据占比等计算的场景。


本教程使用Wyn Enterprise内置Sum、Sum(with scope)等统计函数和ReportItems函数,快速实现类似计算场景。

1.以示例数据为例,首先新建常规矩表,分组统计各地区的各月份的销售量,并添加分组汇总行。


2.新增列,计算组内占比;

分组占比列表达式:=Sum(Fields!购买数量.Value)/Sum(Fields!购买数量.Value,"矩表1_销售大区1")
含义:用矩表当前行的值除以分组的合计值,第二个sum函数是包含统计区域参数的,统计区域为分组:矩表1_销售大区1

如何查看分组:选中表格中销售大区单元格,在属性窗口查看分组,获取分组名称


修改分组占比例数值的数据格式为百分比;


分组占比效果:


3.计算全局占比;
新增两列,一列用于计算全局占比,一列作为辅助列计算总销售量

   a.新建文本框,在文本框中绑定数据集销量字段的sum值,第二个参数为数据集名称:=Sum(Fields!购买数量.Value,"销售明细_报表"); 



   b.将文本框拖到辅助列的明细行中;

  预览效果
   
   c.在元素管理中获取文本框的属性,为后面获取文本框的值做准备:该文本框是:文本框16;
   
   d.使用ReportItems!文本框16.Value 可以获取到总计值。
   e.在全局占比列中添加表达式:=Sum(Fields!购买数量.Value)/ReportItems!文本框16.Value,修改数值格式为百分比。
    含义:用矩表中每个明细行的销量除以总销售量。
   f.隐藏辅助列的显示:选中汇总列所有单元格,在属性中打开隐藏;
    
   g.预览报表,即可看到最终效果。