御用导航提示提醒页面_PowerBI 个性化定制你的报告导航

御用导航提示提醒页面_PowerBI 个性化定制你的报告导航“页导航”是PowerBI在2020年5月的更新中一个非常关键的功能。我也写过一篇文章,如何在书签和页导航中进行选择:PowerBI中的书签和导航页,如何选择呢?而通过页导航的自定义参数链接可以实现给最终用户提供个性化定制的页面。那么问题来了,为什么要给最终用户提供个性化的页面呢?每一个终端用户,对于所想看到的页面是不同的,或者希望看到的报告风格是有差异的。你作为报告的设计者/Power…

大家好,又见面了,我是你们的朋友全栈君。

“页导航”是PowerBI在2020年5月的更新中一个非常关键的功能。我也写过一篇文章,如何在书签和页导航中进行选择:

PowerBI中的书签和导航页,如何选择呢?

而通过页导航的自定义参数链接可以实现给最终用户提供个性化定制的页面。

那么问题来了,为什么要给最终用户提供个性化的页面呢?

每一个终端用户,对于所想看到的页面是不同的,或者希望看到的报告风格是有差异的。你作为报告的设计者/PowerBI管理员,可能需要为每一个用户分别设置不同的报告。

一旦你要在报告中进行一些修改或者添加一些内容,你要么会修改大量的模型,要么会修改很多的报告。本身,要维护多个差不多相同的报告,就是一件很让人恼火的事情。

而对于最终用户来说,看到报告是为自己个性化定制的,一定是一件让人高兴愉快的事情。如果我是华北大区的负责人,当我打开报告时,显然想先看华北大区的销售分析。

其实依靠行级别筛选器,你完全可以做一个标准的报告,每个人登录后都只能看到自己地区的分析。但是在本案例中,我们期望的是,每一个大区的负责人都能够看到其他大区的数据。所以呢,不能使用行级别筛选器去筛选数据集。但是,我们还是要使用行级别安全筛选,当然,是在其他位置。

动态页面导航设置

想要实现不同人导航的页面不同,可以使用页面URL+用户ID匹配的方式来搞定。因为每一个页面在发布时都会被分配一个独一无二的ReportsSectionId,也就是URL链接,所以我们通过设置不同的用户ID去筛选不同的页面URL来实现个性化跳转。

4621a818fce5d82d8487e8850896a236.png

最终实现效果:不同的人看到的页面数量是不同的:

eed8b31e6d4b8e734810ba0d509569e9.png

不过,这种方式的可视化效果可以说比较差劲了,再就是还有一个最大的问题:它会弹出另一个全新的页面来打开这个URL。而要返回查看其他数据时,需要关闭新的页面。而今天要介绍的这个方法,完全避免了这个问题。

创建一个包含PageName的表,可以通过导入表的方式,也可以通过直接输入数据的方式:

7fd08a29d861f16343bf235bbb0c9de2.png

再写一个度量值:

Page Navigation Destination = SELECTEDVALUE( ReportPages[PageName] )

之后我们就可以用这个度量值去进行导航了。

创建动态页面导航

在上图这个表中,我不仅输入了包含PageName的信息,同时也包含Page Description和Short Text这两列信息,所以说,目的自然不仅仅是单一地导航,做戏要做全套的,页面描述和按钮显示自然都是要有的:

  • 定义动态页面导航显示文本

  • 定义动态页面鼠标悬停时的提示

  • 定义动态页面链接的目的地

再重复一次我们的目的,是要让每一个最终用户打开报告时,点击同一个报告的同一个按钮,但是到达的目的地页面是不同的。

以下按照步骤进行:

1.添加用户表,包含用户名和页面目标

我们需要根据登录用户的用户名来确定,他打开的页面具体导航到哪一个页面,所以我们需要一个包含用户名筛选的表。

47b1b70997250b6d715f8b68e2b9813e.png

2.对表模型创建关系

将以上两个表建立模型,注意双向一对多关系,并且在两个方向上启用安全筛选器。这个是成功的关键。慢慢品。

9f95ce65b2fc5b325673489994e37a35.png

而则两个表与其他的维度表或数据表之间都没有任何关联,因为我们不对数据集本身进行筛选,仅仅是对页面导航进行筛选。

3.添加行级别安全筛选器

有了UserPrincipalName这一列,筛选时就很简单了,只要读取用户账号去做筛选即可:

[UserPrincipalName] = UserPrincipalName()

e558ac9aa1a71770d27163e2c0d9db78.png

完成了这一步,通过用户账号就能判断它所代表的导航页面,那么点击时自然就会跳转到相应的页面了。

4.写几个度量值

前文说过,ReportPages表中有三列,所以我们要对该按钮实现三个功能:

  • 定义动态页面导航显示文本

Button Title = SELECTEDVALUE( ReportPages[Short Text] )

  • 定义动态页面鼠标悬停时的提示

Button Tooltip = SELECTEDVALUE( ReportPages[Page Description] )

  • 定义动态页面链接

Page Navigation Destination = SELECTEDVALUE( ReportPages[PageName] )

5.设置页面导航

以上三个度量值分别对应在三个不同的参数位置上:

按钮文本:点击fx选择button title:

c524adb61ae876d7691e5a21e2d970a9.png

