麻烦请问这个参数的设置是什么意思呀

${if(len(bj)=0,""," and studentno in ('"+SUBSTITUTE(bj,",","','")+"')")} 

FineReport 用户F2134031 发布于 2021-4-1 11:10
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
2
唱跳rap全能选手Lv7中级互助
发布于2021-4-1 11:13

如果参数bj为空,那么就不参与过滤,如果bj参数不为空,则substitute是将 , 替换成 ','

最佳回答
1
烟尘Lv6高级互助
发布于2021-4-1 11:13(编辑于 2021-4-1 11:17)

如果控件bj不为空,sql语句后面加上and studentno in ('控件bj的内容')

SUBSTITUTE(bj,",","','")的意思是把bj中的逗号换成',',形成 'a','b'之类的字符串

就是bj为空查询全部,bj不为空查询studentno in (bj)

最佳回答
1
Z4u3z1Lv6专家互助
发布于2021-4-1 11:13

如果参数bj为空(长度为0),则不拼接,反之拼接 and studentno in ('"+SUBSTITUTE(bj,",","','")+"')

SUBSTITUTE(bj,",","','"):将bj参数中的,替换为‘,’

最佳回答
0
名字都是浮云Lv4见习互助
发布于2021-4-1 11:17

就是参数为空和不为空的判断,参考下面文档

https://help.fanruan.com/finereport/doc-view-3258.html

最佳回答
0
圣体叶小凡Lv6高级互助
发布于2021-4-1 11:33

这个写法主要是为了下拉树控件这种实现参数为空选择全部,没办法像下拉复选框一样设置分隔符,便用SUBSTITUTE来替换,用replace也是一样效果

  • 5关注人数
  • 464浏览人数
  • 最后回答于:2021-4-1 11:33
    请选择关闭问题的原因
    确定 取消
    返回顶部