永洪社区

标题: 报表需求源源不断?手把手教你提升报表通用性 [打印本页]

作者: 寻找新技能    时间: 2021-5-28 10:48
标题: 报表需求源源不断?手把手教你提升报表通用性
什么是数据行级别的权限过滤?通常,我们拿来制作报表的数据是一张记录了大量数据的长表,这类表中有明显的指标分类,例如省份、大区等,如何用同一张报表,针对不同的用户展示其对应分类的指标数据,这就是我们要实现的数据行级别权限控制。
数据行级别的权限控制,使报表的通用性获得提升,减少业务人员的工作量,增加数据展示的灵活性。下面我们来详细解析数据行级别权限控制的简单应用场景。
01 案例解析
场景:
某企业在各大省份均有分公司,业务人员根据全国销售数据制作了一张季度销售分析报表,期望各省份用户仅能查看对应省份销售数据,对此,我们可以使用“行过滤”功能来实现这类行级别的权限控制,下面我们来简单讲解行权限控制的实现方法。
实现方案:
a、新建一个“用户-省份”对应关系数据集:


b、在此数据集上编辑行过滤,在弹出框中设置行过滤:用户是 等于 [?{_USER_}],保存数据集:


c、打开准备好的全国销售数据,例如数据集“咖啡中国市场销售数据”:


d、在数据集“咖啡中国市场销售数据”中创建参数“权限”,可选值选数据集“权限过滤”,标签和值选择“省份”,不勾选弹出:


e、在数据集“咖啡中国市场销售数据”中添加行过滤:省份是 其中一个 [?{权限}]:


f、进入制作报告,打开报告“北京/报表1”,创建表1,绑定数据集“咖啡中国市场销售数据”上的“省份”等列:


g、用户“北京1”登录,进入查看报告,打开报告“北京/报表1”,查看过滤效果:只显示省份为北京的数据。如下图所示:


02 案例扩展
以上我们讲到简单的“用户-分类”结构的权限控制,深层次挖掘行级别权限控制的使用场景,我们针对“用户层级”结构的数据,也能通过行过滤的方案来实现权限控制,场景如下:
现某企业销售部门有张业务员销售表,数据表结构如下所示
业务员
销售额
User01
200
User02
100
User03
150
User04
130



企业销售部门的人员结构如下:
大区负责人
省份负责人
普通业务员
User01
User01
User01
User01
User01
User02
User01
User03
User03
User01
User03
User04



报表开发人员使用“业务员销售数据”制作了一张“业务员销售分析报表”,期望通过行级别数据权限控制,实现如下效果:
普通业务员只能看到自己的销售数据;
省份负责人可以看到所属省份所有业务员的销售数据;
大区负责人可以看到所属大区所有业务员的销售数据。

分析思路:
1.找出业务员所在最高层级
2.找出业务员对应的最底层所有user
3.用步骤2找到的user用于“业务员销售数据集”的行过滤,筛选出最终数据。
03 结语
数据行级别的权限控制,大大提升了数据展示的灵活性,但是针对复杂场景,需要我们具备足够的sql基础和分析能力。






欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4