求问:下拉框联动的时候,怎么让上一级为空的时候,下一级不做查询显示为空?



select sub.name from subject sub 

left join class c on c.subject_id = sub.id

where

c.external_name like "%${B2}%"

group by sub.name


FineReport Zero丶zero 发布于 2020-10-27 15:57 (编辑于 2020-10-27 16:12)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
snrtuemcLv8专家互助
发布于2020-10-27 15:59(编辑于 2020-10-27 16:22)

参考填报下拉框联动-https://help.fanruan.com/finereport/doc-view-608.html


用到like的话,直接改成


select sub.name from subject sub 

left join class c on c.subject_id = sub.id

where  ${if(len(B2)=0,"1=2","c.external_name like '%"+B2+"%'")}

group by sub.name


  • Zero丶zero Zero丶zero(提问者) ${if(len(B2)=0,\"and 1 = 2\",\"select sub.name from subject sub left join class c on c.subject_id = sub.id where c.external_name like \'%${B2}%\' group by sub.name\")} 非法公式诶
    2020-10-27 16:19 
  • snrtuemc snrtuemc 回复 Zero丶zero(提问者) 按我的写法,直接在sql数据集中处理
    2020-10-27 16:22 
  • Zero丶zero Zero丶zero(提问者) 回复 snrtuemc 1=2 有什么讲究吗?还是单纯的只是做一个false处理?
    2020-10-27 16:25 
  • snrtuemc snrtuemc 回复 Zero丶zero(提问者) 1=2表示查出空结果,这样不就符合你B2没有数据,下拉为空了吗
    2020-10-27 16:28 
  • Zero丶zero Zero丶zero(提问者) 回复 snrtuemc 感谢大佬
    2020-10-27 16:30 
最佳回答
1
沉默的反补Lv6中级互助
发布于2020-10-27 15:59(编辑于 2020-10-27 16:02)

联动上了的话本来二级就会为空啊,你一级没填二级还有数据显示是有问题的,模板放上来一下

数据字典sql的条件写成where name = '${name}' 这种格式,不要用where 1=1

  • Zero丶zero Zero丶zero(提问者) 我使用的是like匹配,不是用的\'=\',用\'=\'就是对了的,like的时候单独下拉第二级的时候显示的是所有。我想用like诶,该怎么写哦
    2020-10-27 16:03 
  • 沉默的反补 沉默的反补 回复 Zero丶zero(提问者) 你用in就行了,,你都做了二级下拉框了用like模糊查询意义不大
    2020-10-27 16:04 
  • 沉默的反补 沉默的反补 回复 Zero丶zero(提问者) 你把where 1=1改成where name = \'${name}\'这种格式啊,where 1=1表示的是如果为空则查出所有数据
    2020-10-27 16:08 
最佳回答
1
ColdmanLv6高级互助
发布于2020-10-27 16:01

你肯定联动控件的数据字典里面写了${if(),"","and xxx=xxx"}

把这个去掉,直接写and xxx=xxx

  • Zero丶zero Zero丶zero(提问者) 字典里面没有加公式哦,我是在数据查询集里面指定的单元格,通过上一级单元格的内容作为下一级单元格的条件
    2020-10-27 16:05 
  • Coldman Coldman 回复 Zero丶zero(提问者) 你二级下拉框控件的数据集SQL贴出来看看
    2020-10-27 16:09 
  • Zero丶zero Zero丶zero(提问者) 回复 Coldman 二级的发上来了
    2020-10-27 16:12 
  • Zero丶zero Zero丶zero(提问者) 回复 Coldman 我是不是该直接用 = ,不用like?
    2020-10-27 16:14 
  • Coldman Coldman 回复 Zero丶zero(提问者) 你用like 当为空的时候是全部匹配的。。你既然用了下拉框,数据应该是来自数据库的可以用=
    2020-10-27 16:24 
  • 4关注人数
  • 343浏览人数
  • 最后回答于:2020-10-27 16:22
    请选择关闭问题的原因
    确定 取消
    返回顶部