复杂业务填报多种多样,根据需求可任意组合行式填报表、自由格式填报表、网格填报表等。上一章节使用了网格式填报表和自由格式填报表组合成复杂业务填报表,适合数据数量固定的情况。这一章节我们再通过行式填报表结合自由填报表讲述下另一种复杂业务填报表的制作以及如何对结果数据进行统计汇总,适合数据数量不固定的情况。
比如某图书馆每年每季度都需要对该图书馆的基本情况,包括建筑面积、工作人员和图书情况等做统计,其中图书会有新增。统计信息如下:
其中空白格是每次填报需记录的数据,且每一年再做汇总分析。
因为图书馆基本信息中有几十个字段,所以使用自由格式填报表将信息分布在多行更方便。而图书数量不固定,可能有增删,故而使用行式填报表比较合适。该填报表由自由格式填报表和行式填报表组成,如下图所示:
每一年的汇总可使用统计表,如下图:
接下来,我们详细介绍如何制作和使用业务填报表以及统计表。
第一步:设计填报表
打开润乾报表设计器,点击【文件】à【新建填报表】,创建填报表文件并命名为10.7.sht,保存到【安装目录】\report\web\webapps\demo\WEB-INF\reportFiles\Tutorial下。文件内容和样式如下图:
l 设置单元格类型
设置I3、L3、B4、I4、A7-M7、C8、B12、B17、B11-M11的单元格类型为数值格。
根据同序表采集规则,填报数据采集程序会自动将单值数据拼到一个一行记录的序表中;如果连续的两行只有数值格,没有维度格和非空普通格并且左右没有合并格的会被当做自由增删行的行式表格。
因此,此填报表被分成了2个序表,可通过设计器工具栏上的预览按钮查看填报表的采集结果,即序表划分结果。一个由年份,季度,占地面积等字段组成,如下图:
一个由书籍名称,书籍编号,类别编号等字段组成:
点击右侧“旋转”按钮,系统自动调整字段展现方式,方便查看数据结构。
l 设置字段名称
设置I3的字段名称为:“图书馆基本情况.年份”
分别设置A7-M7和B11-M11的字段名为图书馆基本情况.其上普通格字段名,比如B11字段名称为:“图书馆基本情况.正式职工”
此片区域数据存取自对象图书馆基本情况。
设置A15的字段名称为:“图书信息表.书籍名称” ,此片区域数据存取自对象图书信息表。
根据字段名采集规则,数值格在没有设置字段名称属性时,针对扩展后表格,取上(左)同宽(高)的普通格的内容作为其字段名。因此L3,B4,I4,C8,B12,B17不用设置字段名称,程序会自动以其左边单元格中的内容作为字段名称,字段名称分别对应为 “季度”、“占地面积(㎡)”、“总藏量(万册)”、“从业人员(数量)” 、“对目前图书馆基本情况的规划与建议”和“对目前图书馆图书的规划与建议”。
此时采集结果使用对象名:
l 设置校验
设置B4、I4、A7-M7、C8、B11-M11,的数据类型为数值型。可实现根据所设置的数据类型属性,对录入信息数据类型的合法性立即校验。
单击菜单中的【填报】à【格间校验】,弹出格间校验对话框
点击“增加”按钮,在校验中增加校验表达式,如下图所示:
使用格间校验,可在填报提交时,根据校验表达式,实现合法性校验。
l 编辑风格
1. 选中L3单元格,右键菜单选择【编辑风格】或单击主菜单中的【填报】à【编辑风格】,弹出“编辑风格”窗体,在“编辑风格”下拉框中选择“下拉列表框”风格类型,如下图所示:
点击【设置】按钮,弹出下拉列表框编辑对话框,如下图所示:
点击“增加”按钮,编辑下拉列表框中的内容
编辑完成后点击【确定】按钮,回到“编辑风格”对话框,点击对话框中的【确定】按钮,则L3单元格的编辑风格就设置好了。效果如下图所示,在填报时季度就可以通过下拉列表框选择某一季度了。
2. 选中C15单元格,右键菜单选择【编辑风格】或单击主菜单中的【填报】à【编辑风格】,弹出“编辑风格”窗体,在“编辑风格”下拉框中选择“下拉列表框”风格类型,如下图所示:
点击【设置】按钮,弹出下拉列表框编辑对话框,如下图所示:
点击“增加”按钮,编辑下拉列表框中的内容
编辑完成后点击【确定】按钮,回到“编辑风格”对话框,点击对话框中的【确定】按钮,则C15单元格的编辑风格就设置好了。效果如下图所示,在填报时类别编号就可以通过下拉列表框选择某一类别编号了。
3. 选中F15单元格,右键菜单选择【编辑风格】或单击主菜单中的【填报】à【编辑风格】,弹出“编辑风格”窗体,在“编辑风格”下拉框中选择“复选框”风格类型,如下图所示:
点击【设置】按钮,弹出复选框编辑对话框,如下图所示:
点编辑复选框中的内容
编辑完成后点击【确定】按钮,回到“编辑风格”对话框,点击对话框中的【确定】按钮,则F15单元格的编辑风格就设置好了。效果如下图所示,在填报时是否借出就可以通过复选框标记图书是否借出了。
第二步:填报表WEB预览
在设计器中打开10.7.sht后点击按钮启动服务器后,再点击WEB预览按钮,系统将自动跳转到浏览器展现填报表,浏览器预览效果如下图所示:
此时,结果文件不存在,所有初始值为空。输入新数据,然后点击提交按钮,系统会自动保存到结果文件中,并返回数据保存后的报表数据。
填报表WEB预览提交时会自动保存填报数据到结果文件,结果文件以“填报表文件名.json”命名,保存路径为报表设计器【填报】-【选项】-【文件】中设置的【应用资源路径】/autoDataFiles/目录下。没有设置【应用资源路径】时,保存路径为填报表当前位置/ autoDataFiles/目录下。如下图所示:
如果是独立部署的服务器,结果文件的保存路径为【web应用根目录】/WEB-INF/raqsoftConfig.xml中Input标签里设置的home目录。
第三步:设计统计表
如果需要对同一张填报表不同的填报结果做统计汇总,那么我们可以使用统计表,例如对2020年的图书信息进行统计汇总,查看每个季度的书籍总数,书籍种类,以及书的最高价格等信息。
打开润乾报表设计器,点击【文件】à【新建填报表】,创建填报表文件并命名为10.8.sht。文件内容和样式如下图:
其中,B4-D4的单元格类型为数值格。A4的单元格类型为维度格,字段名称为统计表.季度,表达式为 =["第一季度","第二季度","第三季度","第四季度"]。
l 为统计表设置基准表
点击【填报】à【数据处理】,切换到【其他】页,如下图所示,选择该统计表对应的基准表,比如本例基准表为10.7.sht:
l 设置数据来源格
设置A4的数据来源格为:L3。表示A4单元格的数据来源于基准表10.7.sht中的L3单元格。
设置B4、C4的数据来源格为:I15。表示B4、C4单元格的数据来源于基准表10.7.sht中的I15单元格。修改C4的统计方式改为计数。
设置D4的数据来源格为:K15。表示D4单元格的数据来源于基准表10.7.sht中的K15单元格。修改D4的统计方式为最大。
统计分析的规则:
统计分析的规则是针对某个对象的某个字段的所有数据做统计汇总,这个字段来自数值格。如果是可扩展的网格或行式中的单元格,那么这个单元格就是一个可扩展的单元格,例如本例中的I15,表示对序表图书信息表中的库存总量列中所有数据进行统计。如果是非扩展的单元格,那仍然定位到单元格所指代的字段上,将会统计该字段中的所有数据。
第四步:统计表WEB预览
统计表要统计的数据来源于同一基准表提交的多个不同的结果文件,在实际应用中后台程序员会根据业务需求实现自动保存为不同名字的结果文件。为了体验智能统计表功能,我们此处采用手动重命名的方式来模拟这个过程。
l 准备结果文件
假如现在只有前两季度的数据,那么就使用基准表10.7.sht填报2次,将2020年前2个季度的每次填报结束的结果文件重命名,这样保证每个月份的数据保存为一个结果文件。
本例基准表10.7.sht位于【安装目录】\report\web\webapps\demo\WEB-INF\reportFiles\Tutorial下, 10.7.sht在WEB预览提交时会自动将填报数据保存到【安装目录】\report\web\webapps\demo\WEB-INF\reportFiles\autoDataFiles下的10.7.json文件中。
将2次填报结果文件分别重命名为data1.json,data2.json:
结果保存为data1.json
结果保存为data2.json
l 统计表WEB预览
使用showAggr.jsp浏览统计表。启动服务器,在浏览器地址栏中输入:
http://localhost:6868/demo/reportJsp/showAggr.jsp?sht=Tutorial/10.8.sht&dataFiles=autoDataFiles/data1.json;autoDataFiles/data2.json进行预览。
WEB预览效果如下: