在 Canvas 应用程序中求解数学方程式(字符串)
Solve Math Equation(string) in Canvas App
我有一个动态公式需要计算。
这是一个示例 (var1 * var2) / (var3 * (23 * 100))
这些变量将被替换为实际数字,因为它们是用户输入的。目前,我正在使用连接到我的网络 API 的 power automate flow 来抛出任何计算并解决它。然后发回结果。我在 API.
上使用 NCalc and/or DataTable
我希望做的是在标签或文本等任何控件中传递计算。如果将 1+1 放入标签控件的文本 属性。它会立即显示数字 2,但由于我传递的是字符串,所以它不起作用。我可以使用类似 Value("100" * "300") 这样的东西,只要我们只坚持使用数学运算符,它就可以工作,但是当我们有这样的左括号和右括号时,它就会失败 (21 * 100) / (0.43 * ( 23 * 100))
如果您有解决方法,我将不胜感激。提前谢谢你。
您可以在不使用 Power Automate 的情况下使用变量处理所有计算。
示例:
创建一个 TextInput 并在 'onChange' 函数中插入
Set(var1;Value(TextInput1.Text))
创建第二个 TextInput 并在 'onChange' 函数中插入
Set(var2;Value(TextInput2.Text))
创建标签并在文本函数中插入
var1 + var2
每次您更改 TextInputfields 中的值时,Label 都会更新。
这只是一个简单的例子。随函附上我的一项计算,它写在包含括号的文本字段的文本 属性 中:
Round((var_Moment - (var_FuelArm * Slider_Fuel.Value)) / (var_GM -Slider_Fuel.Value );0) & " mm"
它不仅适用于变量,也适用于其他控件的表达式。
因为你传递的是字符串,所以你必须将它们转换为值并将它们分配给变量。
Set(var1;Value(your String Value))
这就是重点,我试图在我的第一个回答中强调。
这是一个希望对您有用的解决方案,它使用免费 mathjs API 来执行计算。
PowerApps
通过按钮触发器将用户输入发送到 PowerAutomate
流。
应用演示:
PowerAutomate 流程步骤:
- PowerApps 触发器
- 初始化变量 -> 值:“在 PowerApps 中询问”
- HTTP
- 响应 PowerApp 或流 -> 值:正文('HTTP')['Body']
PowerApps Button
属性 OnSelect
创建一个变量并使用用户输入作为参数触发流程以接收响应:
UpdateContext({ var_Result: PowerAppsHTTPRequestCalculation.Run(tb_Input.Text).result})
PowerApps Text Label
属性 Text
显示结果值:
var_Result
我最终通过使用 PCF 控件解决了这个问题,因为它允许使用 JavaScript 我可以简单地使用 eval 函数并求解你抛给它的任何方程。
我有一个动态公式需要计算。
这是一个示例 (var1 * var2) / (var3 * (23 * 100))
这些变量将被替换为实际数字,因为它们是用户输入的。目前,我正在使用连接到我的网络 API 的 power automate flow 来抛出任何计算并解决它。然后发回结果。我在 API.
上使用 NCalc and/or DataTable我希望做的是在标签或文本等任何控件中传递计算。如果将 1+1 放入标签控件的文本 属性。它会立即显示数字 2,但由于我传递的是字符串,所以它不起作用。我可以使用类似 Value("100" * "300") 这样的东西,只要我们只坚持使用数学运算符,它就可以工作,但是当我们有这样的左括号和右括号时,它就会失败 (21 * 100) / (0.43 * ( 23 * 100))
如果您有解决方法,我将不胜感激。提前谢谢你。
您可以在不使用 Power Automate 的情况下使用变量处理所有计算。
示例:
创建一个 TextInput 并在 'onChange' 函数中插入
Set(var1;Value(TextInput1.Text))
创建第二个 TextInput 并在 'onChange' 函数中插入
Set(var2;Value(TextInput2.Text))
创建标签并在文本函数中插入
var1 + var2
每次您更改 TextInputfields 中的值时,Label 都会更新。
这只是一个简单的例子。随函附上我的一项计算,它写在包含括号的文本字段的文本 属性 中:
Round((var_Moment - (var_FuelArm * Slider_Fuel.Value)) / (var_GM -Slider_Fuel.Value );0) & " mm"
它不仅适用于变量,也适用于其他控件的表达式。
因为你传递的是字符串,所以你必须将它们转换为值并将它们分配给变量。
Set(var1;Value(your String Value))
这就是重点,我试图在我的第一个回答中强调。
这是一个希望对您有用的解决方案,它使用免费 mathjs API 来执行计算。
PowerApps
通过按钮触发器将用户输入发送到 PowerAutomate
流。
应用演示:
PowerAutomate 流程步骤:
- PowerApps 触发器
- 初始化变量 -> 值:“在 PowerApps 中询问”
- HTTP
- 响应 PowerApp 或流 -> 值:正文('HTTP')['Body']
PowerApps Button
属性 OnSelect
创建一个变量并使用用户输入作为参数触发流程以接收响应:
UpdateContext({ var_Result: PowerAppsHTTPRequestCalculation.Run(tb_Input.Text).result})
PowerApps Text Label
属性 Text
显示结果值:
var_Result
我最终通过使用 PCF 控件解决了这个问题,因为它允许使用 JavaScript 我可以简单地使用 eval 函数并求解你抛给它的任何方程。