数据集权限问题

B1字段为权限划分:用户权限为0,可以看到B1包含0的数据,权限为2,可以看到B1包含2的数据等等。

角色有多个:

select B1

from Revenue

where B1=$fine_role //角色1,角色2

SQL怎么改能成立

image.png

FineReport 帆软用户Dcu3auzqkx 发布于 2025-8-22 15:00 (编辑于 2025-8-22 16:02)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2025-8-22 15:03(编辑于 2025-8-22 15:23)

直接在单元格的行中去实际吧

假如BI字段放在B列,然后你B2写条件属性隐藏行

sum(MAPARRAY(SPLIT($$$,","),if(INARRAY(item,$fine_role)>0,1,)))=0

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

BI列中的权限如果为   1 3 5   用户的角色为3 那么这一行不会隐藏,如果用户的角色为  4和2 那么这一行的数据会隐藏起来

image.png

为了让你看到效果,我放在单元格中写公式,你看效果就知道了

image.png

image.png

里面固定写下权限的值为37与1的时候,你看它有三行的结果为1,那么证明都要显示的,只有一行为0那么不会显示,要隐藏的!!

sum(MAPARRAY(SPLIT(b2,","),if(INARRAY(item,[37,1])>0,1,)))

 你生产上的公式还是要用我最上面条件属性写的,因为下面这个只是让你验证看一下效果而已

image.png

  • 帆软用户Dcu3auzqkx 帆软用户Dcu3auzqkx(提问者) 下面还有sum汇总值,隐藏单元格还会被计算
    2025-08-22 15:10 
  • CD20160914 CD20160914 回复 帆软用户Dcu3auzqkx(提问者) 你不管,你直接测试就知道了,我汇总是对权限有多少个,只要有一个都算的!所以是对应的每一行的!
    2025-08-22 15:11 
  • CD20160914 CD20160914 回复 帆软用户Dcu3auzqkx(提问者) 这个是用在条件属性中,不会放在单元格里面的,它并不会参数你其它汇总的求和的,假如你把字段BI列放在B2单元格开始扩展,你就在B2中添加条件属性的,按我写的公式就行了,获取角色是要用户必须登陆才可以测试的,不然测试不了的!
    2025-08-22 15:12 
  • 帆软用户Dcu3auzqkx 帆软用户Dcu3auzqkx(提问者) 回复 CD20160914 我求和方式放在问题里了,你再看下,我用的是数据列求和或则是sum单元格
    2025-08-22 16:03 
最佳回答
0
华莉星宸Lv7专家互助
发布于2025-8-22 15:04

参考这个格式

where 1=1
 ${if(len(fine_role)==0,""," and 字段 in ('"+JOINARRAY(fine_role,"','")+"')")}

  • 3关注人数
  • 80浏览人数
  • 最后回答于:2025-8-22 16:02
    请选择关闭问题的原因
    确定 取消
    返回顶部