自动汇总统计

阅读(2987) 标签: 基准表, 统计表, 数据来源格,

在实际应用中,经常会有这样的需求:按不同权限角色填写不同的明细数据,最终还需要将这些明细数据汇总进行分析。就如上节10.3.shtSheet1,不同的角色填写所负责超市的商品明细,数据提交后自动保存到文件中,每个超市明细保存为一个文件,然后总公司需要将所有超市的明细汇总统计。这个时候,总公司的业务人员就可以利用统计表功能根据所填数据自动生成汇总分析表了。本章我们就以10.3.shtSheet1为例来体会一下自动汇总统计功能。

步骤大致分为四步:

1)  设计基准表填报表,用于填写明细数据

2)  发布基准表填报表,每个子公司填写数据并各自保存为一个结果文件

3)  设计统计表,用于汇总分析

4)  发布统计表,将每个子公司保存的结果文件放到一个列表,并保存到request变量传给tag标签,程序自动完成基准表数据合并,并根据统计表指定的统计方式进行汇总分析。

详细步骤如下:

第一步:设计基准表填报表,此步骤可以沿用10.3.sht

第二步:发布基准表填报表

tag标签属性paramsfile,和outerDim可根据权限角色不同传入不同属性值,这样不同权限角色的业务人员看到的是同一个基准表填报表模板,但填写的是不同的明细数据。

本例只设计填报表,不讲述用户权限部分,用户可在代码里根据当前用户准备不同的tag属性值,达到权限控制的目的,如本例中不同的超市使用同一个基准表填报表时填写的是不同的明细数据,并保存为不同的结果文件。

以两个超市为例,保存的结果文件分别对应data1.jsondata2.json

 

结果保存为data1.json

 

结果保存为data2.json

第三步:设计统计表

设计统计表,并命名为10.4.sht,单元格内容和样式如下图所示

 

设置A2A3为维度格, B2C2B3C3为数值格。

 

所谓统计表,就是按照某个维度或者某几个维度进行分组汇总统计分析,目前维度格内容由制表的业务人员手动输入,可以如上图所示编辑;也可以写成序列的形式,比如A2表达式:=["乐万家","永福"]

统计表中维度格的字段名称,数值格的字段名称,以及对象名均可随意定义,正如A1B1C1单元格内容。

第四步:为统计表设置基准表

为统计表设置基准表,可用来定义统计表和基准表的对应关系。

点击【填报】à【数据处理】,切换到【其他】页,如下图所示,选择该统计表对应的基准表,比如本例基准表为10.3.sht

 

第五步:设置数据来源格

给统计表的维度格和数值格设置数据来源格,指定数据来自基准表的哪一页哪一个非普通格单元格:

设置A2,A3的数据来源格为E1,表示A2,A3的数据来自10.3.sht同名Sheet中的E1单元格;

设置B2,B3的数据来源格为D4,表示B2,B3的数据来自10.3.sht同名Sheet中的D4单元格,统计方式为求和;

设置C2,C3的数据来源格为E4,表示C2,C3的数据来自10.3.sht同名Sheet中的E4单元格,统计方式为平均。

 

 

数据来源格的定义规则:

数据来源格的格式为页名!单元格名。所以本例统计表中A2,A3的数据来源格可设置为 。当统计表和基准表的页名相同时,页名可省略,比如本例所用统计表和基准表的页名都是Sheet1,所以数据来源格可简写成E1;如果此时统计表和基准表对应单元格也相同,那么单元格也可以省略不写。

 

页名的设置:

数据来源格中的单元格名都有对应的页名。除通过编辑数据来源格设置页名外,还可以使用页属性中的基准页为每一个统计表Sheet设置页名。

做统计时优先查找数据来源格,其次是基准页,最后是同名页,都找不到时报错。

 

统计分析的规则:

基准表各个结果文件的合并由后台程序自动分析完成。首先系统将基准表每一片生成一个合并,然后再根据设置的统计方式,按照指定维度进行汇总分析。

统计分析的规则是针对某个对象的某个字段的所有数据做统计汇总,这个字段来自数值格。如果是可扩展的网格或行式中的单元格,那么这个单元格就是一个可扩展的单元格,例如本例中的D4,表示对行式扩展出来的数量(公斤)列中所有数据进行统计;如果是非扩展的网格,那仍然定位到网格所指代的字段上,将会统计该字段中的所有数据,下文将会举例说明。

第六步:统计表WEB预览

统计表在JSP文件中用<prefix:aggr>标签来发布,标签里面可以通过配置tag标签属性dataFiles来设置结果文件,fileType来设置结果文件类型,其它属性可参考《程序员参考》统计表章节。

将基准表10.3.sht 和统计表10.4.sht放到上边新建的Tutorial目录中。基准表生成的结果文件自动生成在报表预览设置对话框中的报表主目录/autoDataFiles/文件夹中。启动服务器,在浏览器地址栏中输入:

http://localhost:6868/demo/reportJsp/showAggr.jsp?sht=Tutorial/10.4.sht&dataFiles=Tutorial/autoDataFiles/data1.json;Tutorial/autoDataFiles/data2.json进行预览。

dataFiles最后的文件名支持通配符*和?。

dataFiles支持绝对路径和相对路径,相对路径相对于应用资源路径。

WEB预览效果如下:

 

至此统计表的制作完成了。通过本例我们了解了统计表的自动汇总分析功能,在此基础上,还可以扩展一下,比如根据权限角色不同,选择不同的基准表数据合并,并且根据合并的基准表数据不同,还可以按照城市,超市两个维度或者更多维度汇总分析,汇总的统计数据还能导出为EXCEL用于更高一级的汇总分析等等。