Power BI 中的分页报表:何时以及如何使用它们
大多数 Power BI 报告都是交互式的 - 专为探索而设计,具有用于过滤的切片器、用于交叉突出显示的视觉效果以及用于深入研究的图表。这些交互式报告擅长帮助用户发现见解。但当要求是格式化发票、监管备案、必须在每台打印机上打印相同的财务报表,或者是一份跨越数百页且每页页眉和页脚一致的报告时,它们是错误的工具。
Power BI 分页报告可以满足这些要求。分页报表建立在成熟的 SQL Server Reporting Services (SSRS) 报表定义 (RDL) 技术之上,可生成像素完美的输出,在屏幕、PDF、Excel 导出和打印中一致呈现。本指南介绍了分页报告何时是正确的选择、如何构建它们以及使它们成为可操作报告主力的部署和订阅模式。
要点
- 分页报告专为打印、导出和像素完美格式而设计,而不是交互式探索
- 他们使用 Report Builder 或 Power BI Report Builder(免费)作为创作工具,而不是 Power BI Desktop
- 数据源包括 Power BI 数据集、SQL Server、Oracle、Azure SQL 和任何 ODBC/OLE DB 源
- 分页报告中的表格和矩阵可以跨越数百页的数千行
- 子报表、嵌套数据区域和复杂分组支持高度结构化的财务格式
- 参数允许用户在渲染时指定日期范围、实体或其他过滤器
- 订阅按计划通过电子邮件或 SharePoint 自动发送报告
- 分页报告需要 Power BI Premium、Premium Per User 或 Fabric 工作区才能发布
交互式报告与分页报告
正确的工具取决于用例。了解每种报告类型何时合适可以防止将分页报告要求强加到交互式仪表板中的常见错误(反之亦然)。
| 要求 | 互动报告 | 分页报告 |
|---|---|---|
| 用户驱动的探索 | 最佳 | 可怜 |
| 固定格式财务报表 | 可怜 | 最佳 |
| 打印数百页 | 不是为此而设计的 | 优化 |
| 具有精确格式的 PDF 导出 | 有限公司 | 优秀 |
| 详细级别表格数据(千行) | 可怜 | 最佳 |
| 切片器和交叉过滤 | 优秀 | 有限公司 |
| 嵌入自定义应用程序 | 好 | 好 |
| 预定的电子邮件发送 | 有限公司 | 优秀 |
| 深入探究细节 | 好 | 好 |
| 具有总计和小计的复杂分组 | 复杂 | 本地 |
| 具有精确定位的像素完美布局 | 没有 | 是的 |
| 带有图表和 KPI 的执行仪表板 | 优秀 | 可怜 |
决策规则很简单:如果输出是按结构定义的(在特定位置具有特定内容的格式化文档),则使用分页报告。如果输出是通过探索定义的(让用户发现感兴趣的内容),请使用交互式报告。
Power BI 报表生成器
Power BI Report Builder 是用于分页报表的免费创作工具,可从 Microsoft 单独下载。它使用与 SSRS 相同的 RDL 格式,并生成发布到 Power BI 工作区的报告。
关键界面区域:
- 设计表面:像素精确的画布,其中报告项目(文本框、表格、矩阵、图表、图像)以精确坐标放置
- 报告数据窗格:管理数据源、数据集(查询)、参数和图像
- 属性窗格:控制每个元素的格式、可见性、表达式和行为
- 报告工具栏:预览、缩放和页面导航
创建新报告:
1.打开Power BI报表生成器→新建报表→空白报表 2. 在报表数据 → 新建 → 数据源 → 选择 Microsoft Power BI 数据集或数据库连接 3. 使用检索报告数据的查询创建数据集 4. 在设计图面上添加表格或矩阵 5. 将数据集字段映射到表列 6. 配置格式、分组、总计和页眉/页脚 7. 预览→保存→发布到高级工作区
分页报告的数据源
分页报表支持比 Power BI Desktop 交互式报表更广泛的数据源:
Power BI 数据集:将分页报表连接到 Power BI 语义模型(通过 Power BI 数据集数据源类型)是实现组织一致性的推荐方法 - 分页报表使用与交互式报表相同的受管数据和度量定义。
SQL Server 和 Azure SQL:使用 SQL 查询直接数据库连接。这对于语义模型的聚合数据不足的详细级别报告来说很常见 - 您需要单独的事务行,而不是度量级别摘要。
Oracle、PostgreSQL、MySQL:通过 ODBC 连接支持。
OData feeds:公开 OData 协议的 REST API 数据源。
Azure Analysis Services:对于使用 AAS 作为分析层的组织,分页报告可以直接连接。
查询中的嵌入参数:与 Power BI Desktop 导入模式(查询在刷新时运行一次)不同,分页报表在呈现时使用用户提供的参数运行查询。像 WHERE OrderDate BETWEEN @StartDate AND @EndDate 这样的查询会在查询执行时过滤数据库,而不是在数据模型加载时过滤数据库。
表格和矩阵:核心报告结构
分页报告围绕两个主要数据区域构建:表(固定列、可变行)和矩阵(可变行和列 - 数据透视表样式)。
简单财务详细报告的表结构:
[Header]
Report: Accounts Payable Aging as of @ReportDate
Entity: @EntityName
[Table]
| Vendor Name | Invoice # | Invoice Date | Due Date | Amount | Days Overdue |
|-------------|-----------|--------------|----------|--------|--------------|
| [row details iterate here] |
[Table footer]
| Total | | | | [Sum(Amount)] | |
该表会自动生成与数据集包含的行数相同的行。无论需要多少页,包含 50,000 行的表都会生成 50,000 个详细信息行,并且每页上的列标题保持一致。
分组 按层次结构组织行。总账报告可能按账户类别→账户→成本中心进行分组,并在每个组级别进行小计:
- 账户类别:收入(小计)
- 账户 4001:产品收入(小计)
- 成本中心 100:485,000 美元
- 成本中心 200:312,000 美元
- 账户 4002:服务收入(小计)
这种在每个级别都有小计的嵌套分组在分页报表中很简单,但在 Power BI 交互式视觉效果中实现起来很复杂。
矩阵(交叉表)创建动态数据透视结构,其中列是根据数据值生成的,而不是预定义的。预算与实际矩阵可能以月份为列,动态生成,因此相同的报告定义适用于任何日期范围参数。
参数:使报告动态化
参数是分页报告的用户输入机制。在渲染时,用户指定参数值(或以编程方式提供),并相应地报告查询和格式。
常用参数类型:
- 日期时间:报告期间的开始/结束日期
- 文本:实体名称、部门、成本中心
- 整数:报告年度、财务期间
- 布尔:包括非活动记录,显示零值行
- 多值:允许用户选择多个部门或地区
参数级联意味着一个参数的可用值取决于另一个参数的选择。选择一个公司 → 部门参数筛选到该公司中的部门 → 成本中心参数筛选到该部门中的成本中心。这是使用参数化数据集查询配置的:
-- Departments dataset query (filtered by selected Company)
SELECT DepartmentID, DepartmentName
FROM Departments
WHERE CompanyID = @CompanyID
ORDER BY DepartmentName
默认值可以是在渲染时计算的表达式。默认为 =Today() 的日期参数始终打开到今天的日期。默认为 =Month(Today()) 的期间参数打开到当前月份。
格式和表达语言
分页报表使用 Visual Basic 表达式(前缀为 =)来实现动态格式设置、可见性和内容。这与 DAX 不同——它是针对不同运行时的不同语言。
常见表达模式:
基于值的条件颜色:
=IIF(Fields!Variance.Value < 0, "Red", "Black")
交替行颜色(为了可读性):
=IIF(RowNumber(Nothing) MOD 2 = 0, "LightGray", "White")
将数字格式化为货币:
=Format(Fields!Amount.Value, "C2")
格式化为百分比:
=Format(Fields!Variance.Value, "P1")
页码:
=Globals!PageNumber & " of " & Globals!TotalPages
可见性表达式 根据参数值或数据条件隐藏或显示行、列和整个部分:
=IIF(Parameters!ShowDetail.Value = False, True, False)
-- True = hidden, False = visible
切换可见性 可在呈现的报告中实现交互式显示/隐藏 - 单击组标题可展开或折叠组的详细信息行。
页面布局和打印优化
分页报告中的“分页”意味着布局是围绕页面设计的 - 特定页面尺寸(A4、Letter、Legal、自定义)、页边距、页眉、页脚和分页符控制。
页眉和页脚出现在每个页面上,通常包含:
- 报告标题和公司名称(标题)
- 页码、报告日期和保密声明(页脚)
分页符控制决定数据组开始新页面的位置:
- 组上的
PageBreakAtStart表示每个组从一个新页面开始 PageBreakAtEnd在组后面强制创建一个新页面KeepTogether防止组标题在页面的最后一行上孤立
页面大小:在报表属性中设置页面大小和边距。常用配置:
- 信纸 (8.5" × 11")、宽桌子横向、0.5" 页边距
- A4 适用于欧洲发行版
- 特定表格打印的自定义尺寸(发票、支票)
列跨越允许单元格跨多个标题列进行合并 - 对于创建帐户名称跨越期间列的财务报表布局非常有用。
导出格式和订阅
分页报告导出为多种格式:
- PDF:最常见 - 像素完美、可打印、可签名
- Excel (xlsx):数据友好导出,保留表格结构以供进一步分析
- Word (docx):适用于嵌入 Word 文档工作流程中的报告
- CSV:数据导出,丢失格式
- XML:结构化数据导出
- PowerPoint:用于在演示文稿中嵌入报告快照
订阅自动提供报告,无需用户操作:
标准订阅按计划(每日、每周、每月、事件驱动)将报告发送到电子邮件地址列表。每个收件人都会收到相同的报告。
数据驱动的订阅使用数据集来确定收件人和参数值。发送给区域经理的每周销售报告,其中每个经理仅收到其区域的数据,使用数据驱动的订阅:
- 包含经理电子邮件地址及其区域代码的数据集
- 从数据集映射的参数(Region = 来自数据集行的 [RegionCode])
- 每个经理都会自动收到其所在地区的个性化报告
数据驱动的订阅需要 Power BI Premium。
常见问题
分页报表是否需要 Power BI Premium?
是的。分页报表必须发布到 Power BI Premium 工作区(每容量高级版、每用户高级版或 Microsoft Fabric F64+)并在其中呈现。它们不能托管在专业版工作区中。查看共享分页报告可能需要每用户高级许可证,具体取决于工作区配置。 Power BI Report Builder(创作工具)可免费下载并用于开发。
分页报表和常规 Power BI 报表有什么区别?
常规 Power BI 报告是交互式的 - 内置于 Power BI Desktop 中,专为使用切片器和视觉交互进行探索而设计。分页报表是面向文档的 - 内置于 Power BI Report Builder 中,专为打印、导出和结构化输出而设计。交互式报告最适合仪表板和自助分析。分页报告最适合财务报表、发票、监管文件以及任何必须正确打印或导出到精确规格的报告。
分页报表可以连接到 Power BI 语义模型吗?
是的。使用“Power BI 数据集”数据源类型,分页报表连接到已发布的 Power BI 语义模型并使用 DAX 对其进行查询。这允许分页报告使用与交互式报告相同的受控措施、层次结构和安全性(包括行级安全性),从而确保两种报告类型之间的一致性。对于已建立语义模型的组织来说,这是推荐的方法。
如何将 SSRS 报表转换为 Power BI 分页报表?
Power BI 分页报表使用与 SSRS 相同的 RDL 格式,因此大多数 SSRS 报表可以通过更改数据源连接来发布到 Power BI。 SSRS 支持但 Power BI 不支持的数据源类型(例如某些配置中的 Analysis Services 或某些较旧的 ODBC 驱动程序)可能需要重新配置。报表布局、表达式、分组和大多数格式设置的工作方式相同。将 .rdl 文件上传到 Premium 工作区以测试兼容性。
分页报告可以嵌入自定义应用程序吗?
是的。 Power BI Embedded 支持使用与交互式报告相同的嵌入令牌和 iframe 嵌入方法的分页报告。这允许自定义应用程序(客户门户、ERP 插件、SharePoint)为其用户呈现分页报告。嵌入式报告可以接受来自应用程序的参数值,从而实现个性化报告体验,而无需用户与参数提示进行交互。
如何处理分页报告中的大型数据集?
分页报表可以很好地处理大型数据集,因为它们呈现服务器端并对输出进行分页,这与将所有数据加载到浏览器的交互式 Power BI 报表不同。包含 500,000 行的分页报表会在用户导航时生成页面,而不是一次性生成所有页面。对于非常大的数据集,强烈建议使用用户指定的参数(日期范围、实体过滤器)进行分页,以将渲染时间保持在 30 秒以下。对于大行分页报表,具有高效参数化查询的直接 SQL 连接比内存中导入数据集更合适。
后续步骤
分页报告填补了 Power BI 功能中的一个关键空白 - 提供运营和财务团队所依赖的像素完美、可打印、订阅交付的报告。该技术成熟,工具免费,并且与 Power BI 语义层的集成可确保与交互式分析的一致性。
ECOSIRE 的 Power BI 仪表板开发服务 包括分页报告设计和实现、数据驱动的订阅配置以及与现有 Power BI 语义模型的集成。联系我们讨论您的格式化报告要求。
作者
ECOSIRE Research and Development Team
在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。
相关文章
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.