以下是我尝试过的示例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函数,以便它可以将收集功能与使用IF函数一起使用?谢谢。
它不清楚您要在哪里使用PowerApps收集功能。请详细说明。
也不清楚什么是"Area"
。是集合或Excel表还是SharePoint列表或SQL表?
在您的PowerApps代码中选择命名约定并始终使用。
示例:
- 前缀您代码中使用
col
中的所有集合-
colArea
-
- 制作所有数据表(SharePoint,SQL等)所有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
S如果有分支逻辑,但不能用于多项选择。
好吧,如果在PowerApps中具有单独的语法可以使用,即(条件= true,"执行此操作","否则请执行此操作")。如果您想在内部发生多个动作,那么您的语法就会变为(条件= true,"做";"也要";"也要";"也要","否则执行此操作";"否则,也要执行此操作"。)。
如果很容易就可以拥有收集功能。
这是一个有效的 - 希望自我解释 - 选择和取消选择电源应用程序集合中的记录=>
If( LookUp(Sammlung3; ID=ThisItem.ID).ID >0;
RemoveIf(Sammlung3; ID=ThisItem.ID);
Collect(Sammlung3;ThisItem)
)
如果在集合中找到了记录,则将其删除,否则将其放在集合中