finereport用户权限管控问题

finereport用户权限管控问题:有很多不同村镇用户,可以实现A村镇只可以看到报表中对应

A村镇的数据,B村镇登录看到的报表中只可以看到B村镇的数据?看到的报表样式是一致,但是

内容是只能各自看到自己的

FineReport 用户E5817013 发布于 2023-7-20 08:06
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
yoggaLv5见习互助
发布于2023-7-20 09:34

select distinct bu_code,bu_name from table1

where (

bu_code in

       (SELECT regexp_substr ((select bu_group

                                from table

                               where username = '${name}'), '[^,]+', 1, rownum)

          FROM dual

        connect BY rownum <=

                   length(regexp_replace

                          ((select bu_group

                             from table

                            where username = '${name}'), '[^,]', NULL)))

    or 1 = 1

   and (select count(bu_group) as num

          from table

         where username = '${name}') = 0

         )

        order by bu_code

  • 用户E5817013 用户E5817013(提问者) 谢谢,不过我看的不是很明白
    2023-07-21 09:31 
  • yogga yogga 回复 用户E5817013(提问者) 截图2是张权限信息配置表,在你的业务逻辑里只需要“用户名“、“村镇”信息即可,如果有一个人可查看多个村镇,就用逗号隔开 A村镇、B村镇。截图1是页面上要对筛选框做限制,不允许为空。sql语句是根据用户名查他对应可查看的村镇数据,分三步,你不懂可以问我
    2023-07-21 10:38 
  • 用户E5817013 用户E5817013(提问者) 回复 yogga 好的谢谢,我先研究熟悉一下,有不明白的再向你请教一下
    2023-07-21 10:41 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-7-20 08:17(编辑于 2023-7-20 08:22)

全都是,可以通过角色,部门,或者登陆的用户名进行判断

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

比如ds1数据集写条件

select * from 表名称

where 1=1

and user_name='${fine_username}'

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

/*fine_username是帆软系统的参数,它获取的登陆的用户名,如果你的表中有字段是存了用户名的而且和帆软的登陆用户名一样的话,那么直接这样限制就行了。出来的数据最后就是你要的*/

权限细粒度控制 - FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

权限细粒度模板内容控制 - FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

image.png

  • 4关注人数
  • 408浏览人数
  • 最后回答于:2023-7-20 09:34
    请选择关闭问题的原因
    确定 取消
    返回顶部