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

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

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

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

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

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

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

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

动态页面导航设置

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

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

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

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

再写一个度量值:

Page Navigation Destination = SELECTEDVALUE( ReportPages[PageName] )

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

创建动态页面导航

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

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

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

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

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

以下按照步骤进行:

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

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

2.对表模型创建关系

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

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

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

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

[UserPrincipalName] = UserPrincipalName()

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

4.写几个度量值

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

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

Button Title = SELECTEDVALUE( ReportPages[Short Text] )

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

Button Tooltip = SELECTEDVALUE( ReportPages[Page Description] )

  • 定义动态页面链接

Page Navigation Destination = SELECTEDVALUE( ReportPages[PageName] )

5.设置页面导航

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

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

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

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

结果呈现:

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

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

导航目的页面:

选择另一个账号试试:

导航目的页面:

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

总个结:

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

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

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

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

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

  1. 御用导航提示提醒_四维图新推出商用车专用导航“货车通”

    导航软件已经成为人们生活中不可或缺的一部分,它能帮助我们能更精准.更省时的规划路线,然而,对于商用车司机来说,更多的行车限制让现有的手机软件远远无法满足商用车的导航需求. 近日,四维图新发布了一款专为 ...

  2. 御用导航提示提醒_汽车导航,离线和在线哪个好用?两者的区别分析

    最早之前,开车要是不认识路,就需要下车找人询问,复杂的道路往往问了一次又一次才能找到.现在不认识路已经不是问题了,汽车上的导航都很准确,你完全没去过的地方跟着导航就能轻松找到.不过不知道大家注意到没有 ...

  3. 御用导航提示提醒_又现神操作!广西两车主开车走楼梯,车主:导航让我走的!...

    大家有没有被导航坑坏的经历? 近日 柳州市某小区内 有两辆小轿车跟着导航走 结果都开到了同一楼梯处 卡在了同样的地方...... 2月12日上午,在柳州市柳江区柳西新城小区,一司机开车跟着导航走,结果 ...

  4. Php数组面包屑导航,PHP 导航提示(面包屑型轨迹)

    导航提示(面包屑型轨迹)为Web用户提供了方便.直观的导航帮助,将用户的当前位置分解为一个超链接路径提供当前文档中网站中相对位置的总揽.总体来说,更加优于浏览器本身提供的导航工具,而且能够补充甚至替代 ...

  5. 御用导航提示页面_UI网站导航设计知识与五个知识案例

    导航设计是网站的基石.它确定了至关重要的指标,例如转化率和跳出率,页面停留时间,点击量,并且通常是决定您的访问者拥有良好体验并以比您所说的"用户流量"更快退出网站的决定性因素. 但 ...

  6. 原来早就被安排了,旅行社用机器学习给你推个性化定制游

    大家好,我是为人造的智能操碎了心的智能禅师. 全文大约1700字.读完可能需要好几首下面这首歌的时间 ? 还有两天就是国庆长假了,这两天的天气也是格外的好.上班路过一个大厦,顺手拍了一张? 艳阳高照, ...

  7. hexo中matery主题的个性化定制

    前言 上一篇讲了使用hexo初步搭建了一个个人博客,接下来说一下如何使用matery主题以及如何根据自己的想法进行个性化定制,效果展示金哥哥的个人博客.我会把我踩过的坑以及解决方法一一说明.基础的可以 ...

  8. 想要导航提示直接进入_北斗导航已开始提供全球服务,你的手机怎样连接北斗?...

    如果你是新朋友,请点击上方的蓝色字 关注 "高科技爱好者",保证不会让你失望的. 自从北斗导航全球组网成功后,开始向全球提供导航服务,关于北斗导航的话题就没有断过,最常听到的两个话 ...

  9. 知乎页面颜色个性化修改

    知乎页面颜色个性化修改 代码: /** *知乎页面颜色个性化修改 *知乎样式太素,阅读时,寻找功能按钮需要付出一些精力成本. *故试做修改,目的不在美观, *而在于高亮显示功能按钮,放大正文字号便于使 ...

  10. U盘图标更改 简单三步教你个性化定制U盘图标!自定义修改你的U盘

    U盘图标 教你个性化定制U盘图标! 先看看效果图 一.首先 1. 在U盘的根目录中创建一个TXT文本文件 (U盘的根目录也就是刚打开U盘的那个目录界面) 文档中输入代码: [autorun] ICON ...

最新文章

  1. 把数据自动填入exe的输入框_2000余字长文讲解Excel中的“数据验证”,我收藏了...
  2. Udacity并行计算课程笔记-The GPU Hardware and Parallel Communication Patterns
  3. asp.net HttpHand和HttpModule的详细解释,包括Asp.Net对Http请求的处理流程。
  4. 轮换html有虚宽出现,乒乓球理论考试复习资料
  5. Http中的同步请求和异步请求
  6. FTP使用外部数据源
  7. [vijos1162]波浪数
  8. 声网:疫情期间日均通话分钟数较日常增长近一倍 达15.6亿分钟
  9. creating server tcp listening socket 127.0.0.1:6379: bind No error
  10. 利用Python进行数据分析--数据加载、存储与文件格式
  11. Arthas 实战,助你解决同名类依赖冲突问题
  12. android lottie字体json,Android Lottie集成及基本用法
  13. 扇贝编程python是干嘛的-扇贝新推出的python课程值得买吗?
  14. 微软亚洲研究院20年20人
  15. 测试人员的绩效考核指标
  16. tf.train.Saver()
  17. vue项目 报错 Extra semicolon (semi)
  18. 聚焦“芯”产业,搭建“芯”桥梁——清微智能出席AIIA2020年度AI芯片交流会
  19. 图灵机器人 mysql_如何在微信小程序中制作图灵机器人?
  20. 【Android面试(1),阿里巴巴安卓面试题答案

热门文章

  1. 72张三国历史演变地图
  2. 如何用U盘安装Windows操作系统
  3. indesign怎么查找拼音_indesign拼音插件下载-Indesign拼音排版 免费版 - 河东下载站...
  4. python cnn模型_字符级CNN分类模型的实现
  5. 【软件测试-实验-8】测试管理工具应用
  6. 华为、中兴嵌入式(C)笔试题
  7. 阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...
  8. php怎么弄钓鱼,php 最新qq钓鱼空间php源码 需要修改数据库连接 WEB(ASP,PHP,...) 247万源代码下载- www.pudn.com...
  9. Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/
  10. MYSQL 使用case when 完成对业务枚举的查询出参