1. 概述
1.1 应用场景
多 sheet 填报报表可以给每个 sheet 分别设置填报属性,将对应sheet数据提交到表中。如下图所示:
提交后两个 sheet 的数据分别写到不同的数据库表中,如下图所示:
1.2 设置方法
切换到每个 sheet 页,分别点击菜单栏模板>报表填报属性,添加内置 SQL 提交即可。
1.3 功能逻辑
1)支持 跨sheet数据联动,但是目前只支持部分公式,在计算公式多的情况下性能较差。
2)点击提交按钮时默认提交所有sheet,如果希望只提交当前 sheet,可以在提交按钮设置页面勾选「只提交当前sheet」来实现,如下图所示:
2. 示例
2.1 准备数据
1)首先新建 2 个数据集,ds1 用于 sheet1 中,ds2 用于 sheet2 中,SQL 语句如下:
ds1:SELECT * FROM 账单明细表
ds2:SELECT * FROM 账期
2)报表添加一个模板参数,命名为 ID,默认值为 ALFKI,如下图所示:
3)在参数面板给这个参数绑定控件,控件类型选择下拉框,数据字典设置为账单明细表中的客户ID字段,如下图所示:
2.2 准备sheet1
1)设计 sheet1 的表格,将 ds1 字段拖拽到对应单元格中,B2 和 E2 添加日期控件,C2 和 D2 添加文本控件,如下图所示:
2)双击 A2 单元格添加数据过滤,绑定模板参数,实现参数查询效果,如下图所示:
3)给 sheet1 设置填报属性,如下图所示:
2.3 准备sheet2
1)点击设计器左下角新增 sheet 按钮,新增一个 sheet2。
设计它的表格,将 ds2 字段拖拽到对应单元格,B2 添加文本框,如下图所示:
2)双击 A2 单元格添加数据过滤,绑定模板参数,实现参数查询效果,如下图所示:
3)给 sheet2 设置填报属性,如下图所示:
2.4 多sheet提交
保存报表,点击填报预览,参数面板选择一个客户ID,点击查询后,分别修改 sheet1 和 sheet2 的数据。
修改完数据后点击提交按钮,可以发现两个 sheet 的数据都入库了,效果见 1.1应用场景的演示图。
2.5 效果预览
PC 端预览效果见 1.1应用场景 的图示,支持移动端预览,效果如下图所示:
3. 模板下载
已完成模板参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiSheetReport\简单多sheet填报示例.cpt
点击下载模板:简单多sheet填报示例.cpt