[PowerBI]Paginated Report Builder 简介

12月追加:欢迎加入知乎【微软BI技术圈】,一起讨论、分享包括PowerBI在内的一切BI话题!

在这里插入图片描述
一、简述

微软在上个月发布了Power BI Report Builder (以下简称Report Builder), 该应用主要用于构建分页报表,并将作为整个Power BI体系的重要组成部分, 如图:
在这里插入图片描述
事实上,Report Builder的前身SSRS(SQL Server Reporting Services)已经发布很多年, 其与SSRS 2016的界面及功能几乎一样,反而Report Builder还有不少功能被阉割了,支持的数据源也更少了,这一方面是因为,Report Builder将作为一款专为Power BI Service 而优化的分页报表开发工具,而不是针对于发布在本地部署的服务器的SSRS, 因此部分功能需要做出调整,另一方面是因为有很多尚待开发的功能没有完成。尽管Report Builder作为一款"过时"的报表开发工具,其未来的创新还是可期的。

二、相比于Power BI Desktop的主要优势

微软官方的说法,是PBI Report Builder更适合制作用于打印的正式报表, 但除此外,它还有许多其他优势。

1.拥有更强大的表格数据交互能力
在Report Builder中,你可以针对于每个单独的度量值、列标签以及行标签设置可以到达不同子报表的数据下钻,以及设置不同的URL和书签:
在这里插入图片描述
而在Power BI中,除了无法通过点击表格中的某个数据到达指定页面或书签,也无法做到在同一个表格控件中针对于不同的数据设置不同的子报表钻取(尽管截至今年4月Power BI desktop已经可以做到跨报告级的数据钻取,但是这种钻取只能基于整个表格控件统一设置子报表,再通过钻取级筛选器筛选钻取后的对应结果,和Report Builder的钻取能力还有差距

2.报表发布后其数据可以导出成多种格式
其中包括:Word ,Excel, PPT, PDF, CSV, XML等,而Power BI报告发布后暂时只能导出CSV和PDF格式;值得一提,在Report Builder设置的URL和数据钻取即使导出到Excel其链接功能依然可用

3.可以读取存储过程(Stored Procedure
Report Builder不仅可以使用SQL获取数据库数据,而且还可以调用存储过程,把获取的数据作为报表的数据集,Desktop目前无法做到。这就意味着用户可以在报表前端来改变数据查询的行为,比如用户在报表前端选择不同的月份,或者Group By到不同的维度,分页报表就会将这些选项作为参数,影响存储过程的执行,从而使数据库返回对应的查询结果,而无需加载整个数据集,因此理论上具有更好的性能. 此外可以利用存储过程实现数据的增量抽取(Power BI 也可以,只不过需要购买License)
在这里插入图片描述
4.发布到Power BI Report Server后,可以使用邮件订阅的方式把报表分享给组织成员
如果是使用Power BI Desktop做出的报表,在此处不具备邮件订阅功能
在这里插入图片描述
三、简明教程

1.连接数据源
在这里插入图片描述
2.配置数据集
在这里插入图片描述
3.设计报表
在这里插入图片描述
4.运行报表(点击[home]–[Run])
在这里插入图片描述
5.发布报表
截至目前的2019年4月版本的Report Builder尚未提供发布到服务器的选项(期待未来的更新), 但用户可以在Power BI Service把Report Builder报表文件上传到Premium空间,也可以直接上传到Power BI Report Server
(本文以介绍为主,使用教程不做详细介绍,Power BI Report Builder截至今年5月15日还没有官方介绍文档,详情可参考此SSRS Report Builder教程

四、其他

就目前而言,相比于Power BI Desktop, Report Builder的劣势明显,M语言在此处毫无用武之地,内置公式库相比Excel还要少许多,数据处理很大程度上依赖于SQL技能,较弱的可视化能力以及更少的数据源支持, 至于DAX, 你也仅仅只能用它作为一种专用于查询SSAS表格模型数据库的查询语言。但不管怎么说,微软既然已经把Report Builder加入到了Power BI大家庭,就说明它还有发展前景和上升空间,以及它相比于Desktop的独特优势也满足了特定用户的需求。

(注:本文同时发布于知乎

这段代码定义了一个名为 `Pag` 的类,它继承自 `PageNumberPagination` 类。根据代码的结构和命名来看,这个类可能是用来实现分页功能的。 在这个类中,有以下几个属性和方法: - `page_size_query_param`:指定用于指定每页大小的查询参数的名称。在这个例子中,查询参数名称被设置为 `limit`。 - `page_query_param`:指定用于指定页码的查询参数的名称。在这个例子中,查询参数名称被设置为 `page`。 - `page_size`:指定每页的默认大小。在这个例子中,每页默认包含 10 条数据。 另外,还有一个名为 `get_paginated_response` 的方法。这个方法接受 `data` 参数,用于将分页后的数据进行格式化,然后返回一个包含分页信息的 API 响应。 具体来说,在 `get_paginated_response` 方法中,使用了 `APIResponse` 类来构造一个响应对象。这个响应对象包含以下字段: - `msg`:表示响应的消息,这里设置为 "成功获取此页数据"。 - `result`:表示响应的结果,是一个有序字典(OrderedDict),包含了以下字段: - `count`:表示总共的数据数量,通过 `self.page.paginator.count` 获取。 - `next`:表示下一页的链接,通过 `self.get_next_link()` 方法获取。 - `previous`:表示上一页的链接,通过 `self.get_previous_link()` 方法获取。 - `results`:表示当前页的数据,即传入的 `data` 参数。 通过调用 `get_paginated_response` 方法,可以获得一个包含分页信息的 API 响应对象。具体实现和使用需要根据代码上下文来进行进一步理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DAVIS-BI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值