积木报表使用随笔(循环块问题解决)

  • 背景:笔者所参加的项目使用积木报表生成一些需要打印的数据,使用数据报表配置好之后,发现单张打印可以,多张打印只能出现单张,遂排查

  • 原始的查询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

posted on 2025-06-20 17:30  凋鱼  阅读(174)  评论(0)    收藏  举报

导航