【问题标题】:How do I use collect and if functions together in Powerapps?如何在 Powerapps 中同时使用 collect 和 if 函数?
【发布时间】:2019-05-19 11:51:31
【问题描述】:

以下是我尝试过的示例 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 函数?谢谢。

【问题讨论】:

    标签: powerapps powerapps-formula powerapps-collection


    【解决方案1】:

    不清楚您想在哪里使用 PowerApps 收集功能。请详细说明。

    还不清楚"Area" 是什么。它是集合还是 Excel 表、Sharepoint 列表或 SQL 表?

    在您的 PowerApps 代码中选择一个命名约定并始终如一地使用它。

    示例:

    • 在您的代码中为所有集合添加前缀col
      • colArea
    • 使所有数据表(Sharepoint、SQL 等)全部大写
      • 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,但不能用于多选。

    【讨论】:

      【解决方案2】:

      好吧,如果在 Powerapps 中有单独的语法,即 if (condition = true, "do this", "else do this")。如果您希望在 if 中发生多个动作,那么您的语法将变为 if(condition = true, "do this";"do this also";"do this also", "else do this";"else do this also" )。

      如果很容易,您可以使用收集功能。

      【讨论】:

        【解决方案3】:

        这是一个有效的(希望是自我解释的)示例,用于选择和取消选择 Power App 集合中的记录=>

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

        如果在集合中找到记录,则将其删除,否则将其放入集合中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-26
          • 2019-01-03
          • 1970-01-01
          • 2019-08-23
          相关资源
          最近更新 更多