在BI的报表开发中,经常会遇到这样的需求,不同层次的用户需要通过行级别的控制来展现数据给最终用户。比方说,一个上海的销售经理,一个南京的销售经理,他们只能看到各自地区的数据。那在BO如何实现这样的需求呢?在这里我介绍第一种方法:.结合数据库表和BO的变量设置
首先,需要在源数据库中定义一个权限控制mapping表,维护好用户.组和你要控制的数据之间得有个Mapping 的关系; 比方Employee,然后针对每个用户需要访问的行特征输入对应的关系。比方根据city来控制数据显示,那可以设置成这样
Eployee City
1 all city
2 shanghai
3 nanjing
...
其次,在对象的属性where选框中,加入过滤条件,比方说
geo.city=employee.city and
employee.employee=@varibale('BO_USER');
当用户在webi中使用city作为分析维度时,webi就会根据用户登录的名字和db的名字匹配,然后展现数据。试一下吧。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/647161/viewspace-775441/
,如需转载,请注明出处,否则将追究法律责任。