基于 Power BI 共享数据集创建分页报表

适用于: Power BI Report Builder Power BI Desktop

可以将在 Power BI Desktop 中创建的数据集用作 Power BI 报表生成器分页报表的数据源。 假设有这样一个场景:你已经在 Power BI Desktop 中创建了一个 Power BI 报表。 你花了很多时间来设计数据模型,然后创建了一个包含各种出色视觉对象的精美 Power BI 报表。 此报表中有一个包含多个行的矩阵,需要滚动页面才能查看全部内容。 报表阅览者希望打印该报表,以便显示矩阵中的所有行。

Power BI 分页报表可以实现此目的:打印分为多页的一张表或一个矩阵,并包含页眉页脚以及设计的完美页面布局。 它可进一步完善 Power BI Desktop 报表。 要想报表基于完全相同的数据且没有任何差异,需要使用同一数据集。

Screenshot of Report Builder paginated report printed from Power BI Desktop.

所需内容

以下是在 Power BI 报表生成器中使用共享数据集所需和不需要的事项。

  • 下载并安装 Power BI Report Builder
  • 此数据集可以位于任何工作区中,你也无需是该工作区的成员。
  • 要访问 Power BI 语义模型,需要具有该数据集的生成权限。 请参阅生成权限
  • 需要 Power BI Pro 许可证或 Premium Per User (PPU) 许可证才能分布分页报表。
  • 在 Power BI Report Builder 中创建分页报表无需 Power BI Pro 或 PPU 许可证。
  • 可以发布到“我的工作区”。 对于任何其他工作区,至少需要参与者角色

如果需要按照本文内容进行操作,请下载零售分析示例 .pbix 文件,在 Power BI Desktop 中将其打开并添加一个包含多列的表。 在“格式”窗格中,将“总计”下的开关滑动到“关闭”位置。

Screenshot of Totals toggled to off position in the Format pane.

然后在 Power BI 服务中将报表发布到工作区

连接到 Power BI 语义模型

  1. 打开 Power BI 报表生成器。

  2. 选择报表生成器右上角的“登录”,登录 Power BI 帐户。

  3. 在“报表数据”窗格中,选择“新建”>“Power BI 语义模型连接”

    Screenshot of new dataset in the Report Data pane.

    注意

    无法通过 Report Builder 表、矩阵或图表向导为 Power BI 语义模型创建数据源或数据集。 创建数据源或数据集后,可以使用这些向导基于它们来创建表、矩阵或图表。

  4. 搜索或浏览到数据集或数据集驻留的工作区,然后选择“选择”。 报表生成器会填充数据集名称。

    Screenshot that shows datasets to select from.

  5. 该数据集位于“报表数据”窗格中的“数据源”之下。

    Screenshot of the Report Data pane with the dataset listed under Data Sources.

    请记住,可在同一个分页报表中连接到多个 Power BI 语义模型和其他数据源。

获取数据集的 DAX 查询

如果希望 Power BI 报表和分页报表中的数据相同,仅连接到数据集是不够的。 还需要基于该数据集构建的数据分析表达式 (DAX) 查询。

视频:获取 DAX 查询

在下面的视频中,Chris Finlan 演示如何获取分页报表所需的 DAX。

注意

此视频可能使用的是早期版本的 Power BI Report Builder 或 Power BI 服务。

获取 DAX 查询的步骤

执行以下步骤获取查询。

  1. 在 Power BI Desktop 中打开 Power BI 报表 (.pbix)。

  2. 请确保报表中具有一张包含分页报表中所有数据的表。 表需要满足以下两个要求:

    • 它必须是一个平面表,而不是矩阵或其他视觉对象。 如果它不是表,请立即将其转换为表,完成下面的性能分析器步骤,然后将其转换回所需的视觉对象。

    • 对于数字字段,需要使用预定义的度量值。 它们旁边有一个计算器符号。 阅读有关创建度量值的信息。

      Screenshot of the calculator icon next to a predefined measure.

  3. 在“视图”功能区中,选择“性能分析器” 。

    Screenshot of the Performance Analyzer option in the View ribbon.

  4. 在“性能分析器”窗格中,选择“开始录制”,然后选择“刷新视觉对象” 。

    Screenshot of the Refresh visuals button in the Performance Analyzer.

  5. 展开表名称旁边的加号 (+) 并选择“复制查询”。 此查询是 Power BI 报表生成器中数据集所需的 DAX 公式。

    Screenshot of the Copy query link in the Performance Analyzer.