操作:目标fx点击选择Page Navigation Destination:

0032babcccf633fe9661f868d93255d0.png

同样,工具提示点击fx选择Button Tooltip。不过工具提示有没有意义不大其实。有,稍微好看一点,没有,也不影响大局。

结果呈现:

由于我们是在本地进行呈现,本地的UserPrincipalName是计算机名,显然并不是用户账号,所以我们需要在建模中一角色身份查看,勾选其他用户和PageNavigation,然后输入一个账号:

fff7cc7e4c67a52a96c5d4c509deef2f.png

这样,报告就被筛选了特定的用户,用户再筛选page信息,这样Title、Tooltip和Destination就都被限定了唯一值,自然就可以导航了:

aaafafcdfb377e8d4e9476b6c6b149bf.png

导航目的页面:

e0a28f8b0cc32525e31808c2e10821fd.png

选择另一个账号试试:

64781bf877f5946c86a4d005e3699b2b.png

导航目的页面:

f9a273984e61d9b44c46e76ef9efc094.png

以上可以看出,不同的导航页面风格是不同的,适合最终用户的体验。

总个结:

通过以上的自定义动态页面导航,可以做到让每一个最终用户在点击同一个报告的同一个按钮,实现不同风格的页面跳转,让他们感觉,这报告就是完全为他们而设计,同时也符合不同用户的功能需要。

尤其是当你隐藏这些页面导航最终页面,只通过最开始的导航页进行跳转,整个报告会更加清晰整洁。

需要注意的一点是,以上方式看上去的确实现了不同用户只能看到特定的页面,而不能看到其他页面。但是,我们前文说过,每一个发布到云端的页面都会有独一无二的ReportSectionId,虽然你可能会将页面隐藏了,但是通过某些特定的算法,ReportSectionId,即你所隐藏的页面URL,是可以被计算出来的,尤其是当你学习了Power BI REST API之后,想看报告的隐藏页面还是so easy的。有时间后边写几篇。

个性化定制,需要开发者充分发挥自己的想象,来实现各式各样的功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138993.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BatchMD5Modify_4F-MDMB-BUTINACA

    BatchMD5Modify_4F-MDMB-BUTINACA写前bb最早是看了matlab的代码,搭了环境,demo也跑了,就再也没碰过了。之后想自己把测试和训练部分全部跑通,找了个用pytorch写的代码,看的过程中发现自己还是很多细节部分不是很清楚。虽然文章写的很一笔带过,但是看着代码会发现还是很多疑问的。代码地址:gayhub代码的requirements:UbuntuPython2.7(useAnaconda2.*here)…

    2022年9月28日
    0
  • 北京上网首选DNS服务器地址,北京最快的DNS服务器地址,北京DNS大全

    北京上网首选DNS服务器地址,北京最快的DNS服务器地址,北京DNS大全为了提高北京上网用户打开网页的速度,北京上网用户要选择适合北京网络的DNS,很多时候北京上网用户在家或者在办公室上网,经常发现能够上网,但很多的网站和网址打不开,报解析错误,这种情况往往是属于您的DNS使用不当,有时选北京电信联通推荐的DNS也会出现这种情况,具体选那个,之前最好去ping一下,看哪个延迟小一般情况下还是要选择北京电信联通移动的DNS。下面给您推荐在北京常用的DNS。北

    2022年6月4日
    92
  • Ubuntu卸载python3.6「建议收藏」

    Ubuntu卸载python3.6「建议收藏」注意:这里说一下,系统自带的python3.6可别乱删,这个是我自己下载的python3.6若你们有想卸载系统自带的python3.6,可千万别去卸载!一般会开机都开不起!安装多余的python3.6没有用,才使用下列命令卸载python3.6及其一些依赖软件包命令:sudoaptautoremovepython3.6…

    2022年5月30日
    153
  • WPF教程(二) WPF vs WinForms

    在前面的章节,我们讨论了WPF是什么,还涉及了一点点WinForms。在本章节,我将尝试比较两者,尽管它们服务的目的一样,却存在很多的区别。如果你以前从来没有接触过WinForms,或者WPF是你学习的第一种GUI框架,请跳过这一章节。但是如果你有兴趣的话,不妨尝试一读。先说说两者最重要的区别。WinForms只是标准窗体控件顶部的一层(如文本框),而WPF从零开始,几乎在所有场景下都不依赖于

    2022年4月9日
    42
  • pycharm卸载再安装_pycharm双击无法打开

    pycharm卸载再安装_pycharm双击无法打开今个发现原来下载的2017版的pycharm过期了,用一会就闪退,emmm。就想下一个新的进行迭代,结果安装好并重启了,软件就是打不开…方法一1.打开C:\Windows\System32;以管理员身份运行cmd.exe;2.在打开的cmd窗口中,输入netshwinsockreset,按回车键;3.重启电脑;博主使用这个方法后,双击后还是不行。随即用了方法二,如下:方法二只需要打开C:\Users\admin后面的admin换成你自己的当前用户名(如下图),然后把所

    2022年8月29日
    1
  • LoadRunner教程(1)-LoadRunner简介与安装

    LoadRunner教程(1)-LoadRunner简介与安装LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。下载及其安装过程参照如下,记住安装成英文…

    2022年5月23日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号