${if(len(bj)=0,""," and studentno in ('"+SUBSTITUTE(bj,",","','")+"')")}
如果参数bj为空,那么就不参与过滤,如果bj参数不为空,则substitute是将 , 替换成 ','
如果控件bj不为空,sql语句后面加上and studentno in ('控件bj的内容')
SUBSTITUTE(bj,",","','")的意思是把bj中的逗号换成',',形成 'a','b'之类的字符串
就是bj为空查询全部,bj不为空查询studentno in (bj)
如果参数bj为空(长度为0),则不拼接,反之拼接 and studentno in ('"+SUBSTITUTE(bj,",","','")+"')
SUBSTITUTE(bj,",","','"):将bj参数中的,替换为‘,’
就是参数为空和不为空的判断,参考下面文档
https://help.fanruan.com/finereport/doc-view-3258.html
这个写法主要是为了下拉树控件这种实现参数为空选择全部,没办法像下拉复选框一样设置分隔符,便用SUBSTITUTE来替换,用replace也是一样效果