在 Power BI 中创建数据函数按钮(预览版)

适用范围:Power BI Desktop Power BI 服务

可以在 Power BI Desktop 和 Power BI 服务中创建 数据函数 按钮。 此按钮从用户获取输入并调用函数以执行作。

注释

跨事务分析任务流功能目前以公共预览版提供。

先决条件

用户数据函数的最佳做法

为跨事务任务流方案编写自己的函数时,请遵循以下最佳做法来确保高质量的最终用户体验。

  • 为每个参数编写输入验证逻辑。 使用此方法 fn.UserThrownError() 向 Power BI 报表发送预期的错误响应。 例如:

    if (discount < 0):
        raise fn.UserThrownError("Discount cannot be negative.")
    
  • 对所有执行数据库调用使用 try/catch 语句。 返回一条友好消息,用于处理数据库脱机或无法访问的情况。

  • 确保 SQL 语句不会容易受到 SQL 注入攻击。

  • 编写一条友好成功消息,告知最终用户其作成功。

配置函数参数的输入

用户数据函数接受的每个参数都需要映射到 Power BI 报表中的元素。 此元素可以是按钮、列表或文本切片器;数据字段;或度量值。

切片器作为输入控件

三种支持的切片器类型(按钮、列表和文本)都是预览功能,有时称为 新切片器。 请确保按照先决条件中所述启用它们。

若要使用按钮或列表切片器作为参数,需要从 “数据 ”窗格链接到数据字段。 如果只想使用按钮或列表切片器作为输入控件,而不是筛选数据,请通过 “编辑”交互删除所有视觉交互。 有关编辑交互的详细信息,请参阅 更改视觉对象在 Power BI 报表中的交互方式

若要将文本切片器用作参数,将其链接到数据字段是可选的。 仅当想要筛选报表中的数据时,才将其链接到数据字段。 否则,请在“ 数据 ”窗格中创建它而不使用数据字段。

数据字段或度量值作为输入控件

数据字段和度量值也可以作为参数链接。 只能选择与输入参数类型匹配的字段。

如果需要将单个主键传递给数据函数(例如 CustomerID)进行编辑/删除作,可以使用表达式 SELECTEDVALUE DAX

例如:

SelectedCustomerID = SELECTEDVALUE(Customer[CustomerID]) 

有关详细信息,请参阅 创建数据分析度量值

设置数据函数按钮

创建数据函数按钮并将其配置为将报表元素或用户输入连接到用户数据函数。

  1. 在 Power BI Desktop 中,向报表添加按钮。

  2. 格式按钮 窗格中,展开 操作 菜单。 将 动作 开关切换为 开启(如果尚未开启)。

  3. “类型” 下拉菜单中,选择 “数据”函数

    选择数据函数选项后,将显示以下参数: 工作区函数集和数据 函数

    小窍门

    如果未看到 “数据函数 ”选项,请确保在 Power BI Desktop 中启用了 Translytical 任务流 预览功能。

  4. 为按钮提供以下值:

    参数 价值
    工作空间 选择包含用户数据函数的工作区。
    函数集 选择包含数据函数的函数集。
    数据函数 选择您的数据函数。

    小窍门

    如果未看到要使用的用户数据函数,请确保数据函数返回字符串。

  5. 选择数据函数后,其他参数将显示为表示该函数采用的参数。 对于每个参数,可以:

    • 使用下拉菜单从报表中选择切片器。
    • 选择 条件格式fx)按钮可从报表中选择数据字段或度量值。

自定义报表界面

在报表中,可以使用切片器、数据字段和按钮的任意组合创建自定义交互式视觉对象。 以下部分提供了示例和建议。

与切片器的接口

在报表页上,可以创建一个分区,其中包含不与其他视觉对象交互的切片器,以便它们仅充当输入控件。 在底部,放置一个按钮,并将其动作设置为 Data 函数,并通过切片器将其链接到其参数。 你可以以任何方式设计此部分,但关键是使其看起来像一个可作的节,从报表内容中脱颖而出。

以下示例显示了包含三个元素的交互式部分:

  • 用于输入新订单 ID 的文本切片器
  • 用于从三个选项之一中选择订单状态的按钮切片器
  • 用于将切片器中的输入提交到用户数据函数的按钮

显示包含两个切片器和一个数据函数按钮的报表示例的屏幕截图。

可以通过向每个切片器添加输入值来测试该按钮是否与切片器正确链接。 如果接受参数,按钮将更改其样式。 自定义按钮样式,使其状态更具吸引力。 在 Power BI Desktop 中,只有在发布报表之后才能触发操作。

显示包含两个切片器和一个数据函数按钮的同一报表示例的屏幕截图。切片器具有示例输入,并且已启用该按钮。

与数据字段和度量值的接口

在报表页上,可以使用报表可视化对象和具有数据函数功能的按钮,将参数关联到数据字段。

以下示例显示了一个包含两个元素的交互式部分:

  • 一个 ,可以选择行作为订单 ID 输入
  • 将表行作为输入提交到用户数据函数的按钮

显示包含表和数据函数按钮的报表示例的屏幕截图。

可以通过单击表中的一行来测试该按钮是否正确链接到表格。 如果接受参数,按钮将更改其样式。 自定义按钮样式,使其状态更具吸引力。 在 Power BI Desktop 中,无法触发动作,直到报表发布。

显示包含表和数据函数按钮的相同报表示例的屏幕截图。该表已选择一行,并且该按钮处于启用状态。

具有混合输入的接口

可以使用切片器和数据字段/度量值的组合来创建最具创意的体验。 将数据函数中定义的每个参数链接到正确的选项,该选项可以是位于页面的切片器或可见的数据字段或度量值。

以下示例显示了包含三个元素的交互式部分:

  • 一个 ,可以选择其中的行作为订单 ID 的输入
  • 用于从三个选项之一中选择订单状态的按钮切片器
  • 用于将输入提交到用户数据函数的按钮

显示包含表、按钮切片器和数据函数按钮的报表示例的屏幕截图。

可以通过单击表中的一行然后单击切片器按钮,来测试该按钮是否与您的表正确链接。 如果接受参数,按钮将更改其样式。 自定义按钮样式,使其状态更具吸引力。 在 Power BI Desktop 中,报表发布之前,无法触发动作。

显示包含表、切片器和数据函数按钮的同一报表示例的屏幕截图。表和切片器已选择输入并启用该按钮。