积木报表使用随笔(循环块问题解决)
-
背景:笔者所参加的项目使用积木报表生成一些需要打印的数据,使用数据报表配置好之后,发现单张打印可以,多张打印只能出现单张,遂排查
-
原始的查询SQL
select .......
from ......
where id in (${ids})
-
问题的表象
-
不设置循环块,可以打印出来单张的(传入多个id、传入单个id都是如此)
-
设置循环块,直接白屏,除了积木报表自带的功能按键之外不显示任何东西
-
-
排查过程
-
同项目的都使用上述的原始的SQL可以查询出来数据,怀疑是模板问题,重建模板之后发现问题仍然存在
-
使用F12查看show返回的内容,发现返回的数据list中只有一条数据,怀疑SQL问题
-
使用F12查看show返回的json字段,发现模板存在一些问题,调整模板
-
-
解决
-
在设计视图中修改模板
-
1、第一行第一列中的数据,不能填充第${xx.xx}的字段,不然生成的脚本在循环块中会有问题,导致无法渲染,解决办法:将内容显示拆开到多个相邻的表格中,进行格式调整后保存(如果保存没有,看第二点)
-
2、如果设置了循环块,直接进行修改、保存,是没有效果的,需要取消循环块,重新设置循环块才可以
-
-
修改SQL,不使用in了,怀疑积木在使用in的时候将一整段都认为是个字符串,导致在MySQL中只能查询出来第一个
-
select ******
from *****
-- 关键修改点
where FIND_IN_SET(id, ${detailIds}) > 0
浙公网安备 33010602011771号