求助,这个函数错在哪里了,放到数据集的sql里没法使用

WHERE (CASE WHEN'${org_ tree}' IN ('0099','0199','0299','0399','0499')

THEN LEVEL_SCD_ORG_NO in('"+ REPLACE(${org tree} ,",",",")+"') ELSE ORG in ('${org_tree}') END)

535518e8cd68dda635168a6875e31f4.png

FineReport HmjijsbZ 发布于 2024-7-31 11:45
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-7-31 11:51

where 1=1

${if(find(org_tree,"0099,0199,0299,0399,0499")>0,"and LEVEL_SCD_ORG_NO in('"+ REPLACE(org_tree ,",","','")+"')","and  ORG in ('"+org_tree+"')")}

这样不行?

最佳回答
0
华莉星宸Lv7高级互助
发布于2024-7-31 11:53(编辑于 2024-7-31 11:55)

改成这样

WHERE 1=1

${if(inarray(org_tree,arrary('0099','0199','0299','0399','0499'))>0,"LEVEL_SCD_ORG_NO in ('"+ REPLACE(org_tree ,",","','")+"')"," ORG in ('"+org_tree+"')")}

最佳回答
0
JL98Lv6中级互助
发布于2024-7-31 11:53(编辑于 2024-8-1 09:54)

感觉放的有问题吧,你的下拉框返回值类型设置的什么

image.png

---------------------------------------------------------------------------------------------

WHERE (CASE WHEN  ('0099','0199','0299','0399','0499')IN ('"+ REPLACE(${org_tree} ,",","','")+"')

THEN LEVEL_SCD_ORG_NO in ('"+ REPLACE(${org_tree} ,",","','")+"') ELSE ORG in ('"+ REPLACE(${org_tree} ,",","','")+"') END)

image.png

  • HmjijsbZ HmjijsbZ(提问者) 大佬,您第二个是对的吗?我有点没看懂
    2024-08-01 09:44 
  • JL98 JL98 回复 HmjijsbZ(提问者) 主要是,你是要判断下拉复选框的值在不在 ('0099','0199','0299','0399','0499')里面,所以你in后面要放参数 又因为in后面的格式是 ('值1','值2'),所以要看你下拉框返回值类型是什么,如果是,就要用公式把他变一下,是','就不用处理
    2024-08-01 09:48 
  • JL98 JL98 回复 HmjijsbZ(提问者) 回答有更新,用最新的SQL,之前的REPLACE少单引号
    2024-08-01 09:54 
  • HmjijsbZ HmjijsbZ(提问者) 回复 JL98 老师,我用的是下拉树多选控件
    2024-08-01 11:38 
  • JL98 JL98 回复 HmjijsbZ(提问者) 那你要仔细看一下这个文档了,构建方式不一样,写法也不一样https://help.fanruan.com/finereport/doc-view-260.html
    2024-08-01 11:44 
  • 4关注人数
  • 179浏览人数
  • 最后回答于:2024-8-1 09:54
    请选择关闭问题的原因
    确定 取消
    返回顶部