PowerApps 中的可重用函数
Reusable Function in PowerApps
我们应用程序的不同部分中有 'chunks' 个相同的公式。鉴于 PA 缺少实际的命名函数,是否有任何变通方法可以让我们重用 function/formula 以防止重复 'code'(即公式)?
一个选项是创建一个隐藏按钮或其他可选项目,然后将公式分配给该按钮。每当您需要重新运行公式而不是重新创建公式时,请使用 Select(Button1).
例如,如果您需要一个添加到集合的公式:
- 添加一个名为 Button1 的按钮。
- 将可见 属性 设置为 False
- 将开启Select 属性设置为
Collect(YourCollection,"A Value")
- 任何需要调用此函数的地方都将 OnSelect 属性 设置为
Select(Button1)
如果你需要给这个集合设置一个动态值,你可以先设置一个上下文变量
- 将 Button1 的 Select 属性 更改为
Collect(YourCollection,yourVariable)
- 将您控制的 Select 属性 设置为
UpdateContext({yourVariable,"A Value"});Select(Button1)
当然这是一个非常简单的示例,可以对其进行扩展。
当然,您也可以走 Power Automate 路线,从 PowerApp 控件中调用 Flow 来完成您的工作,但如果您在 Flow 和 return 值中执行复杂的工作,这可能需要额外的许可然后必须解析。
希望 Microsoft 最终允许我们创建可以在 PowerApps 中调用的自定义函数。
这刚刚宣布,允许制造商使用组件创建用户定义的公式:https://powerapps.microsoft.com/en-us/blog/enhanced-component-properties/。
这是来自博客 post 的示例:
We can use property parameters in input and output properties too. A good example of this would would be a math utilities library. We don’t currently offer Excel’s RandBetween function in Power Apps. But, we can recreate it using the Rand function that we do support.
Let’s start by creating a new MathUtils component with a RandBetween custom property of property type Output and Data type Number:
We’ll add two parameters to this property for the range. Excel names these parameters Bottom and Top, of type Number. These are both required parameters in Excel.
And with the same thing done for Top:
Within the component, we’ll define the formula for calculating RandBetween based on these parameters:
If( Top >= Bottom,
Round( Rand() * (Top - Bottom) + Bottom, 0 ),
Blank()
)
Now we can call it like a function from within our app. We will need to create an instance of this component in our app, with the default name MathUtils_1. Here two slider controls are used as input and the result is shown in a label control:
我们应用程序的不同部分中有 'chunks' 个相同的公式。鉴于 PA 缺少实际的命名函数,是否有任何变通方法可以让我们重用 function/formula 以防止重复 'code'(即公式)?
一个选项是创建一个隐藏按钮或其他可选项目,然后将公式分配给该按钮。每当您需要重新运行公式而不是重新创建公式时,请使用 Select(Button1).
例如,如果您需要一个添加到集合的公式:
- 添加一个名为 Button1 的按钮。
- 将可见 属性 设置为 False
- 将开启Select 属性设置为
Collect(YourCollection,"A Value")
- 任何需要调用此函数的地方都将 OnSelect 属性 设置为
Select(Button1)
如果你需要给这个集合设置一个动态值,你可以先设置一个上下文变量
- 将 Button1 的 Select 属性 更改为
Collect(YourCollection,yourVariable)
- 将您控制的 Select 属性 设置为
UpdateContext({yourVariable,"A Value"});Select(Button1)
当然这是一个非常简单的示例,可以对其进行扩展。
当然,您也可以走 Power Automate 路线,从 PowerApp 控件中调用 Flow 来完成您的工作,但如果您在 Flow 和 return 值中执行复杂的工作,这可能需要额外的许可然后必须解析。
希望 Microsoft 最终允许我们创建可以在 PowerApps 中调用的自定义函数。
这刚刚宣布,允许制造商使用组件创建用户定义的公式:https://powerapps.microsoft.com/en-us/blog/enhanced-component-properties/。
这是来自博客 post 的示例:
We can use property parameters in input and output properties too. A good example of this would would be a math utilities library. We don’t currently offer Excel’s RandBetween function in Power Apps. But, we can recreate it using the Rand function that we do support.
Let’s start by creating a new MathUtils component with a RandBetween custom property of property type Output and Data type Number:
We’ll add two parameters to this property for the range. Excel names these parameters Bottom and Top, of type Number. These are both required parameters in Excel.
And with the same thing done for Top:
Within the component, we’ll define the formula for calculating RandBetween based on these parameters:
If( Top >= Bottom, Round( Rand() * (Top - Bottom) + Bottom, 0 ), Blank() )
Now we can call it like a function from within our app. We will need to create an instance of this component in our app, with the default name MathUtils_1. Here two slider controls are used as input and the result is shown in a label control: