下面是我尝试过的示例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函数?谢谢。
答案 0 :(得分:2)
不清楚您要在哪里使用PowerApps收集功能。请详细说明。
还不清楚"Area"
是什么。是Collection或Excel表,Sharepoint列表还是SQL表?
在PowerApps代码中选择命名约定,并始终使用它。
示例:
col
为代码中的所有集合添加前缀
colArea
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
,而不是用于多个选择。
答案 1 :(得分:0)
好吧,如果在Powerapps中有if可以使用单独的语法,即if(条件= true,请“执行此操作”,“否则请执行此操作”)。如果您希望if内部发生多个动作,那么您的语法将变为if(condition = true,“执行此操作”;“也执行此操作”;“也执行此操作”,“否则执行此操作”;“否则同时执行此操作” )。
如果很容易就可以具有收集功能。
答案 2 :(得分:0)
这是一个可行的-希望能自我解释-用于在Power App Collection中选择和取消选择记录的示例=>
If( LookUp(Sammlung3; ID=ThisItem.ID).ID >0;
RemoveIf(Sammlung3; ID=ThisItem.ID);
Collect(Sammlung3;ThisItem)
)
如果在集合中找到记录,则将其删除,否则将其放入集合中