Как я могу использовать сбор и если функции вместе в 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
Тогда вы сразу сможете определить, какой это тип источника данных.
Вы также можете упростить свой код, удалив вложенные
If
s:
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)
)
если запись найдена в коллекции, удалите ее, в противном случае поместите в коллекцию