数据集中, 能根据帆软的角色, 执行不同的查询条件吗?

${if( user_account = '1109217' ,"","and createuseraccount = '" + user_account + "'")} 


IF判断条件里,不能用IN,后面也不能跟子查询,想根据帆软的角色, 执行不同的查询条件,如何实现?

FineReport hhf365 发布于 2019-3-15 13:33
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
hhf365Lv4见习互助
发布于2019-3-15 16:19

${if( inarray(user_account,

sql("xxx","select distinct U.username from finedb.dbo.FR_S_USER U ,finedb.dbo.FR_S_CustomRole_User R,finedb.dbo.FR_S_CUSTOMROLE R1 

WHERE R.Userid=U.ID AND R1.id =R.CustomRoleid AND R1.Rolename IN ('管理员权限')",1))>0

,"","and createuseraccount = '" + user_account + "'"   )}


最佳回答
0
FaintLv6中级互助
发布于2019-3-15 13:45

角色不就是个参数么,if函数判断角色,然后执行不同的语句不就好了

最佳回答
0
flyingsnakeLv6资深互助
发布于2019-3-15 13:47

可以直接使用if来判断的。

使用

image.png

这个函数,就可以

  • hhf365 hhf365(提问者) 不能用帆软内置的函数,因为我们不在帆软平台上查看报表,我们直接用H5集成到我们自己平台的
    2019-03-15 14:00 
  • flyingsnake flyingsnake 回复 hhf365(提问者) ${if( user_account = \'1109217\' ,\"\",\"and createuseraccount = \'\" + user_account + \"\'\")} ${if( user_account = \'88888\' ,\"\",\"and 另位的字段= \'\" + user_account + \"\'\")} ${if( user_account = \'9999\' ,\"\",\"and 其它条件也是一样的= \'\" + user_account + \"\'\")}
    2019-03-15 14:07 
最佳回答
0
zy_20180110Lv5中级互助
发布于2019-3-15 14:27

两种办法:

sql:

${if( 条件,true,if(条件,true,if(条件,true,if(条件,true,if(条件,true,false))))

)} 

在if里嵌套

过滤:

sql中不加if判断,在报表中找个字段,设置多种过滤条件


  • hhf365 hhf365(提问者) SQL:条件中,不能用in,只能=,而且不能用子查询。
    2019-03-15 14:31 
  • zy_20180110 zy_20180110 回复 hhf365(提问者) 这不是,这是=,而且也不是子查询。 if的公式是if(条件,为真时的参数,为假时的参数) 是将在【为假时的参数】这里再写一个if,再做一次判断。你有几个角色就做几次判断。
    2019-03-15 14:37 
  • 3关注人数
  • 1112浏览人数
  • 最后回答于:2019-3-15 16:19
    请选择关闭问题的原因
    确定 取消
    返回顶部