Динамически создать объект / переменную и установить ее значение - PullRequest
1 голос
/ 26 марта 2020

enter code here Можно ли динамически генерировать переменную или объект? Я сохраняю некоторые настройки, такие как стандартные цвета, в списке sharepoint (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")

Я ожидал, что 3-я команда создаст переменную с именем ab и установит для нее значение «ab», но t не принимает строки в именах переменных.

Возможен ли любой из двух вариантов, если да, то как?

1 Ответ

0 голосов
/ 26 марта 2020

Второй вариант сегодня определенно невозможен - для этого можно создать новый запрос функции в https://aka.ms/powerapps-ideas.

Для первого варианта, если вы знаете все поля что объект PowerAppsStyling будет иметь, то вы можете в начале вашего приложения (например, в App.OnStart logi c) прочитать значения из списка настроек 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 в своем приложении.

Надеюсь, это поможет!

...