请教bi单位级次维的过滤问题

10602
12

chenl 数据达人Lv4

发表于2018-8-31 10:43

悬赏1

已解决

楼主
案例场景:某汽车集团机构按如下级次:集团-区域-省-市-网点,集团下卖多个品牌的汽车,一个网点只卖一个品牌的汽车,如武汉市下有两个网点分别卖宝马和奔驰品牌的汽车,集团下有各品牌的总监即集团机构下有各品牌总监用户。
需求:现在各品牌总监用户登录bi后,只能看到他所管辖品牌的网点及数据,请问怎么实现?

最近看过此主题的会员

v笑向前走

jonie

最佳答案
chenl 发表于 2018-8-31 11:44
可能我的需求没描述清楚,我是想该品牌总监用户登录后,bi分析表的单位级次维里,过滤掉其他品牌网点的机构 ...

我们产品维表在过滤里面支持 函数获得指定的属性的值,item.getField("") ,PP为品牌字段
所以就是可以在维的节点过滤里面写   item.getField("") =login.user.pp
如果在用户拓展字段里面增加的PP,总监用户都维护了具体品牌,其他用户该拓展字段为空的话
则在维的节点过滤里面设置if(len(login.user.pp)=0,true,item.getField("") =login.user.pp)
12个回答

只看楼主

yangqh 数据老手Lv5

发表于2018-8-31 11:00

只看该作者

取消 关注该作者的回复

沙发

想确认以下几点:
1、总监用户是否都在“集团”这个机构节点下?
2、总监用户和所管辖品牌是否是一对多的关系?这个对应关系是否在数据库表中有维护?

卖火车的小火柴 亿信华辰高级工程师

发表于2018-8-31 11:18

只看该作者

取消 关注该作者的回复

板凳

主题表里有品牌字段吗?如果没有品牌字段,建议增加品牌字段,品牌字段关联品牌维表进行过滤。品牌维表的内容需要和品牌总监的id设置好关联。过滤的做法有两种:1.如果分析表不多,可以在分析表中通过过滤条件限制。 2.如果分析表比较多,可以在权限中设置。在权限中通过数据权限中编辑维过滤来实现。
以上是解决的思路,具体实现方案需要提供更详细的信息。

chenl 数据达人Lv4

发表于2018-8-31 11:31

只看该作者

取消 关注该作者的回复

地板

1.总监用户在集团机构下
2.总监用户只管一个品牌,比如宝马品牌总监只管宝马品牌的网点,在数据库中没对应关系,如果要加对应关系,加在哪些地方
3.主题表中没有品牌字段,但是可以关联其他主题表获取品牌字段。
另外,我提供一个思路,能否在用户加一个扩展品牌的字段,然后在机构维表中加个品牌扩展字段,这样通过什么方式关联过滤

大白 小试身手Lv3

发表于2018-8-31 11:36

只看该作者

取消 关注该作者的回复

5#

卖火车的小火柴 发表于 2018-8-31 11:18
主题表里有品牌字段吗?如果没有品牌字段,建议增加品牌字段,品牌字段关联品牌维表进行过滤。品牌维表的内 ...

卖火车的小火柴 亿信华辰高级工程师

发表于2018-8-31 11:40

只看该作者

取消 关注该作者的回复

6#

chenl 发表于 2018-8-31 11:31
1.总监用户在集团机构下
2.总监用户只管一个品牌,比如宝马品牌总监只管宝马品牌的网点,在数据库中没对应关 ...

你这个思路,试试用diminf函数写过滤条件看看能不能实现

大白 小试身手Lv3

发表于2018-8-31 11:41

只看该作者

取消 关注该作者的回复

7#

chenl 发表于 2018-8-31 11:31
1.总监用户在集团机构下
2.总监用户只管一个品牌,比如宝马品牌总监只管宝马品牌的网点,在数据库中没对应关 ...

你说的 两边同时增加拓展字段的方式可以实现,但是需要在每张分析表上都增加过滤条件。。
if(len( login.user.拓展字段)=0,true,diminf(“维表”,id,"品牌字段")= login.user.拓展字段)

chenl 数据达人Lv4

发表于2018-8-31 11:44

只看该作者

取消 关注该作者的回复

8#

本帖最后由 chenl 于 2018-8-31 11:55 编辑

可能我的需求没描述清楚,我是想该品牌总监用户登录后,bi分析表的单位级次维里,过滤掉其他品牌网点的机构,这样最后查询的数据自然是该所辖品牌网点的数据,现在问题是机构维表做的单位级次维里面包含了所有网点。对了,这里分析表需要必须用单位级次维,因为机构的里面的各级需要看自己所辖网点的数据,现在这个品牌有点尴尬,它不在机构级次里,因为品牌网点混杂在各级中,没法归到级次中

大白 小试身手Lv3

发表于2018-8-31 11:57

只看该作者

取消 关注该作者的回复

9#

chenl 发表于 2018-8-31 11:44
可能我的需求没描述清楚,我是想该品牌总监用户登录后,bi分析表的单位级次维里,过滤掉其他品牌网点的机构 ...

我们产品维表在过滤里面支持 函数获得指定的属性的值,item.getField("P") ,PP为品牌字段
所以就是可以在维的过滤里面写   item.getField("P") =login.user.pp
以上是思路

大白 小试身手Lv3

发表于2018-8-31 10:43

只看该作者

取消 关注该作者的回复

10#

chenl 发表于 2018-8-31 11:44
可能我的需求没描述清楚,我是想该品牌总监用户登录后,bi分析表的单位级次维里,过滤掉其他品牌网点的机构 ...

我们产品维表在过滤里面支持 函数获得指定的属性的值,item.getField("") ,PP为品牌字段
所以就是可以在维的节点过滤里面写   item.getField("") =login.user.pp
如果在用户拓展字段里面增加的PP,总监用户都维护了具体品牌,其他用户该拓展字段为空的话
则在维的节点过滤里面设置if(len(login.user.pp)=0,true,item.getField("") =login.user.pp)

chenl 数据达人Lv4

发表于2018-8-31 12:07

只看该作者

取消 关注该作者的回复

11#

大白 发表于 2018-8-31 12:03
我们产品维表在过滤里面支持 函数获得指定的属性的值,item.getField("") ,PP为品牌字段
所以就是可以 ...

感觉可行,谢谢大神,我试试

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号