165 pbi-utils 使用文档

news2025/7/19 6:20:04

165 pbi-utils 使用文档

一、背景

先来说一下为什么会有 pbi-utils 这个小工具吧。在我日常做演示的示例文件的时候,每次都要重新搞一次 Power BI Desktop,就想能不能像 PPT 模板那样,搞一个模板,然后更专心的去专注内容本身呢?一段时间来,我其实也是用的这种方式,自己存有一份示例模板,这样每次另存一份就 ok 了。

直到有一天我要做关于 Power BI 行级别安全性 (Row-level security,简称 RLS) 的示例的时候,发现用这样模板另存就没办法去适配不同的业务模型了。

于是开始思考,是否能把这种 RLS 抽象出来,同时能把兼具模板,最好还能兼具到页面权限,还能一键生成那该多好。这就是 pbi-utils 最初设想,但面对 Power BI 要去操控数据模型目前可以是用 Tabular Editor(https://tabulareditor.github.io/),但是没法操控新建页面等。这个是事情也就搁置了。

直到有一天在 sqlbi(https://www.sqlbi.com/) 上看到了一个名叫 pbi-tools(https://pbi.tools/) 的工具,pbi-tools 可以完全把 pbix 文件完成拆解成模型(model)和报告(report),这就可以二次开发了。于是便有了 pbi-utils 这个小工具。

在此特别感谢 @mthierba(pbi-tools作者)。

在 pbi-utils 中使用了 pbi-tools 一部分功能,更多功能大家有兴趣去 pbi-tools 主页看看,这是一个非常棒的工具。

pbi-utils 整体框架如下:

框架

二、pbi-utils下载及安装

  • 下载地址-github:https://github.com/jiaopengzi/pbi-utils/releases

  • 下载地址-gitee(国内用户):https://gitee.com/jiaopengzi/pbi-utils/releases

  • 下载地址-网盘:https://pan.baidu.com/s/1wMi0GbRA23YvRBjpZcwWFg?pwd=jiao

  • pbi-utils-portable-x.x.x.x.zip 便携式,zip 文件解压后找到 pbi-utils.exe 即可使用。

  • pbi-utils-setup-x.x.x.x.exe 安装文件,双击安装即可使用。

  • 支持的 pbix 文件需要是 Power BI Desktop 版本: 2022年10月+ ,操作系统: win10+ 。

首页界面

首页

三、自动生成pbit

在做使用文档前,我们先说一下我的基本思路。说来也比较简单,就是通过单独的 json 配置文件,把我们需要的一些配置单独解耦出来。我通过操作配置文件即可完成 Power BI 调整需求。

1、示例文件说明

先来交代一下,我们一般拿到的都是业务数据,创建基础的报告模型壳子就可以加个 pbi-utils。

依然使用之前分享给大家的 demo 数据(https://jiaopengzi.com/1435.html)

我们拿到的是一个只导入了业务数据,没有报告页面的 pbix 文件。

165-1

2、初始化

首先我们需要对我们 pbix 文件进行 json 配置文件初始化。

内容页数规则:只能是 1-99 的整数,如果需要多个二级分类,则使用英文半角逗号分开;其它内容无法输入。

165-2

下图所示,我们以为 C:/desktop/demo/demo.pbix 为业务模板,内容页数:3,4 表示我们需要两个二级分类的页面导航,同时第一个分类内容页数为3页,第二个分类的内容页数为4页。

当然还有一个页面 URL 名称是否使用随机值,这目的其实是为了伪页面权限准备的,在视频中我们再介绍。

点击初始化后即可得到我们 json 配置文件C:/desktop/demo/demo.json

165-3

3、模板度量值

在 模板度量值 下选择前面初始化的C:/desktop/demo/demo.json文件即可看到模板度量值。

165-4

  • 我把我常用的一些模板度量值做成了模板给到大家。当然这些都可以自定义,当你每一次保存的时候,下次初始化的时候就将使用你保存过的模板度量值作为模板。所以大家可以根据自己需要增减。

  • 如果我们前面的 pbix 模板中有度量值了的话,请不要和这里的度量值重名。

  • 度量值类别中我们增加了一个 报表刷新时间,如果启用勾选去掉,则是按照自动刷新时间来显示,打上勾则是按照赋值的内容显示。

  • 图片 URL 兼容 图片的 URL 链接和 SVG 格式。

  • 可以通过右键进行 删除、编辑和多行输入;多行输入字段间使用 | 分割,多行用换行。

  • 记得修改以后要保存。

165-5

4、页面编辑

在 页面编辑 下选择前面初始化的C:/desktop/demo/demo.json文件即可看到页面配置文件。

这里的页面的属性,是使用我的给大家的模板,在使用的时候,只要保存后,以后初始化的时候则会使用自己的模板,非常的人性。

页面编辑是没有新增和删除的,所以是在我们前面做报告规划的时候就需要考虑清楚的,只能通过初始化来确认页面的数量和分级。

165-6

Ⅰ、字段说明

  • ID: 页面的索引从 0 开始,不能编辑。

  • url名称: 页面名称,在 Power BI 服务中 url 中的使用;名称不能重复。

  • 显示名称: Power BI 页面的显示名称。

  • 页面视图: 页面视图 1 调整到页面大小 , 2 适应宽度 , 3 实际大小。

  • 页面高度: 正整数。

  • 页面宽度: 正整数。

  • 页面垂直对齐: 分选项为:‘Top’, ‘Middle’ ;注意单引号的保留。

  • 页面隐藏属性: 0 为不隐藏, 1 隐藏。

  • 页面标题文字: 页面标题文字。

  • 页面标题文字颜色: 使用16进制颜色,加上透明度,末尾两位00表示完全透明,FF完全不透明。

  • 页面标题背景颜色: 使用16进制颜色,加上透明度,末尾两位00表示完全透明,FF完全不透明。

  • 导航按钮名称: 导航按钮名称(选择窗格中查看)。

  • 导航按钮页面中显示名称: 导航按钮页面中显示内容。

  • 导航按钮文字颜色-有权限: 使用16进制颜色,加上透明度,末尾两位00表示完全透明,FF完全不透明。

  • 导航按钮文字颜色-无权限: 使用16进制颜色,加上透明度,末尾两位00表示完全透明,FF完全不透明。

  • 导航按钮背景颜色-有权限: 使用16进制颜色,加上透明度,末尾两位00表示完全透明,FF完全不透明。

  • 导航按钮背景颜色-无权限: 使用16进制颜色,加上透明度,末尾两位00表示完全透明,FF完全不透明。

  • 导航按钮鼠标放上去的工具提示-有权限: 导航按钮鼠标放上去的工具提示文字-有权限。

  • 导航按钮鼠标放上去的工具提示-有权限: 导航按钮鼠标放上去的工具提示文字-有权限。

  • 备注: 备注说明,可以留空。

Ⅱ、页面层级导航示意图

Home
└─Navigation
	├─NoPermission
	├─A00
  	│  ├─A01
  	│  ├─A02
  	│  ├─...
  	│  └─A99
  	├─B00
  	│  ├─B01
  	│  ├─B02
  	│  ├─...
  	│  └─B99
  	├─...
  	└─Z00
		├─Z01
      	├─Z02
      	├─...
      	└─Z99

  • Home:首页,建议名称保留不变

  • Navigation:总导航页,导航至第二层导航页,即:A00-Z00,A至Z表示分类,理论上有26个分类,数字使用两个零表示,如果内容页只有一个分类的话则默认只有 Navigation 一个导航页。

  • 内容页:A01…A99, B01…B99 … Z01…Z99;分类用字母表示,内容页从 01 至 99,理论上每个分类可以有 99 个页面,加上分类可以得到 26 * 100= 2600内容页面,基本能满足 Power BI 各种层级导航需求了。当然初始化后,这些名称都是可以根据业务需求自定义的。

  • NoPermission:无权限提示页,用户无权限的时候跳转的页面。

5、权限类别初始化

权限类别初始化主要是针对 RLS 。如果没有 RLS 需求的则可以跳过当前设置。

在 权限类别初始化 页面选择前面初始化的C:/desktop/demo/demo.json文件即可看到权限类别初始化页面。

165-7

当前是没有任何的 RLS 配置,如果需要则按照下列配置填写保存即可。

  • rls名称:即你需要添加的 rls 规则的度量值名称,字母下划线和数字的组合输入其它无效,不能与 pbix 中原有度量值重名。

  • 表格:表格会通过前面我们的初始化获得对应表格的名称。

  • 字段:当表格更新后,即可获得表格对应的字段。

  • 字段值:字段值是当前字段所有的取值,目的是类别初始化后备用。

  • 添加 RLS 规则

    165-8

6、权限表编辑

在 权限表编辑 页面选择前面初始化的C:/desktop/demo/demo.json文件即可看到权限表编辑页面。

165-9

  • 默认情况下,会根据用户所在电脑的账户生成一条对应本机用户权限。

  • 权限包括 页面序号 和 RLS 权限,RLS 权限则是我们前面使用权限类别初始化的数据。

  • 一个用户名称会有正常的 Power BI 帐号,同时在本机上也需要对应的账户名称来支持本地用户的权限。

  • 通过右键编辑

    • Power BI 帐号增加一个;

    • 页面权限 保留:1,2,3,4,5,6,7;

    • 大区ID 保留:1,2,3,4;

    • 产品分类 保留:A类,B类,C类。

165-10

当然也可以通过新增按钮增加更多的帐号配置,记得保存。

7、编译生成pbit

在 编译生成pbit 页面,到了这里,基本上我们的配置就做好了,可以生成我们需要的页面了。

  • 选择我们的 pbix 模板。
  • 选择我们已经配置好的配置文件C:/desktop/demo/demo.json
  • 选择需要存放度量值的表格。
  • 度量值文件夹自定义,建议使用字母下划线数字来组合,用来存放我们的导航和必要元素的度量值。

点击 生成pbit 按钮,片刻后就能看到 pbit 创建成功的提示。

165-11

在我们 pbix 文件的同目录下会创建一个 pbix 名称关键字文件夹。

165-12

打开文件夹下的 pbit 文件,确认加载,可以看到我们的页面已经从最开始的只有一个空白页,到现在符合我们配置的页面创建成功了。

165-13

注意其中标注数字的 5 处变化:

  1. 页面编辑里面的显示名称及页数和层级结构。
  2. 模板度量值中的度量值
  3. pbi-utils 工具后台自动写入的导航度量值,文件夹 test02 是我们自己在编译时候写的。
  4. rls 文件夹下的度量值,即我们在权限类别初始化的 rls 名称。
  5. pbi-utils 工具后台自动写入的辅助表格。

同时关注 RLS, 在建模->通过以下身份查看->可以看到我们多了一个 rls 角色。我们拉一个和我们配置文件中 RLS 权限相关的维度矩阵。

165-14

当我们点击确认后,可以发现和我们配置的 RLS 是一致的。

165-15

还有包括页面权限等,请观看我们的演示视频。

四、度量值操作

1、pbixA 2 pbixB

在 pbixA 2 pbixB 页面,这里的 2 表示 to 的意思。

我们把前面的 pbit 文件保存为 A.pbix,新建了一个 B.pbix 文件,没有任何度量值。

165-16

选择对应的 A.pbix 和 B.pbix,点击加载数据

165-17

稍等片刻后,可以看到一个多行编辑的弹窗,在这里我们选择需要导入到 B.pbix 度量值,并选择好度量值表,点击提交。

165-18

可以看到提示,在 B.pbix 的同目录下,生成了一个 B.pbit 的文件。

165-19

打开 B.pbit,可以开电脑我们前面导入的度量值都进来了。这样我们从 pbixA 到 pbixB 的度量值就导入好了。

我们看到有黄色叹号,这是因为我们的 B.pbix 中并没有我们 A.pbix 中的表,所以在使用导入功能前,一定要搞清楚这些度量值导入后是否有意义。

165-20

2、pbix 2 DAX

在 pbix 2 DAX 页面中,我们选择对应的 pbix 文件和对应的文件夹;点击按钮 导出DAX。

165-21

我们打开提示的路径,就可以看到导出的度量值了。

165-22

165-23

导出的度量值中,名称中有一个分隔符 ][ 分隔符前是存放度量值的表,分隔符之后是度量值名称。

在导出的度量值中,最前面的注释是后续导入需要的,请不要随意删除。

  • @description:度量值描述。

  • @displayFolder:度量值所在文件夹。

  • @formatString:度量值的格式化字符串。

  • @dataCategory:度量值的数据类别。

3、DAX 2 pbix

DAX 2 pbix 和 pbix 2 DAX 就是一个逆向的过程。

首先需要读取到导入的 pbix 文件,目的是拿到对应的度量值表,读取完成后,可以选择对应的度量值表。

选择上述导出的度量值文件夹,点击 导入DAX。

165-24

可以看到提示消息,在我们需要导入的 C.pbix 文件的同目录下,创建了一个 C.pbit 文件。打开查看,可以看到文件夹里面的度量值都导入进来了,和前面 pbixA 2 pbixB一样,我们看到有黄色叹号,这是因为我们的 C.pbix 中并没有我们 A.pbix 中的表。

165-25

五、关于

在关于页面主要是我们的联系方式、使用文档以及我们的视频课推介,我们做了中文和英文两种语言的显示。可以通过下方语言选择切换。

中文界面显示

165-26

英文版界面显示

165-27

六、注意事项

  1. 我们在操作 pbix 的时候,并没有在原本的 pbix 文件上操作,对于我们原本文件的安全性有了保证,不会破坏原来的文件。
  2. 我们所有生成的 pbit 文件是 Power BI 模板文件,里面不会包含数据,只有对应的元数据,当我们确认好使用后,请及时另存为 pbix 。
  3. 在生成多页导航的 pbit 中,还可以根据自己的需求重新修改来实现个性化的 Home、Navigation 和 NoPermission 等页面。
  4. 已知一部分老版本 Power BI Desktop 生成的 pbix 文件会出现不可知的一些问题,请升级到最新版本的 Power BI Desktop 后另存一份即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络规划.1.扩展.IP地址规划

第一章 IPv4 Internet中有数百万台以上的主机和路由器,IP 地址可以确切地标识它们。- 一台主机至少拥有一-个IP地址。任何两台主机的IP地址不能相同,但是允许一台主机拥有多个IP地址。如果一台计算机虽然也连入Internet, 使用Internet 的某些功能&#…

Android 开发中原始音频的录播和和自定义音频控制条的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、原始音频的录播 语音通话功能要求实时传输,如果使用MediaRecorder与MediaPlayer组合,那么只能整句话都录完并编码好了才能传给对方去播放,这个时效性太差。 此时用到音频录制器AudioRecord与音…

[附源码]Python计算机毕业设计二手书交易系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

企业如何提供安全方面的投资回报率?

为什么增加在恢复方面的投资可以提高投资回报率? 所有企业都会认可安全的重要性,但在安全上的投入却经常令人迷惑。 一方面,由于安全威胁在不断变化,所以,安全建设维护需要长期持续大量投入。另一方面,长期大量投入后…

第6章 集成第3方依赖注入中间件“Autofac”

“Blog.Core-master”示例程序中接口及其具体实现类的注入操作,是通过第3方依赖注入中间件“Autofac”来以反射方式把Service.dll 程序集中所有接口及其具体实现类的实例依赖注入内置容器中。.Net(Core).x框架是中的内置依赖注入容器是不支持程序集注入的。 从最佳实…

葡萄糖-聚乙二醇-人血清白蛋白,HAS-PEG-Glucose,人血清白蛋白-PEG-葡萄糖

葡萄糖-聚乙二醇-人血清白蛋白,HAS-PEG-Glucose,人血清白蛋白-PEG-葡萄糖 人血清白蛋白(HSA)是一种高度水溶性的球状单体血浆蛋白,相对分子量为67KDa,由585个氨基酸残基、一个巯基和17个二硫键组成。在纳米颗粒载体中,HSA纳米颗粒与各种药物…

直播预告丨中高频多因子库存储的最佳实践

因子挖掘是量化交易的基础。随着历史交易数据日益增多,交易市场量化竞赛的不断升级和进化,量化投研团队开始面对数据频率高、因子数量多的场景,以10分钟线10000个因子5000个股票为例,一年的因子数据约为 2.3T 左右,1分…

BUUCTF Reverse/firmware

安装工具firmware-mod-kit &#xff0c;可以参考这个firmware-mod-kit工具安装和使用说明 最后make的时候报了个错&#xff0c;参考这个&#xff1a;linux安装firmware-mod-kit /firmware-mod-kit/src/uncramfs/uncramfs.c 加上头文件&#xff1a;#include <sys/sysmacros.h…

想做TikTok跨境电商?如何运营?

想做TikTok跨境电商&#xff1f;如何运营&#xff1f; 据官方报道&#xff1a; 2021年8月TikTok全球月活跃用户数已突破10亿 自2020年7月以来增长了45% 相比2020年初则增长了一倍 月活跃用户能达10亿&#xff0c;覆盖150个国家地区 你只要爆了一条视频 分一小杯羹就能舒…

13.5 GAS与连击

目录1. 连击检测窗口与砍出的第二刀1. 连击检测窗口与砍出的第二刀 连击的实现思路是&#xff0c;在劈砍动画的期间的某一段窗口期&#xff0c;令角色能够再次响应输入&#xff0c;完成伤害动作并进入新的连击动画&#xff0c;直到连招打完。所以核心关键就在于这一段连击窗口…

Halcon机器视觉实战--分水岭分割+距离变换实现粘连物体图像分割

分水岭的原理 把图像的灰度看作高度图,图像中每个像素点的灰度值看作该点的高度,高灰度值代表山脉,低灰度值代表盆地,每个局部最小值及其周围区域称为集水盆,而集水盆的边界则形成分水岭。 分水岭算法的步骤 1.彩色图像转化成单通道灰度图 2.求梯度图 3.在梯度图的基础…

BCH编码译码误码率性能matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 BCH编译码是一种纠错能力强&#xff0c;构造简单的信道编译码。BCH编译码的生成多项式可以由如下的式子表示&#xff1a; ①BCH码是一种纠错码、线性分组码、循环码。 ②需要传输信息位…

如何搭建一个好的知识库管理系统?

简道云知识管理应用对于想知道怎样搭建一个好的知识库管理系统的人来说&#xff0c;拥有正确的流程非常重要。这个过程不需要很复杂&#xff0c;但如果您想要个满足更多需求的知识管理系统&#xff0c;它确实需要非常的全面。 简道云知识库&#xff1a;http://s.fanruan.com/r…

(附源码)计算机毕业设计JavaJava毕设项目社区物业管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)

收集了2022年最新的面试题后&#xff0c;负责就业的黑马讲师们整理出了7个高频出现的面试题&#xff0c;一起来看看。 高频问题1&#xff1a;请自我介绍下&#xff1f; 高频问题2&#xff1a;请介绍下最近做过的项目&#xff1f; 高频问题3&#xff1a;请介绍下你印象深刻的…

IO模型Netty

一、IO模型 对于一次IO操作&#xff0c;数据会先拷贝到内核空间中&#xff0c;然后再从内核空间拷贝到用户空间中&#xff0c;所以一次read操作&#xff0c;会经历以下两个阶段&#xff0c;基于这两个阶段就产生了五种不同的IO模式。 为了避免用户进程直接操作内核&#xff0c;…

【科学文献计量】RC.networkOneMode()中的参数解释

RC.networkOneMode中的参数解释 1 数据2 RC.networkOneMode()中的参数解释2.1 测试mode参数2.2 测试nodeCount参数2.3 测试edgeWeight参数2.4 测试stemmer参数2.5 测试edgeAttribute参数2.6 测试nodeAttribute参数1 数据 使用web of science中的数据,借助metaknowledge库读入…

跬智信息 (Kyligence) 荣获信创“大比武”重要奖项,坚持做大做实国产软件

近日&#xff0c;为期两个月的 2022 信创“大比武”活动圆满闭幕。经过层层筛选和考核&#xff0c;跬智信息 (Kyligence) 凭借“企业级智能多维数据分析解决方案”项目脱颖而出&#xff0c;在整体方案的技术架构、服务体系、安全架构、信创生态等方面得到了评委的高度认可&…

Python数学基础二、利用正弦sin求曲边图形的面积

目录 正弦 求曲边图形的面积 推导方式解法&#xff1a; 推导式解法&#xff1a; 正弦 古代的勾三股四弦五中说的弦就是我们要说的正弦&#xff0c;也就是直角三角形中的斜边&#xff0c;叫做弦&#xff0c;股就是人的大腿&#xff0c;古人称直角三角形长的那个直角边就叫做…

深入I/O挖矿

1、Linux 系统如何管理文件 1.1 静态文件与 inode 文件在没有被打开的情况下一般都是存放在磁盘中的&#xff0c;譬如电脑硬盘、移动硬盘、U 盘等外部存储设备&#xff0c;文件存放在磁盘文件系统中&#xff0c;并且以一种固定的形式进行存放&#xff0c;我们把他们称为静态文…