对下拉树控件做了数据过滤,当为空时但还是查询了所有组织,当未选择组织时,如何获取已过滤的组织呢

image.png如图所示:

现在对下拉树的组织进行了过滤,如果选择组织能够实现预定功能,但是如果不选择组织,依然查询了所有组织的数据,并非只查询过滤后的这个组织,如何实现在不选择组织的情况下只查询下拉树中过滤后的组织数据呢,“”中的判断添加如何写呢?

${if(len(dept)==0,“”," and did in ("+"'"+treelayer(dept, true, "\',\'")+"'"+")")}

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

${if(len(dept)==0,value("下拉树控件数据集",1)," and did in ("+"'"+treelayer(dept, true, "\',\'")+"'"+")")}

为空用value函数对应字段

  • 用户e2379142 用户e2379142(提问者) 下拉树控件数据集 这里是写sql()函数吗
    2025-03-05 11:44 
  • snrtuemc snrtuemc 回复 用户e2379142(提问者) 不用sql()函数再取一次,直接value()函数取已经查询的数据集数据就可以,更加快,Value函数 https://help.fanruan.com/finereport/doc-view-853.html
    2025-03-05 11:45 
  • 用户e2379142 用户e2379142(提问者) 回复 snrtuemc 你好,请问value能在sql语句使用吗,我进行了改写,did in value里面的值,不选就没有数据返回
    ${if(len(dept)==0," and did in ('" + value("org",7) + "')"," and did in ("+"'"+treelayer(dept, true, "\',\'")+"'"+")")}
    2025-03-05 14:04 
  • snrtuemc snrtuemc 回复 用户e2379142(提问者) 知道了,in的话要',' 分隔,把逗号替换成',',你在加函数,这个写法
    ${if(len(dept)==0," and did in ('" + replace(value("org",7),",","','") + "')"," and did in ("+"'"+treelayer(dept, true, "\',\'")+"'"+")")}
    2025-03-05 14:10 
  • 用户e2379142 用户e2379142(提问者) 回复 snrtuemc 我看了一下debug日志,value("org",7)这里是空,value()函数好像不能在sql语句里面使用,如果将value函数写在单元格里面,倒是能获取到ID值
    2025-03-05 14:35 
最佳回答
0
华莉星宸Lv7资深互助
发布于2025-3-5 11:35

你的写法没问题

你的需求不对吧

image.png

  • 用户e2379142 用户e2379142(提问者) 现在遇到的问题是,组织树的根据用户名实现了组织过滤,但是不选择组织查询的时候还是把所有组织都查询出来了
    2025-03-05 11:43 
  • 华莉星宸 华莉星宸 回复 用户e2379142(提问者) ${if(len(dept)==0,"and 1=2"," and did in ("+"'"+treelayer(dept, true, "\',\'")+"'"+")")}
    2025-03-05 11:48 
  • 用户e2379142 用户e2379142(提问者) 回复 华莉星宸 你好,设置and 1=2 时,就没有数据返回了,实际还是需要有数据返回的
    2025-03-05 11:51 
  • 华莉星宸 华莉星宸 回复 用户e2379142(提问者) 那你不选组织的时候 用的是另外一个参数?
    2025-03-05 11:53 
  • 用户e2379142 用户e2379142(提问者) 回复 华莉星宸 不选组织,就默认使用过滤后的组织,说简单一点,获取过滤后的组织值,传给in使用
    2025-03-05 14:05 
最佳回答
0
CovidLv3高级互助
发布于2025-3-5 11:36

${if(len(dept)==0,“ and did in ('${sql("连接名","你下树的SQL",1)}')”," and did in ("+"'"+treelayer(dept, true, "\',\'")+"'"+")")}

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

  • 3关注人数
  • 69浏览人数
  • 最后回答于:2025-3-5 11:36
    请选择关闭问题的原因
    确定 取消
    返回顶部