润乾报表 V2018 填报需求:从一个物理表取数,回填到两个物理表

如下图所示,需要从表 1 取数,然后将数据更新到表 1 的同时,按照特定条件更新表 2
imagepng

解决方法:
本示例使用 mysql 数据库,表 1 对应 ceshi1 表,表 2 对应 ceshi 表
如果 ceshi1 表中的 tijiao 字段的值是 1,那么把对应该条记录的 shuzhi 字段的值更新到 ceshi 表中的 shuju 字段
填报表示例文件:
ceshi.zip

其中,
ceshi 表结构如下:

imagepng

ceshi1 表结构如下:

imagepng

此需求实现的难点在于去向脚本的编写,吧表 2 要更新的数据取出来,下面来具体看下报制作和脚本编辑,示例中建立的是行式填报(其实是懒,行式填报有向导可以直接生成,只需要去修改下数据处理部分的脚本就可以)
1 报表设计

imagepng

此步骤,可以通过文件—新建行式填报,使用向导直接生成

2. 数据处理
来源脚本:

imagepng
去向脚本:

imagepng
其中,
对象 2 为表 2 需要更新的数据,然后我们再配置 update 函数对表 2(ceshi 表)进行更新入库,这里对表 2(ceshi 表)只进行修改更新处理,所以指定了更新方式为 @u,而表 1(ceshi1 表)则没有指定更新方式,进行智能更新。

3. 效果预览
将填报表文件放到 reportFiles 目录下,通过 URL:http://localhost:6868/demo/reportJsp/showInput.jsp?sht=csehi.sht
访问后数据结果页面如下图所示:

imagepng
我们修改 tijiao 字段的值,并添加一行数据:

imagepng

最后,我们分别查看下 ceshi 表和 ceshi1 表的更新结果:

imagepng

imagepng
测试结果正确,需求完成。