使用参数创建动态报表

已完成

动态报表是开发人员可以根据用户规范更改数据的报表。 动态报告非常有用,因为单个报告可用于多种用途。 如果使用动态报表,则要创建的单个报表会更少,这可节省组织时间和资源。

可以通过确定要在报表中要查看其数据的值来使用参数,报表会通过筛选数据来相应地进行更新。

通过创建动态报表,可使用户更大程度地控制报表中显示的数据;他们可自行更改数据源并筛选数据。

在下例中,你为 Tailwind Traders 的销售团队创建了一个报表,它显示了 SQL Server 数据库中的销售数据。 该报表提供有关销售团队在执行的操作的整体视图。 尽管该报表非常有用,但销售团队成员希望能够筛选该报表,以便能够仅查看其自己的数据,并且更轻松地针对自己的销售目标跟踪绩效。

为单独值创建动态报表

若要创建动态报表,首先需要编写 SQL 查询。 然后,使用 Power BI Desktop 中的“获取数据”功能连接到数据库。

在本例中,你将按照以下步骤连接到 SQL Server 上的数据库:

  1. 输入服务器详细信息后,请在“SQL Server 数据库”窗口中选择“高级选项”。

  2. 将 SQL 查询粘贴到“SQL 语句”框,然后选择“确定”。

    SQL 查询详细信息

    将查询添加到执行语句

    建立连接后,数据将在预览窗口中显示。

  3. 选择“编辑”,以在 Power Query 编辑器中打开数据。

接下来,你将按照以下步骤创建参数:

  1. 在“开始”选项卡上,选择“管理参数”>“新建参数”。

  2. 在“参数”窗口中,将默认参数名称更改为更具描述性的名称,使其用途明确。 在此例中,你会名称更改为“SalesPerson”。

  3. 从“类型”列表中选择“文本”,然后从“建议值”列表中选择“任何值”。

  4. 选择“确定” 。

    添加参数

    此时将为你创建的参数显示一个新查询。

    针对参数的新查询

现在需要调整 SQL 查询中的代码,以访问你的新参数:

  1. 右键单击“Query1”,然后选择“高级编辑器”。

  2. 将执行语句中的现有值替换为与号 (&),后跟参数名称 (SalesPerson),如下图所示。

    调整 sql 查询语句

  3. 请确保窗口底部未显示任何错误,然后选择“完成”。

虽然在屏幕上看不到差别,但 Power BI 运行了查询。

  1. 若要确认查询是否已运行,可选择参数查询并在“当前值”框中输入一个新值来运行测试。

    向参数输入值

  2. 查询旁边可能会显示警告图标。 如果出现,请选择该查询来查看警告消息,其中会指出需要权限才能运行此本机数据库查询。 选择“编辑权限”,然后选择“运行”。

    如果查询运行成功,参数将显示新值。

    更新了值的参数

  3. 选择“关闭并应用”以返回到报表编辑器。

现可将参数应用于报表:

  1. 选择“编辑查询”>“编辑参数”。

  2. 在“编辑参数”窗口中,输入一个新值,然后选择“确定”。

  3. 选择“应用更改”,接着再次运行本机查询。

    现在,在查看数据时,你会看到通过参数传递的新值的数据。

    将参数应用于报表的结果

你现在可以创建报表,以便一次显示一个特定值的数据。 需要执行更多步骤才能同时显示多个值的数据。

为多个值创建动态报表

若要一次满足多个值,首先需要创建一个 Microsoft Excel 工作表,其中有一张表,表中有一列,该列包含值列表。

接下来,使用 Power BI Desktop 中的“获取数据”功能连接到该 Excel 工作表中的数据,然后执行以下步骤:

  1. 在“导航器”窗口中选择“编辑”,在 Power Query 编辑器中打开数据,你将看到一个新的数据表查询。

    查询窗格中的表

  2. 将表中的列重命名为更具描述性的名称。

  3. 将列数据类型更改为“文本”,使其与参数类型相匹配,并避免数据转换问题。

  4. 在查询的“属性”部分,将数据源的名称更改为更具描述性的名称。 在此示例中,,请输入“SalesPersonID”。

接下来,需要创建一个函数,它将新的 SalesPersonID 查询传递到 Query1:

  1. 右键单击“Query1”,然后选择“创建函数”。

    为查询选择创建函数选项

  2. 输入函数的名称,然后选择“确定”。

    选择创建函数窗口

    新函数将在“查询”窗格中显示。

    查询窗格中的函数

  3. 若要确保 Query1 不显示在报表的字段列表中(这可能会使用户感到困惑),可再次右键单击“Query1”,然后选择“启用加载”(默认已选中)来禁用此功能。

    启用加载选项:

  4. 选择从 Excel 工作表加载的“SalesPerson”查询,然后在“添加列”选项卡上,选择“调用自定义函数”来运行你创建的自定义函数。

    调用自定义函数选项

  5. 在“调用自定义函数”窗口中,从“函数查询”列表中选择你的函数。

“新列名”自动更新,并且默认情况下会选择包含你要通过参数传递的值的表。

  1. 选择“确定”;如果必要,请运行本机查询。

    调用自定义函数窗口

    “SalesPersonID”列的旁边显示“GetSalesFromSalesPerson”函数的新列。

    函数的新列

  2. 选择新列标题中的双箭头图标,然后选中要加载的列的复选框。 你将在此部分确定报表中为每个值(销售人员 ID)提供的详细信息。

  3. 清除屏幕底部的“使用原始列名作为前缀”复选框,因为无需在报表中看到使用列名的前缀。

  4. 选择“确定” 。

    选择函数的列

    对于每个值(销售人员 ID),你应该能够看到所选列的数据。

    查看函数的列

    如果需要,可将更多值(销售人员 ID)添加到 Excel 工作表中的 SalesPersonID 列,也可更改现有值。

  5. 保存更改,然后回到 Power Query 编辑器。

  6. 在“开始”选项卡上,选择“刷新预览”,然后再次运行本机查询(如有必要)。 你应会看到你添加到工作表的新销售人员 ID 的销售额。

  7. 选择“关闭并应用”,返回到报表编辑器,你将在此处的“字段”窗格中看到新列名。

现在,你就可开始生成报表。