帆软报表权限控制

帆软报表权限控制FineReport报表通过权限控制数据访问方案问题:实际应用环境中,不同角色的人可能对数据具有不同的访问权限,通过直接在SQL语句中筛选出需要的数据制作模板可以解决该需求,但对于角色较多的情况,就需要制作很多张样式相同只是数据集不同的报表,不利于后期的维护并且加大了报表制作的工作量。方案:针对该问题,在FineReport报表工具中,可以利用SQL参数配合参数处理器再结合权限以完成…

大家好,欢迎来到IT知识分享网。

FineReport报表通过权限控制数据访问方案

问题:实际应用环境中,不同角色的人可能对数据具有不同的访问权限,通过直接在SQL语句中筛选出需要的数据制作模板可以解决该需求,但对于角色较多的情况,就需要制作很多张样式相同只是数据集不同的报表,不利于后期的维护并且加大了报表制作的工作量。

 

方案:针对该问题,在FineReport报表工具中,可以利用SQL参数配合参数处理器再结合权限以完成该需求。使用该方案只需要制作一张表样,利用SQL中的参数进行动态过滤达到该目的。下面具体描述该方案的实施过程。

第一步:数据准备
这里使用的是DEMO数据,主要为了演示该方案的操作,具体使用的时候需要根据具体的数据情况进行调整:

表:datas

ID DATA ROLE
1 100 0
2 200 0
3 300 0
4 400 0
5 500 0
6 600 0
7 700 0
8 800 0

ID:编号
DATA:数据
ROLE:可查看角色编码

表:roles

ID ROLENANME ROLE
1 总裁 0
2 总经理 1
3 部门经理 2
4 销售人员 3

ID:编号
ROLENAME:角色名称
ROLE:角色编码

第二步:制作报表模板

  1. 新建一张报表模板,报表数据集中新建一个“数据库查询数据集”,名称为:datas,SQL语句写成“select * from datas where ROLE>=[?ROLE?]”
  2. 拖拽新建的报表数据集datas的数据列至报表中,如下图所示:finereport报表数据集

     

  3. 新建一个服务器数据字典,用于进行角色名称与角色编码的转换,因为这里是演示用,就直接将数据写死了,使用自定义的服务器数据字典,用户可以根据具体的情况使用数据库查询数据字典来定义,关键点是要将“角色名”设置为key,“角色编码”设置为value。因为在应用的过程中,一个用户的角色是通过角色名来定义的,而对数据的访问控制是通过角色编码来控制的,这里需要一个值转换的过程。如果角色名与角色编码一致则可以不经过下列步骤的设置。
    数据字典的名称为:roles_map。finereport报表数据字典

     

  4. 设置参数处理器,选择菜单中的“报表”-“参数处理器”,定义先前SQL语句中定义的参数“ROLE”的参数处理器,这里采用公式类型,用于将角色名处理为角色编码,公式为:“MAP($ROLE,”roles_map”)”如下图所示:finereport报表参数设置

     

  5. 保存模板文件即可。
  6. 用户在集成应用的时候,需要在系统登录后设置当前登录的用户的角色,或者使用FineReport报表工具自带的权限管理系统。如果采用FineReport自带的权限管理系统,上述SQL语句中的ROLE参数可使用FR_ROLE_NAME来替代,该参数是FineReport权限系统中的默认登录角色参数名。具体登录角色设置方式请参见FineReport权限集成帮助文档或咨询FineReport报表服务人员。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21162.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信