1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 预期效果
管理员在使用定时调度推送报表时,希望部分用户可以查看全部表内容,部分用户不可查看指定列。
销售部员工和用户 eoco 登录数据决策系统,看不到「折扣」列。
其他用户,如技术支持员工 Alice 登录数据决策系统,能看到全部报表内容。
1.3 实现思路
1)利用条件属性和权限细粒度参数来实现不同用户看到不同的报表内容。
设置条件属性中,行高/列宽为 0。
若是限制账号,则 $fine_username = "用户名"。
若是限制部门,则 GETUSERDEPARTMENTS() = "部门名称"。
2)使用上述$fine_username、GETUSERDEPARTMENTS()等参数时,需要勾选定时任务中的「除通用结果外,根据默认用户组内的用户单独生成结果」设置项,才能将单独生成的结果报表推送给不同用户。
2. 设计模板
管理员需要先准备一张模板,作为调度对象发送到用户的数据决策系统消息通知处。
点击下载模板:条件属性实现列权限控制.cpt
2.1 数据准备
新建一张普通报表。
新建数据集 ds1:SELECT * FROM S订单明细。如下图所示:
2.2 设计报表
模板样式如下图所示:
2.3 设置条件属性
选中 F2 单元格,点击右侧「条件属性」,新增一个条件属性。
1)设置属性「列=0毫米」
2)设置两个公式条件,条件间为「or」关系
GETUSERDEPARTMENTS() = "销售部"
$fine_username = "eoco"
3. 设置定时调度任务
3.1 添加任务
管理员登录数据决策系统,点击「管理系统>定时调度>任务管理」,点击「添加任务」,添加一个定时调度任务。如下图所示:
3.2 基本设置
1)「任务名称」设置为「订单通知」。
2)点击「默认用户组」的「编辑」按钮。部门选择「销售部、财务部、技术支持」,点击确定。
注1:如需勾选「除通用结果外,根据默认用户组内的用户单独生成结果」设置项,必须设置默认用户组,否则该选项会灰化无法勾选。
注2:如需使用平台通知,必须要设置默认用户组,否则消息无法发送给任何人。
如下图所示:
确认部门处已选定「所有部门:技术支持,销售部,财务部; 」,点击「确定」,默认用户组设置完成。点击「下一步」,如下图所示:
3.3 调度对象
1)对象类型选择:报表模板
2)选择模板:条件属性实现列权限控制.cpt
3)勾选「除通用结果外,根据默认用户组内的用户单独生成结果」设置项,才会为「默认用户组」里面的所有成员生成独立的报表结果
4)文件名称设置:${today()}订单概况
点击「下一步」,如下图所示:
3.4 调度周期
执行频率选择「明细频率设置」,点击「添加」。
设置执行时间为「18时0分」,执行日为「每日」,执行月为「全选」,点击「确定」,即可成功添加明细频率。
勾选上一步添加的明细频率。
3.5 文件处理
1)处理方式勾选「平台通知」。
2)在「平台通知」设置中:
收件人为:「默认用户组」
主题为:${today()}的订单概况
内容为:今天订单概况请查收。
链接选择:「定时结果链接在平台内打开」
点击「保存」,如下图所示:
3.6 效果预览
由于该任务的执行频率是每天晚上 18 时执行一次,无法立刻看到任务效果。
为了立刻看到任务效果,可在「管理系统>定时调度>任务管理」界面找到该任务,选择「执行一次」。
当任务执行一次后,部门「销售部」对应的用户 Lisa(Lisa,123456)和「财务部」对应的用户 eoco(eoco,123456) 登录数据决策系统,收到来自定时调度任务的新消息提醒。
点击「处理」,查看对应的结果报表,无「折扣」列。如下图所示:
其他部门的用户,如「技术支持」对应的用户 Alice(Alice,123456)登录数据决策系统,收到来自定时调度任务的新消息提醒。
点击「处理」,查看对应的结果报表,有「折扣」列。如下图所示: