动态创建 object/variable 并设置其值
Dynamically create object/variable and set its value
enter code here
是否可以动态生成变量或对象?
我将一些设置(如标准颜色)存储在共享点列表 (PowerAppStyling) 中,并阅读它以动态设置我所有应用程序的样式。
喜欢:
Object,Property,Value
Label,Font,Segoe UI
Label,Fill,White
Label,Color,Grey
这工作正常,我可以这样设置标签字体:
First(Filter(PowerAppStyling,Object = "Label" && Property = "Font")).Value
现在,为了使它更易于阅读,从上面的列表中,我想动态地在运行时创建一个如下所示的对象:
PowerAppStyling.Label.Font
应该给出 "Segoe UI" 的值或我连接列的简单变量,例如 LabelFont
.
我尝试了 Set() 函数:
Set(a,"a");Set(b,"b");Set(concatenate(a,b),"ab")
我预计第三条命令将创建一个名为 ab
的变量并将其值设置为 "ab",但它不接受变量名称中的字符串。
这两个选项中的任何一个都可以吗?如果可以,怎么办?
第二个选项今天绝对不可能 - 您可以考虑在 https://aka.ms/powerapps-ideas 中为此创建一个新功能请求。
对于第一个选项,如果您知道 'PowerAppsStyling' 对象将具有的所有字段,那么您可以在应用程序的开头(例如,在 App.OnStart 逻辑上)读取设置 SP 列表中的值并创建对象,以便您可以在整个应用程序中使用它,类似于
ClearCollect(localStylesTemp, PowerAppsStyling); // To make only 1 network call to the SP list
Set(
LocalStyles,
{
Label: {
Font: LookUp(localStylesTemp, Object = "Label" And Property = "Font", Value),
Fill: LookUp(localStylesTemp, Object = "Label" And Property = "Fill", Value),
Color: LookUp(localStylesTemp, Object = "Label" And Property = "Color", Value)
},
Button: {
Font: LookUp(localStylesTemp, Object = "Button" And Property = "Font", Value),
Fill: LookUp(localStylesTemp, Object = "Button" And Property = "Fill", Value),
Color: LookUp(localStylesTemp, Object = "Button" And Property = "Color", Value)
}
})
之后您可以在您的应用中引用 LocalStyles.Label.Font
。
希望对您有所帮助!
enter code here
是否可以动态生成变量或对象?
我将一些设置(如标准颜色)存储在共享点列表 (PowerAppStyling) 中,并阅读它以动态设置我所有应用程序的样式。
喜欢:
Object,Property,Value
Label,Font,Segoe UI
Label,Fill,White
Label,Color,Grey
这工作正常,我可以这样设置标签字体:
First(Filter(PowerAppStyling,Object = "Label" && Property = "Font")).Value
现在,为了使它更易于阅读,从上面的列表中,我想动态地在运行时创建一个如下所示的对象:
PowerAppStyling.Label.Font
应该给出 "Segoe UI" 的值或我连接列的简单变量,例如 LabelFont
.
我尝试了 Set() 函数:
Set(a,"a");Set(b,"b");Set(concatenate(a,b),"ab")
我预计第三条命令将创建一个名为 ab
的变量并将其值设置为 "ab",但它不接受变量名称中的字符串。
这两个选项中的任何一个都可以吗?如果可以,怎么办?
第二个选项今天绝对不可能 - 您可以考虑在 https://aka.ms/powerapps-ideas 中为此创建一个新功能请求。
对于第一个选项,如果您知道 'PowerAppsStyling' 对象将具有的所有字段,那么您可以在应用程序的开头(例如,在 App.OnStart 逻辑上)读取设置 SP 列表中的值并创建对象,以便您可以在整个应用程序中使用它,类似于
ClearCollect(localStylesTemp, PowerAppsStyling); // To make only 1 network call to the SP list
Set(
LocalStyles,
{
Label: {
Font: LookUp(localStylesTemp, Object = "Label" And Property = "Font", Value),
Fill: LookUp(localStylesTemp, Object = "Label" And Property = "Fill", Value),
Color: LookUp(localStylesTemp, Object = "Label" And Property = "Color", Value)
},
Button: {
Font: LookUp(localStylesTemp, Object = "Button" And Property = "Font", Value),
Fill: LookUp(localStylesTemp, Object = "Button" And Property = "Fill", Value),
Color: LookUp(localStylesTemp, Object = "Button" And Property = "Color", Value)
}
})
之后您可以在您的应用中引用 LocalStyles.Label.Font
。
希望对您有所帮助!