PowerQuery中用户定义函数的参数选项

时间:2019-07-14 09:55:19

标签: powerquery powerbi-desktop m

嗨,我一直在尝试制作一个用户定义的函数,该函数允许用户从列表中选择该函数将使用的值。

我尝试将我想要的参数设置为列表以在函数中键入list,但这似乎只接受列而不是用户可以选择的值列表。

let
ListOfDays = {1.1,0.5,2,3,1},
DayOfTheWeek = (Day as list, HoursWorked ) =>
 let
    Earnings = Day * HoursWorked
 in
    Earnings

in
DayOfTheWeek

我想要的是允许用户从ListOfDays列表中选择一个值。我在函数参数中使用了类型列表,以便为用户提供下拉列表类型的选项。

2 个答案:

答案 0 :(得分:1)

如果用户能够打开查询编辑器,那么他们可以从下拉列表中选择一个Day参数,并将其自动应用于查询。

您可以从“管理参数”>“新参数”菜单中创建参数

Manage Param

图片右上方的下拉菜单是用户选择选项的方式。

您的用户定义函数fn_DayOfTheWeek将是以下内容:

let
   DayOfTheWeek = (Day as number, HoursWorked as number) =>
   let
      Earnings = Day * HoursWorked
   in
      Earnings
in
   DayOfTheWeek

请注意,Day是一个数字,而不是一个列表。您想从列表中进行选择,而不是将列表传递给函数。

现在,您可以使用参数调用函数以实际产生结果。

let
    Source = fn_DayOfTheWeek(Day, <HoursWorked value here>)
in
    Source

更改参数后,此结果将更新。

如您所见,对于这种方法,用户是否有权访问查询编辑器是一个关键问题。我不确定是否可以通过某种方式直接在自定义连接器对话框中设置参数,但这在功能上应该是等效的。

答案 1 :(得分:1)

我相信这是您正在寻找的相关文档: github.com/microsoft/DataConnectors/docs/function-docs.md: Adding Function Documentation

尤其要查看Address的定义:

  

此参数的有效值列表。提供此字段会将输入从文本框更改为下拉列表。请注意,这不会阻止用户手动编辑查询以提供备用值。

此(和其他Documentation.AllowedValues字段)是函数参数的元类型输入的一部分。向下滚动到显示如何使用它们的代码片段:

Documentation

它们还提供了屏幕截图,显示调用时的外观:

Screenshot