CPT模板の权限控制完整示例

时间:2024-04-09 11:28:53

1. 示例

 

 

下面我们以一个完整的示例来分别讲解上两节中介绍的权限细粒度控制的所有内容。

某一产品公司,在全国2个地区华东、华北都有办事处,每个办事处里都有区销售总经理和销售,销售有一个或多个,希望是实现第一个sheet显示各地区所有销售详细情况,第二个sheet是总销售情况,使每个地区的销售只能看到该地区与自己相关的数据,并且,普通销售对参数面板控件只有查看权限,没有编辑权限,销售经理可以看到当前地区所有销售员数据以及销售合计栏,公司总领导能看到所有sheet。

2. 前期准备2.1 模板设计

新建一张模板,新建数据集ds1:SELECT * FROM 销量,并输出成内置数据集,再打开输出的内置数据集cpt文件,为数据集新增一列用户名,如下图:
CPT模板の权限控制完整示例

如下图所示进行模板设计:
CPT模板の权限控制完整示例

CPT模板の权限控制完整示例

2.2 用户添加

FineReport数据决策系统里面的用户没有该模板中涉及到的销售员,故我们往数据决策系统中添加几个用户,华东地区添加2个孙林、张珊,华北地区添加1个王伟,并添加机构部门销售,该部门下面有三个职位:销售人员、销售经理和领导,其中孙林、张珊和王伟是销售人员,Anna是华北地区销售经理,Alice是华东地区销售经理,Lisa是领导,详细配置请查看手动添加用户,如下图:

CPT模板の权限控制完整示例

2.3 数据过滤

(1)参数面板设置

点击模板>模板参数,添加一个参数Product,同时在报表主体中切换到参数面板,将参数控件全部添加进来,控件类型选择下拉复选控件,数据字典设置如下图:
CPT模板の权限控制完整示例

(2)过滤条件添加

为报表主体添加两个过滤条件,第一个是产品类型所在字段,根据参数面板的Product参数过滤产品类型,公式为:if(len($Product) = 0, nofilter, $Product)
CPT模板の权限控制完整示例

第二个是地区所在单元格,使系统当前登录销售人员用户只能看到与之相关的数据,公式为:if(GETUSERJOBTITLES() = "销售人员", $fr_username, nofilter)。如下图:

CPT模板の权限控制完整示例
 

过滤条件中使用到了参数为空选择全部

(3)地区过滤

在上面描述中提到了华东地区经理只能看到华东地区数据,华北地区经理只能看到华北地区数据,故,我们为该字段添加过滤条件,实现权限控制,详情请查看权限细粒度之参数控制,公式为:if($fr_username = "Anna", "华北", if($fr_username = "Alice", "华东", nofilter))

如下图:
CPT模板の权限控制完整示例

已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\demo\Authority\产品销售情况查询.cpt

*$fr_username、$fr_authority、$fr_userposition参数在10.0里分别对应$fine_username、$fine_role、$fine_position,这3个参数都做了兼容

3. 权限编辑

点击模板>进入权限编辑进入权限编辑界面。

3.1 控件权限编辑

在示例描述中讲到,普通销售对参数面板控件只有查看权限,没有编辑权限,即销售人员对控件可见不可用,销售经理和领导即可见也可用,如下图:

CPT模板の权限控制完整示例

 

3.2 单元格内容权限编辑

销售人员只能看到自己数据的合计,即E6单元格里面的合计汇总数据,不能看到所有人员的合计数据,销售经理可以看到该地区的所有销售人员的所有合计数据,如下图,选择销售人员角色,选中汇总行中的单元格,设置其权限不可见:

CPT模板の权限控制完整示例

 

3.3 sheet权限控制

销售人员和销售经理只能看到销售详情这个sheet,而销售经理只可以看到总销售情况这个sheet,如下图:

CPT模板の权限控制完整示例

 

以同样的方式为销售经理和领导进行权限编辑。

4. 模板挂载在系统中

4.1 报表目录添加

在浏览器地址栏中输入http://localhost:8075/webroot/decision?op=fs?,用管理员或者有权限的普通用户登录系统,点击管理系统>目录管理,将上面的模板添加在FRTest目录下面,如下图:

CPT模板の权限控制完整示例

 

注:由于多sheet模板只有在填报预览或者数据分析的模式下才能显示多sheet,这里使用填报方式查看。

4.2 报表目录权限分配

添加完报表目录之后,点击权限管理>报表权限快捷配置,在左侧的目录框中选中FRTest目录下面的权限细粒度模板,选择右侧的部门职位,在职位列表下面勾选销售这个部门,即表示,销售下面的所有用户均拥有查看权限细粒度这个模板的权限,如下图:

CPT模板の权限控制完整示例

 

5. 效果查看

(1)销售人员

销售人员用户登录系统,我们这里使用华东地区的孙林和华北地区的张伟登录系统,点击FRTest>权限细粒度模板,效果如下图:
CPT模板の权限控制完整示例

CPT模板の权限控制完整示例

 

(2)销售经理

分别使用华东销售经理Alice和华北销售经理Anna登录系统,效果如下图:
CPT模板の权限控制完整示例

CPT模板の权限控制完整示例

(3)领导

使用Lisa账号登录系统,效果如下图:
CPT模板の权限控制完整示例