Как мне использовать функции collect и if вместе в Powerapps?

Ниже приведены примеры функций приложения Canvas, которые я пробовал, однако я хотел бы преобразовать указанные ниже функции приложения Canvas, которые могут получить доступ к данным коллекции для их использования:

If("EC - Empire Complex" in BuildingDropdown.Selected.Value, Distinct(Filter(Area, "1" in buildingID), storey), If("BTB - Brani Terminal Building" in BuildingDropdown.Selected.Value, Distinct(Filter(Area, "2" in buildingID), storey), If("KW - Keppel Workshop" in BuildingDropdown.Selected.Value, Distinct(Filter(Area, "3" in buildingID),storey), If("CSO - Container Side Office"in BuildingDropdown.Selected.Value, Distinct(Filter(Area, "4" in buildingID), storey), If("Others" in BuildingDropdown.Selected.Value, Distinct(Filter(Area, "5" in buildingID), storey))))))

Как преобразовать указанные выше функции приложения Canvas так, чтобы оно могло использовать функцию сбора вместе с использованием функции if? Спасибо.


person Jae Ying    schedule 19.12.2018    source источник


Ответы (3)


Непонятно, где вы хотите использовать функцию PowerApps Collect. Пожалуйста, дополните.

Также неясно, что такое "Area". Это коллекция, таблица Excel, список Sharepoint или таблица SQL?

Выберите соглашение об именах в коде PowerApps и постоянно используйте его.

Пример:

  • Prefix all Collections in your code with col
    • colArea
  • Make all data tables (Sharepoint, SQL, etc.) ALL CAPITALS_WITH_UNDERSCORES
    • MY_SHAREPOINT_LIST

Тогда вы сразу сможете определить, какой это тип источника данных.

Вы также можете упростить свой код, удалив вложенные If:

If(
    "EC - Empire Complex" in BuildingDropdown.Selected.Value, 
        Distinct(
            Filter(Area, "1" in buildingID), 
            storey
        ), 
    "BTB - Brani Terminal Building" in BuildingDropdown.Selected.Value, 
        Distinct(
            Filter(Area, "2" in buildingID), 
            storey
        ), 
    "KW - Keppel Workshop" in BuildingDropdown.Selected.Value, 
        Distinct(
            Filter(Area, "3" in buildingID),
            storey
        ), 
    "CSO - Container Side Office"in BuildingDropdown.Selected.Value, 
        Distinct(
            Filter(Area, "4" in buildingID), 
            storey
        ), 
    "Others" in BuildingDropdown.Selected.Value, 
        Distinct(
            Filter(
                Area, "5" in buildingID), 
            storey
        )
)

Также помните о Switch() ( хотя здесь это не принесет особой пользы).

Обычно используйте вложенные If, если есть логика ветвления, но не для множественного выбора.

person SeaDude    schedule 18.11.2020

Хорошо, если в Powerapps есть отдельный синтаксис, то есть if (condition = true, «сделай это», «иначе сделай это»). Если вы хотите, чтобы внутри if выполнялось несколько действий, то ваш синтаксис выглядит следующим образом: if (condition = true, «сделать это»; «сделать это также»; «сделать это также», «else do this»; «else do this also» ).

Вы можете легко получить функцию сбора.

person ashay aarya    schedule 08.01.2019

Вот рабочий - надеюсь, самоочевидный - пример выбора и отмены выбора записи в коллекции мощных приложений = ›

If( LookUp(Sammlung3; ID=ThisItem.ID).ID >0; 
          RemoveIf(Sammlung3; ID=ThisItem.ID); 
    Collect(Sammlung3;ThisItem)
  )

если запись найдена в коллекции, удалите ее, в противном случае поместите в коллекцию

person Karl    schedule 10.11.2020