1

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”,但 t 不接受变量名中的字符串。

这两个选项中的任何一个是否可能,如果是,如何?

4

1 回答 1

0

第二个选项今天绝对不可能 - 您可以考虑在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在您的应用程序中引用。

希望这可以帮助!

于 2020-03-26T14:40:01.343 回答