当前位置:网站首页>Bi skills - permission axis
Bi skills - permission axis
2022-07-03 11:15:00 【Powerbi white tea】
BOSS:( Pull a long face ) What about white tea ?
colleagues :( Push... Push ) Wake up , White tea ,BOSS Call you !
White tea :( A face of meng ) Yo , Boss ?
BOSS:( A look of disdain ) White tea , There is a need. , Users need to be in the same chart , Indicators can be switched .
White tea : This has been done before , It's a dynamic indicator !
BOSS: Don't worry. , also , It's our different users , The roles are different , Whether different users can come in and see the coordinate axis of the chart varies from person to person ?
White tea : Permission axis ?
BOSS: Yes !
White tea :OK, Can do !
BI Report in practical application , Report permissions often need to be configured , for example RLS jurisdiction 、OLS jurisdiction 、 Page permissions, etc .
Actually , In addition to these three permissions , There is also a special permission requirement .
a sheet BI report form , There are many users , Different user roles are different . A lot of times , When users expect to open the report , According to your role , See the dimensions you need to observe .
So in PowerBI in , How to realize such requirements ?
Let's take a look at the case data in this issue :
There are five tables of case data .Date Date sheet ,Product Product list ,Store Store table ,Access Permissions on the table ,Sales Sales fact sheet .
from Access You can see in the permission table , We have three users , On behalf of the person in charge of the branch 、 Product owner 、 Market leader , We need to , According to different roles of users , Automatically fit the corresponding dimension coordinate axis .
Import data into PowerBI, The model relationship is shown in the figure below :
Attention, boys ,Access This table , There is no need to establish model relationships with other tables .
Build the metrics of the foundation :
sales volumes :
A. sales volumes =
SUM ( Fact_Sales[Quantity] )
Sales amount :
B. Sales amount =
SUMX ( 'Fact_Sales', [Quantity] * RELATED ( Dim_Product[Price] ) )
Build a dimension table for indicator switching :
Add dynamic switching metrics :
C.KPI =
IF ( SELECTEDVALUE ( Dim_KPI[Sort] ) = 1, [A. sales volumes ], [B. Sales amount ] )
Come here , Our preparations are over , Think about it , How to achieve the dynamic switching effect of permission axis in the next step .
Think about it
1
2
3
......
The permission dynamic axis needs to complete two conditions :
1. There needs to be a table containing all user demand dimensions ;
2. You need to configure the data permissions of dimension tables according to user permissions .
Build a dynamic analysis dimension table :
Create a new table , Enter the following code :
Dim_Analysis =
VAR Store =
SELECTCOLUMNS (
ADDCOLUMNS ( DISTINCT ( 'Dim_Store'[StoreName] ), "Analysis", "1" ),
"Analysis", [Analysis],
"Display", [StoreName]
)
VAR ProductName =
SELECTCOLUMNS (
ADDCOLUMNS ( DISTINCT ( 'Dim_Product'[ProductName] ), "Analysis", "2" ),
"Analysis", [Analysis],
"Display", [ProductName]
)
VAR City =
SELECTCOLUMNS (
ADDCOLUMNS ( DISTINCT ( 'Dim_Store'[City] ), "Analysis", "3" ),
"Analysis", [Analysis],
"Display", [City]
)
RETURN
UNION ( Store, ProductName, City )
give the result as follows :
This code , Equivalent to store 、 product 、 These three dimensions of the city are forcibly combined to generate a new table .
Add the following measures :
D.AnalysisKPI =
VAR Store =
TREATAS ( VALUES ( 'Dim_Analysis'[Display] ), 'Dim_Store'[StoreName] )
VAR ProductName =
TREATAS ( VALUES ( 'Dim_Analysis'[Display] ), 'Dim_Product'[ProductName] )
VAR City =
TREATAS ( VALUES ( 'Dim_Analysis'[Display] ), 'Dim_Store'[City] )
VAR Analysis =
SELECTEDVALUE ( 'Dim_Analysis'[Analysis] )
RETURN
SWITCH (
TRUE (),
Analysis = "1", CALCULATE ( [C.KPI], Store ),
Analysis = "2", CALCULATE ( [C.KPI], ProductName ),
Analysis = "3", CALCULATE ( [C.KPI], City ),
BLANK ()
)
The effect is as follows :
White tea hopes that the title can also be automatically adapted according to the user's permission .
Add the following code :
E.Title =
VAR T1 =
IF ( SELECTEDVALUE ( Dim_KPI[Sort] ) = 1, "Sales Volume", "Revenue" )
VAR T2 =
SELECTEDVALUE ( Dim_Analysis[Analysis] )
VAR T3 =
SWITCH (
TRUE (),
T2 = "1", "Store",
T2 = "2", "Product",
T2 = "3", "City",
"BaiCha"
)
RETURN
T1 & " Analysis By " & T3
Add user permission metrics :
The measurements are as follows :
F.Access =
VAR UserAccess =
CALCULATETABLE (
VALUES ( Dim_Access[ Line authority ] ),
'Dim_Access'[ mailbox ] = USERPRINCIPALNAME ()
)
VAR Access =
SELECTEDVALUE ( Dim_Analysis[Analysis] ) IN UserAccess
RETURN
Access
Under the modeling panel , Select the management role , Enter character “Access”, Enter the following code :
[F.Access]=True()
give the result as follows :
Beautify the report , The final display effect is shown in the figure below :
(BOSS:Nice!)
Demo Documents on the planet of knowledge .
This is white tea , One PowerBI Beginners .
边栏推荐
- CorelDRAW Graphics Suite 2022新版功能详情介绍
- Activity and fragment lifecycle
- Qt:qss custom qstatusbar instance
- Google Earth Engine(GEE)——当我们前后影像来弥补插值效果得时候,没有效果怎么办?
- 使用onvif协议操作设备
- 进程与线程
- 【obs】obs的ini格式的ConfigFile
- [proteus simulation] 16 channel water lamp composed of 74hc154 four wire to 12 wire decoder
- Probability theory: application of convolution in calculating moving average
- Have you learned the new technology to improve sales in 2021?
猜你喜欢
字节跳动大裁员,测试工程师差点遭团灭:大厂招人背后的套路,有多可怕?
Comment réaliser des tests automatisés pour les tests logiciels embarqués?
公司测试部门来了个00后卷王之王,老油条感叹真干不过,但是...
Balance between picture performance of unity mobile game performance optimization spectrum and GPU pressure
(二)进制
A simple method of adding dividing lines in recyclerview
Software testing e-commerce projects that can be written into your resume, don't you come in and get it?
Communication software development and Application
QT: QSS custom qtreeview instance
[true question of the Blue Bridge Cup trials 44] scratch eliminate the skeleton Legion children programming explanation of the true question of the Blue Bridge Cup trials
随机推荐
Cause: org. apache. ibatis. builder. Builderexception: error parsing SQL mapper configuration problem analysis
Solve the problem that pycharm Chinese input method does not follow
你真的需要自动化测试吗?
QT: QSS custom qtableview instance
Differences among norm, normalize and normalized in eigen
Comment réaliser des tests automatisés pour les tests logiciels embarqués?
Balance between picture performance of unity mobile game performance optimization spectrum and GPU pressure
I, a tester from a large factory, went to a state-owned enterprise with a 50% pay cut. I regret it
How can UI automated testing get out of trouble? How to embody the value?
Is pinduogai's sales safe in 2022?
【obs】封装obs实现采集的基础流程
线性表顺序表综合应用题P18
做软件测试三年,薪资不到20K,今天,我提出了辞职…
Lecture 1 number field
Oracle收回权限 & 创建角色
Ext file system mechanism principle
在腾讯云容器服务Node上执行 kubectl
Multiple IO transfer - preamble
项目管理精华读书笔记(七)
Qt:qss custom qpprogressbar instance