使用查询创建数据集

  1. 返回到 Power BI 报表生成器。

  2. 右键单击“数据源”下方的数据集,然后选择“添加数据集” 。

    Screenshot of the Add Dataset option under Data Sources.

  3. 在“数据集属性”中,为数据集命名,并选择“查询设计器”。

  4. 确保选择“DAX”,并取消选择“设计模式”图标 。

    Screenshot of the Report Builder Query Designer pane.

  5. 在上方的框中,粘贴从 Power BI Desktop 中复制的查询。

    注意

    如果查询包含 TOPN 函数,请从查询中将其删除。

  6. 选择“执行查询”(红色感叹号 !),确保查询正常运行。

    Screenshot of the Execute query button in the Query Designer.

    查询结果如下方的框中所示。

    Screenshot of the query results in the Query Designer.

  7. 选择“确定”

    在“数据集属性”对话框的“查询”窗口中可以查看查询 。

    Screenshot of the Dataset properties dialog box.

  8. 选择“确定”

    在“报表数据”窗格中,现在可以看到新数据集及其字段列表。

    Screenshot of the fields listed under the dataset in the Report Data pane.

在报表中创建一张表

一种快速创建表的方法是使用表向导。

  1. 在“插入”功能区中选择“表格”>“表向导” 。

    Screenshot of the Table Wizard button on the Insert ribbon.

  2. 选择先前使用 DAX 查询创建的数据集,然后选择“下一步”。

    Screenshot of the dataset choices in the Table Wizard.

  3. 若要创建平面表,请在“可用字段”中选择所需的字段。 可以一次性选择多个字段,方法是先选择第一个所需字段,按住 Shift 键并选择最后一个所需字段。

    Screenshot of the available fields available in the Table Wizard.

  4. 将字段拖动到“值”框,然后选择“下一步”。

    Screenshot of the Values box in the Table Wizard.

  5. 选择需要的布局选项,然后选择“下一步”。

  6. 选择完成。 在“设计视图”中查看表。

    Screenshot of the table in the Design View.

  7. 选择“单击以添加标题”添加一个标题。

  8. 选择“运行”以预览报表。

    Screenshot of the Report Preview.

  9. 选择“打印布局”,查看报表的打印效果。

    此报表布局需要一些调整。 由于列和边距使得该表宽度为两页,该报表包含 54 页。

    Screenshot of the Report Print Layout.

设置报表格式

可以通过多个格式选项将该表的宽度调为一页。

  1. 可以在“属性”窗格中缩小页边距。 如果“属性”窗格未显示,请在“视图”功能区中选中“属性”复选框 。

  2. 选择报表(而非表或标题)。

  3. 在“报表属性”窗格的“页面”下,展开“边距”,将每个 1 更改为 0.75 英寸 。

    Screenshot of the page margin properties.

  4. 还可缩小列宽。 选择列边框并将其右侧向左拖动。

    Screenshot of column width properties.

  5. 另一种方法是确保为数字设置适当的格式。 选择一个包含数值的单元格。

    提示

    可以按住 Shift 键并选择其他单元格,一次性设置多个单元格的格式。

    Screenshot of multiple-cell selection for formatting.

  6. 在“开始”功能区的“数字”区域中,将“默认”格式更改为“货币”等数值格式 。

    Screenshot of number format options.

  7. 将“占位符”样式更改为“示例值”,以便能在单元格中看到格式设置 。

    Screenshot of sample values for formatting.

  8. 如果合适,请在“数字”区域中减少小数位数,以便节省更多空间。

删除空白页

即便边距和表列宽已经缩小,可能每隔一页仍存在一张空白页。 为什么? 原因在于算术问题。

将设置的页边距以及报表正文宽度相加后,值必须小于报表格式的宽度。

例如,假设报表格式为 8.5" X 11" 且所设单侧边距为 0.75。 由于两侧边距之和为 1.5",因此正文宽度必须小于 7"。

  1. 选择并拖动报表设计图面右边缘,使其读数小于标尺上的所需数字。

    提示

    在“正文”属性中可以进行更为精确的设置。 在“大小”下,设置“宽度”属性 。

    Screenshot of body size properties.

  2. 选择“运行”预览报表并确保已删除空白页。 与先前的 54 页相比,该报表现在仅有 26 页。 成功!

    Screenshot of report with blank pages omitted.

注意事项和限制

  • 对于采用 Analysis Services 实时连接的数据集,可以使用基础 Analysis Services 连接而不是共享数据集直接进行连接。
  • 如果希望使用 Power BI 语义模型(在 Power BI Report Builder 中使用 DirectQuery),则该数据集必须包括一个度量值,即使你不打算在报表中显示该度量值。 如果没有度量值,该数据集将返回错误的数据结果。
  • 虽然可用数据集列表中显示了具有提升或认证认可的数据集,但其并未被标记为可用数据集。