数组函数怎么在数据集参数中嵌套使用

select c.companyname,c.city from  syscompany c

where 1=1

${if(indexofarray(GETUSERJOBTITLES(),1)== "店长",

" and c.companyname in ('"+ split(GETUSERDEPARTMENTS(3),",") + " ')","")}

 

GETUSERJOBTITLES()获取到的是兼职不同部门的多个相同的店长职务,用indexofarray获取到如果职务为“店长”,则部门只显示登录用户的所在的第三级部门,上面的语句需要怎么写,写了好多次都获取不到

以上是使用决策系统中的用户测试的,获取不到,请教各位大神,数据集要怎么写,我感觉思路是对的,可能就是格式不对

FineReport yzm906010 发布于 2022-7-26 11:16 (编辑于 2022-7-26 11:21)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-7-26 13:24

首先写在单元格中检查一下你的GETUSERDEPARTMENTS(3)返回是否有数据。如果有那么在sql数据集改一下这样看看是否可以?

where 1=1

${if(indexofarray(GETUSERJOBTITLES(),1)= "店长",

" and c.companyname in ('"+ REPLACE(GREPARRAY(GETUSERDEPARTMENTS(3),len(item)>0),",","','") + " ')","")}

  • yzm906010 yzm906010(提问者) GETUSERDEPARTMENTS(3) 应该是有两个值的,用replace嵌套的这个只获取到了第一个值
    2022-07-26 13:40 
  • CD20160914 CD20160914 回复 yzm906010(提问者) 你单元格先取出来看它是什么。。。先在单元格展示。我在单元格测试是没有问题的
    2022-07-26 13:41 
  • yzm906010 yzm906010(提问者) 回复 CD20160914 单元格里没法测试吧,我都是把模板改好放到决策系统里那样查的,如果直接用GETUSERDEPARTMENTS(3) 的话,是直接在下拉框中并排显示两个值,点开下拉框的时候不显示
    2022-07-26 13:51 
  • CD20160914 CD20160914 回复 yzm906010(提问者) 你放在单元格。。发布到决策系统看它获取的值是什么呀
    2022-07-26 14:11 
最佳回答
0
snrtuemcLv8专家互助
发布于2022-7-26 11:18(编辑于 2022-7-26 11:27)

这个要获取到,需要决策系统才可以

直接预览获取不到的

=======

select c.companyname,c.city from  syscompany c

where 1=1

${if(indexofarray(GETUSERJOBTITLES(),1)== "店长",

" and c.companyname in ('"+ repalce(split(GETUSERDEPARTMENTS(3),","),",","','") + " ')","")}

  • snrtuemc snrtuemc 回复 yzm906010(提问者) 你的这样用in有问题,看修改答案
    2022-07-26 11:26 
  • yzm906010 yzm906010(提问者) 回复 snrtuemc 还是获取不到
    2022-07-26 13:10 
  • 3关注人数
  • 478浏览人数
  • 最后回答于:2022-7-26 13:26
    请选择关闭问题的原因
    确定 取消
    返回顶部