Как я могу использовать сбор и если функции вместе в Powerapps?

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

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-app так, чтобы он мог использовать функцию collect вместе с функцией if? Благодарю.

1 ответ

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

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

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

Пример:

  • Префикс всех коллекций в вашем коде с col
    • colArea
  • Сделайте все таблицы данных (Sharepoint, SQL и т. Д.) ALL CAPITALS_WITH_UNDERSCORES
    • MY_SHAREPOINT_LIST

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

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

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если есть логика ветвления, но не для множественного выбора.

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

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

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

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

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

Другие вопросы по тегам