相比一般的填报表,业务填报表可自动存取数据,少了数据处理操作步骤。前文中行式填报表、自由格式填报表、主子填报表、交叉填报表等删除数据处理中的设置时,填报表就变成了业务填报表,这些可以看作简单的业务填报。
接下来再说说复杂业务填报,例如某基金管理公司需要每月对不同类型的基金进行统计分析,基金分类及需要填写的数据情况如下:
其中空白格是每月需记录的数据,且每一季度再做汇总分析。
由于基金类型不同,每种类型中有多个不同的基金或者项目。这种情况需要使用多个不同类型(2个网格和一个自由格式)的填报表组合成的业务填报表,如下图所示:
该填报表主要为分组汇总表格,按基金类型分为2组,每一组都是一个网格表格,并可以进行小组小计,大组总计的自动计算。
而每一季度的汇总可使用统计表,如下图:
接下来,我们详细介绍如何制作和使用该业务填报表和统计表。
第一步:设计填报表
打开润乾报表设计器,点击【文件】à【新建填报表】,创建填报表文件并命名为10.5.sht,保存到【安装目录】\report\web\webapps\demo\WEB-INF\reportFiles\Tutorial下。文件内容和样式如下图:
一些格值固定的单元格可在填报表设计阶段填写,这样填报时不必每次都重新编辑,如公司名称、基金类型、基金代码、基金名称、非公募各类分项目、其它等。
l 设置单元格类型
设置D4-G8、D11-G14、G2和B17的单元格类型为数值格。
设置A4、B4、B11、C4-C8和C11-C14的单元格类型为维度格。
数值格和维度格的介绍,参见设置单元格类型章节。
数值格D4-G8对应的维度格的字段有:公司名称,基金类型,基金代码。
数值格D11-G14对应的维度格的字段有:公司名称,基金类型,非公募各类分项目。
数值格G2和B17没有对应的维度格。
根据同序表采集规则,填报数据采集程序会自动将数值格对应的维度格字段名相同的视为同一对象,也可称为序表。而单值数据(维度格、数值格)将被拼到一个一行记录的序表中。
因此,此填报表被分成了3个序表,可通过设计器工具栏上的预览按钮查看填报表的采集结果,也就是序表划分结果。一个序表由公司名称,基金类型,基金代码,基金名称,基金份额(亿份),基金净值(亿元),基金数量(只)字段组成,如下图:
一个序表由公司名称,基金类型,非公募各类分项目,合约数,基金份额(亿份),基金净值(亿元),基金数量(只)字段组成
最后一个序表由统计日期和其它字段组成。
l 设置字段名称
G2字段名称设置为: a.统计日期,此片区域数据存取自对象a。对象可称为序表。
B17不用设置字段名称,程序会自动以其左边单元格中的内容作为字段名称。
C4字段名称设置为: b.基金代码,此片区域数据存取自对象b。
此片区域数值格D4-G8、维度格A4和B4没有设置字段名称属性,根据字段名采集规则,取其上同宽的普通格的内容作为其字段名。
C11字段名称设置为: c.非公募各类分项目,此片区域数据存取自对象c。
此片区域数值格D11-G14、维度格A4和B11没有设置字段名称属性,根据字段名采集规则,取其上同宽的普通格的内容作为其字段名。
此时采集结果使用对象名:
l 自动计算
编辑E9单元格的表达式为=sum(E4:E8)。
编辑F9单元格的表达式为=sum(F4:F8)。
编辑G9单元格的表达式为=sum(G4:G8)。
编辑E15单元格的表达式为=sum(E11:E14)。
编辑F15单元格的表达式为=sum(F11:F14)。
编辑G15单元格的表达式为=sum(G11:G14)。
编辑E16单元格的表达式为=E9+E15。
编辑F16单元格的表达式为=F9+F15。
编辑G16单元格的表达式为=G9+G15。
l 编辑风格
选中G2单元格,右键菜单选择【编辑风格】或单击主菜单中的【填报】à【编辑风格】,弹出“编辑风格”窗体,在“编辑风格”下拉框中选择“下拉日历”风格类型,如下图所示:
点击【设置】按钮,弹出下拉日历编辑对话框,如下图所示:
设置取值类型为年月。点击对话框中的【确定】按钮,回到“编辑风格”对话框,点击对话框中的【确定】按钮,则G2单元格的编辑风格就设置好了。效果如下图所示,在填报时统计日期就可以通过下拉日历框选择日期了。
第二步:填报表WEB预览
在设计器中打开10.5.sht后点击按钮启动服务器后,再点击WEB预览按钮,系统将自动跳转到浏览器展现填报表,浏览器预览效果如下图所示:
此时,结果文件不存在,所有初始值为空。输入新数据,然后点击提交按钮,系统会自动保存到结果文件中,并返回数据保存后的报表数据。
填报表WEB预览提交时会自动保存填报数据到结果文件,结果文件以“填报表文件名.json”命名,保存路径为报表设计器【填报】-【选项】-【文件】中设置的【应用资源路径】/autoDataFiles/目录下。没有设置【应用资源路径】时,保存路径为填报表当前位置/ autoDataFiles/目录下。如下图所示:
如果是独立部署的服务器,结果文件的保存路径为【web应用根目录】/WEB-INF/raqsoftConfig.xml中Input标签里设置的home目录。
第三步:设计统计表
当需要对同一张填报表不同的填报结果做统计汇总时可以使用统计表,例如对2020年第一季度每个月的公募基金的填报结果进行统计汇总,查看公募基金每个月的基金总份额,基金总净值和最大基金总净值。
打开润乾报表设计器,点击【文件】à【新建填报表】,创建填报表文件并命名为10.6.sht。文件内容和样式如下图:
其中,B4-D4的单元格类型为数值格。A4的单元格类型为维度格,字段名称为统计表.统计时间,表达式为 =["2020-01","2020-02","2020-03"]。
l 为统计表设置基准表
点击【填报】à【数据处理】,切换到【其他】页,如下图所示,选择该统计表对应的基准表,比如本例基准表为10.5.sht:
l 设置数据来源格
设置A4的数据来源格为:G2。表示A4单元格的数据来源于基准表10.5.sht中的G2单元格。
设置B4的数据来源格为:E4。表示B4单元格的数据来源于基准表10.5.sht中的E4单元格。
设置C4的数据来源格为:F4。表示C4单元格的数据来源于基准表10.5.sht中的F4单元格。
设置D4的数据来源格为:F4。表示D4单元格的数据来源于基准表10.5.sht中的F4单元格。并将统计方式改为最大。其他数值格缺省为求和。
统计分析的规则:
统计分析的规则是针对某个对象的某个字段的所有数据做统计汇总,这个字段来自数值格。如果是可扩展的网格或行式中的单元格,那么这个单元格就是一个可扩展的单元格。如果是非扩展的单元格,那仍然定位到单元格所指代的字段上,将会统计该字段中的所有数据,例如本例中的E4,表示对序表b中的基金份额(亿份)列中所有数据进行统计。
第四步:统计表WEB预览
统计表要统计的数据来源于同一基准表提交的多个不同的结果文件,在实际应用中后台程序员会根据业务需求实现自动保存为不同名字的结果文件。为了体验智能统计表功能,我们此处采用手动重命名的方式来模拟这个过程。
l 准备结果文件
在本例中,使用基准表10.5.sht填报3次,即2020年前3个月每月一次,每次填报结束重命名结果文件,这样保证每个月份的数据保存为一个结果文件。
本例基准表10.5.sht位于【安装目录】\report\web\webapps\demo\WEB-INF\reportFiles\Tutorial下, 10.5.sht在WEB预览提交时会自动将填报数据保存到【安装目录】\report\web\webapps\demo\WEB-INF\reportFiles\autoDataFiles下的10.5.json文件中。
将3次填报结果文件分别重命名为data1.json,data2.json,data3.json:
结果保存为data1.json
结果保存为data2.json
结果保存为data3.json
l 统计表WEB预览
使用showAggr.jsp浏览统计表。启动服务器,在浏览器地址栏中输入:
http://localhost:6868/demo/reportJsp/showAggr.jsp?sht=Tutorial/10.6.sht&dataFiles=autoDataFiles/data1.json;autoDataFiles/data2.json;autoDataFiles/data3.json进行预览。
WEB预览效果如下:
第五步:改变需求,修改填报表和统计表
现在改变下需求,对2020年第一季度每个月的所有基金的填报结果进行统计汇总,即查看公募基金和非公募基金每个月的基金总份额,基金总净值和基金总数量。那么就要采集10.5.sht中的E16、F16和G16,自动计算单元格为普通格时不会被程序采集,这就要求E16、 F16和G16必须设置成数值格。
l 修改填报表
打开填报表10.5.sht,设置E16-G16的单元格类型为数值格。
根据字段名采集规则,缺省E16、F16、G16会以其上同宽的普通格的内容作为其字段名,字段名不直观。因此我们将E16、F16、G16的字段名称分别设置为: 合计1、合计2、合计3,对应的自动计算单元格的数据会存取到对象a。
此时采集结果为:
l 修改统计表
修改10.6.sht,文件内容和样式如下图:
单元格A3,使用斜线属性,表达式为:时间,单位,数值
根据字段名采集规则,A4不设置字段名称时,默认会用普通格A3的内容“时间,单位,数值”作为字段名称,显然不合适,所以需要指定A4的字段名称。设置A4的字段名称为:t.统计时间
设置A4的数据来源格为:G2。表示A4单元格的数据来源于基准表10.5.sht中的G2单元格。
设置B4的数据来源格为:E16。表示B4单元格的数据来源于基准表10.5.sht中的E16单元格。
设置C4的数据来源格为:F16。表示C4单元格的数据来源于基准表10.5.sht中的F16单元格。
设置D4的数据来源格为:G16。表示D4单元格的数据来源于基准表10.5.sht中的G16单元格。
统计分析的规则:
统计分析的规则是针对某个对象的某个字段的所有数据做统计汇总,这个字段来自数值格。如果是可扩展的网格或行式的单元格,那么这个单元格就是一个可扩展的单元格。如果是非扩展的单元格,那仍然定位到单元格所指代的字段上,将会统计该字段中的所有数据,例如本例中的E16,表示对a序表中的合计1列中所有数据进行统计,a是单记录序表,因此统计表中只是展现基准表中的数据。
第六步:填报表WEB预览
使用之前的数据重新进行填报。虽然填报数据与前面的一样,但是表结构变了,c序表增加了3个字段,所以需重新填报。
结果保存为data1.json
结果保存为data2.json
结果保存为data3.json
第七步:统计表WEB预览
统计表预览结果为: