在前面几篇文章中,我们学习了多种类型填报表的制作,对润乾报表的填报机制有了一定的了解。今天我们来研究一下如何制作固定格式填报表,同时检验下自己之前学习的内容是否已熟练掌握。

今天要学习的固定格式填报表效果图如下所示:

固定格式填报表的制作_第1张图片

    左侧为固定内容,蓝色部分是需要客户填写的内容,最后将整个页面数据更新到数据库表中。

这里的难点在于,如何把左侧固定内容也更新到数据库中,也就是如何设置单元格分区。

带着这个问题我们来看一下具体实现步骤:

第一步 新建填报表

编辑填报表内容和样式,如下图所示:

固定格式填报表的制作_第2张图片

一般这类报表会对应一个 excel 效果文件,我们可以通过“文件”–“打开填报”–选择对应 excel 文件,将 excel 导入到报表设计页面后稍作修改。

第二步 设置数据处理

脚本处理部分一般和业务需求有关,此示例需要根据不同参数值选取不同数据展现并根据参数值动态更新数据。

来源脚本内容如下图所示:

固定格式填报表的制作_第3张图片

    这里主要用到了 if 函数和 query 函数,if 函数用于动态条件判断,query 实现动态取数。

其中,A2:使用 if 函数判断 tbType 参数值是否为 0

      B3:当满足 if 条件时,按照 query 函数中的 sql 取数

B5:当不满足 if 条件时,按照 query 函数中的另外一条 sql 取数

去向脚本内容如下图所示:

固定格式填报表的制作_第4张图片

   上图的脚本配置很熟悉,有木有?没错,这里就是前面我们讲到的动态更新的内容。

其中,

A2:使用 if 函数判断 tbType 参数值是否为 0

B3:当满足条件时,通过 update 函数实现对 YJKFFYQKGJB 表数据的插入更新,即把 yffy 对象中的数据插入到 YJKFFYQKGJB 表中

B4:当不满足条件时,通过 update 函数实现对 YJKFFYQKGJB 表数据的修改更新

即把 yffy 对象和 yffy_old 对象的差异数据修改到 YJKFFYQKGJB 表中

A6:获取数据库操作过程中的异常信息

A7:如果 A6 获取到的异常信息为空,那么就提交入库,否则就执行事务回滚

第三步 配置单元格属性
固定格式填报表的制作_第5张图片

我们在第一步的基础上做以下设置:

1)把用户可以填报数据的单元格设置为数值格:本部金额所在列和下级企业汇总所在列的单元格

      研发经费情况和汇总金额也需要设置为数值格,便于对象字段数据识别

2)设置自动计算表达式:把需要进行求和计算的单元格配置 sum 表达式

      例如:sum(C5:C9) 表示求 C5 到 C9 单元格所有数据的和

3)“研发经费情况”对应为中文名称,数据库中需要同时存储 ID 列,所以我们需要插入一列,并将对应 ID 写上

4)将新增 ID 列设置为维度格,中文名称列设置为数值格,同时把每一行的字段名称配置下,保证填报分区正确。

固定格式填报表的制作_第6张图片

总结:

至此,一个简单的固定格式填报表就制作完成了。这里实现的难点在于报表单元格分区设置,还是不会怎么办?盘它,盘的多了,你会发现集算器脚本进行数据处理时的各种惊艳之处。

更多填报相关问题请查看:填报相关问题分类导航

填报表中如何添加 html 代码
报表数据填报中的合法性校验
报表数据填报中的自动计算
行式填报之主键设置