1. 概述编辑
1.1 版本
报表服务器版本 |
---|
10.0 |
1.2 功能简介
用户认证后会将报表三个固定的默认参数$fine_username、$fine_role、$fine_position保存在 Session 中,同时提供两个函数GETUSERDEPARTMENTS()、GETUSERJOBTITLES()来分别获取部门角色的部门和职位。
同一报表环境下,模板中可以直接以参数的形式获取到对应的值,然后在模板里面进行筛选判断就可显示不同数据及样式。
2. 参数介绍编辑
注1:模板挂载到平台的方法请参见:节点管理
注2:给用户分配权限请参见:根据用户分配权限示例
2.1 $fine_username
获取登录系统的用户名,例如登录用户名为 Anna,那么$fine_username=Anna
2.1.1 示例一
用户hanwen登录系统访问模板时只能看到自己的销量。
1)在 FineReport 设计器中点击文件>新建普通报表,新建数据库查询 ds1:
SELECT * FROM 销量 where 英文简称='${fine_username}'
2)模板设计如下图所示:
3)管理员将设计好的模板挂载到数据决策系统中,并将该模板的查看权限分配给hanwen,hanwen 登录数据决策系统访问模板时,模板自动筛选 hanwen 的信息。如下图所示:
2.1.2 示例二
${fine_username}参数可在「参数面板」中使用。
1)在 FineReport 设计器中点击文件>新建普通报表,新建数据库查询 ds1:
SELECT * FROM 销量 where 英文简称='${fine_username}'
2)模板设计如下图所示:
3)在参数面板中添加下拉框控件和查询控件。
选中下拉框控件,控件名称为fine_username,并设置数据字典。如下图所示:
4)点击分页预览,可通过销售员过滤数据。如下图所示:
2.2 $fine_role
获取登录系统的角色。若管理员用户登录,$fine_role=SUPERROLE;若角色用户登录,例如角色「数据架构师」用户登录,$fine_role=数据架构师;若部门角色登录,该参数为空,$fine_role 返回值为数组,使用concatenate($fine_role,"")即可将其转化为字符串。
注1:为用户添加角色或部门的方法请参见:用户管理
注2:若一个用户有多个角色,$fine_role 返回值为所有角色,例如:数据架构师,普通角色1
2.2.1 示例一
希望不同角色访问模板时,查看到的模板列数不同、行列颜色不同。可以给行列添加条件属性设置行高、列宽、背景等,如果登录系统用户为角色用户,可以在公式中通过$fine_role进行过滤,如果是部门职位用户,则不可使用该参数进行过滤。
注:条件属性具体内容可参见: 条件属性
1)在 FineReport 设计器中点击文件>新建普通报表,新建数据库查询 ds1:
SELECT * FROM 销量 where 英文简称='${fine_username}'
2)模板设计如下图所示:
3)若 hanwen 角色为「数据架构师」,希望 hanwen 登录平台访问模板时,不能查看销量列。则选中E2单元格,添加条件属性列宽,公式为$fine_role='数据架构师',如下图所示:
注:若一个用户有多个角色,公式为find('数据架构师',$fine_role)>0
4)管理员将设计好的模板挂载到数据决策系统中,并将该模板的查看权限分配给hanwen,hanwen 登录数据决策系统访问模板时,效果如下图所示:
2.2.2 示例二
若 hanwen 为部门职位用户,部门为销售部,职位为 sale,那么本文3.2.1节第三步骤中公式为:GETUSERDEPARTMENTS()='销售部'和GETUSERJOBTITLES()='sale',如下图所示:
2.3 $fine_position
获取部门职位。返回值由部门和职位组成,为 json 格式。
例如「人力资源部长」职位登录系统,那么$fine_position={"departments":"人力资源","jobTitle":"部长"}
2.4 GETUSERDEPARTMENTS()
获取部门职位里的部门。
例如「人力资源部长」职位登录系统,那么GETUSERDEPARTMENTS()=人力资源
若多个部门,则数组GETUSERDEPARTMENTS(3,2)返回角色该部门的第三层和第二层名字。若多个部门则返回数组,若没有第三层则只显示第二层。
2.5 GETUSERJOBTITLES()
获取部门职位里面的职位。
例如「人力资源部长」职位登录系统,那么GETUSERJOBTITLES()=部长
注1:$fine_username、$fine_role、$fine_position 为报表默认参数,调用时大小写必须保持一致。
注2:$fine_username、$fine_role、$fine_position 参数在 9.0 里分别对应 $fr_username、$fr_authority、$fr_userposition。