FineReport多选框

finereport多选框单选时数据正常,全选无数据,

数据集里有改image.pngimage.png

FineReport yzm287862 发布于 2023-12-14 11:12 (编辑于 2023-12-14 11:29)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6专家互助
发布于2023-12-14 11:14(编辑于 2023-12-14 11:16)

image.png

数据集

select * from a  where zd in ('${cs}')

  • yzm287862 yzm287862(提问者) 不报错了,但全选时无数据
    2023-12-14 11:20 
  • 用户k6280494 用户k6280494 回复 yzm287862(提问者) 你数据集要改啊
    2023-12-14 11:21 
  • 用户k6280494 用户k6280494 回复 yzm287862(提问者) https://help.fanruan.com/finereport/doc-view-2395.html 参考文档
    2023-12-14 11:21 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-12-14 11:15

这个

sql中改成

 

where 1=1

${if(len(控件)=0,""," and 字段 in ('"+控件+"')")}

控件设置

image.png

  • yzm287862 yzm287862(提问者) 不报错了,但全选时无数据
    2023-12-14 11:20 
  • snrtuemc snrtuemc 回复 yzm287862(提问者) 你全选是单独,全选两个字码?
    2023-12-14 11:21 
  • yzm287862 yzm287862(提问者) 回复 snrtuemc 点全选那一项
    2023-12-14 11:29 
  • snrtuemc snrtuemc 回复 yzm287862(提问者) 这个目前看sql语句,是没有问题的,设置哪边看看是不是英文状态下的引号和逗号
    2023-12-14 11:33 
最佳回答
0
GGGGGGGGGLv5初级互助
发布于2023-12-14 11:31(编辑于 2023-12-14 12:01)

检查一下,SQL防注入这里有没把','给转义或拦截了

或者把多选框的返回值改成数组,然后在数据集里加上分隔符,例如

select * from 表名

where 1=1

${if(len(a)>0, "", "and 字段 IN ('" +joinarray(a,"','")+ "')")}

  • yzm287862 yzm287862(提问者) 这边是公司统一设置的,没有权限看这个
    2023-12-14 11:34 
  • GGGGGGGGG GGGGGGGGG 回复 yzm287862(提问者) 也可以这样检验,打开数据集,输入参数 广东省\',\'吉林省 ,然后点击 \"查看执行SQL\",粘贴出来,看看IN括号里的格式有没有\',\'隔开,实在不行就把下拉框的返回值改成数组,在数据集里用joinarray公式把\',\'作为分隔符转化一下
    2023-12-14 11:58 
  • 3关注人数
  • 969浏览人数
  • 最后回答于:2023-12-14 12:01
    请选择关闭问题的原因
    确定 取消
    返回顶部