Remove 與 RemoveIf 函式

適用於: 畫布應用程式 模型導向應用程式 Power Platform CLI

移除 資料來源 中的 記錄。

注意

PAC CLI pac power-fx 命令不支援 RemoveIf 函式。

名描述

移除函數

使用 Remove 函式來移除資料來源中的一或多筆特定記錄。

在 集合物件中,整筆記錄必須相符。 您可以使用 RemoveFlags.All 引數來移除記錄的所有複本;否則只會移除一個記錄複本。

移除如果函數

使用 RemoveIf 函式,根據一個或一組條件來移除一或多筆記錄。 每個條件可以是任何會產生 true 或 false 的公式,而且可以依名稱來參考資料來源的資料 行。 系統會針對每一筆記錄個別評估每個條件,如果所有條件都評估為 true,便會移除該記錄。

Remove 和 RemoveIf 都會以 資料表 形式來傳回已修改的資料來源。 您只能在 行為公式 中使用這兩個函式。

您也可以使用 Clear 函式來移除集合物件中的所有記錄。

委派

只有少數數據源支援 RemoveIf。 對於不支援此功能的資料來源,Power Apps 將查詢伺服器並檢索與篩選器運算式相符的所有資料,最多可達 500、2000 筆記錄或資料頁大小。 隨後,它將通過對伺服器進行單獨調用來單獨刪除這些記錄中的每一個。

語法

Remove( DataSource, Record1 [, Record2, ... ] [, RemoveFlags.All ] )

  • DataSource – 必要項目。 包含您要移除之一或多筆記錄的資料來源。
  • Record(s) – 必要。 要移除的一或多筆記錄。
  • RemoveFlags.All – 選用。 在集合中,相同的記錄可能出現多次。 您可以新增 RemoveFlags.All 引數來移除記錄的所有複本。

Remove( DataSource, Table [, RemoveFlags.All ] )

  • DataSource – 必要項目。 包含您要移除之記錄的資料來源。
  • Table – 必要。 要移除之記錄的資料表。
  • RemoveFlags.All – 選用。 在集合中,相同的記錄可能出現多次。 您可以新增 RemoveFlags.All 引數來移除記錄的所有複本。

RemoveIf( DataSource,Condition [, ... ] )

  • DataSource – 必要項目。 包含您要移除之一或多筆記錄的資料來源。
  • Condition(s) – 必要。 對於要移除的一或多筆記錄會評估為 true 的公式。 您可以在公式中使用 DataSource 的行名稱。 如果您指定多個 Conditions,這些條件全都必須評估為 true 才能移除該一或多筆記錄。

範例 - 單一公式

在這些範例中,您會對名為 IceCream 且開頭為此資料表資料的一或多筆資料來源記錄進行移除︰

Icecream 範例。

建立含範例記錄的集合物件

若要使用此資料建立集合物件:

  1. 插入 Button 控制項。

  2. 將 button 控制項的 OnSelect 屬性設為以下公式:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. 按住 Alt 鍵,選取按鈕。

使用公式從集合物件移除範例記錄

公式 名描述 Result
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ))
移除資料來源中的 Chocolate 記錄。 包含 Vanilla 和 Strawberry 的結果。

IceCream 資料來源已修改。
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) )
從資料來源中移除兩筆記錄。 僅 Vanilla 的結果。

IceCream 資料來源已修改。
RemoveIf( IceCream, Quantity > 150 ) 移除 Quantity 大於 150 的記錄。 僅 Chocolate 的結果。

IceCream 資料來源已修改。
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) 移除 Quantity 大於 150 且 Flavor 開頭為 S 的記錄。 包含 Chocolate 和 Vanilla 的結果。


IceCream 資料來源已修改。
RemoveIf( IceCream, true ) 從資料來源中移除所有記錄。 沒有 IceCream 的結果。

IceCream 資料來源已修改。

在此範例中,您將使用 Gallery control 來列出資料表中的記錄。 然後使用 Remove 函式選擇性地移除一個項目。

範例資料的準備

此範例使用 Microsoft Dataverse 中的連絡人資料表,該資料表可用於範例應用程式和資料。 當您 建立環境 時,您可以部屬 sample apps and data。 您也可以改為使用其他任何資料來源。

在此範例中,您將使用資源庫外的 button 來移除項目。

  1. 使用手機版面配置建立 新的空白畫布應用程式 。

    使用手機版面配置建立新的空白畫布應用程式 。

  2. 在左側窗格中,選取Insert。

  3. 選取 Vertical gallery。
    Gallery 控制項即會新增至您的畫面。

    使用插入工具窗格新增垂直資源庫控制項。

  4. 系統會提示您選取資料來源,您可以從可用的資料來源選取資料來源。
    例如,選取連絡人資料表以使用範例資料:

    選取要顯示在資源庫中的「連絡人」資料表。

    該資源庫會顯示此資料表中的項目:

    已新增顯示連絡人資料表的資源庫。

  5. 從左窗格插入 Button 控制項:

    使用插入工具窗格新增按鈕控制項。

  6. 在資源庫項目下方移動新增的按鈕:

    移動按鈕。

  7. 更新按鈕文字屬性以 Remove record。 您也可以使用您選擇的文字:

    重新命名按鈕。

  8. 將 button 控制項的 OnSelect 屬性設定為下列公式:

    Remove( Contacts, Gallery1.Selected )
    

    將按鈕控制項的 OnSelect 屬性設定為以下公式。

    資源庫控制項會讓目前所選取的記錄可使用 Selected 屬性。 Remove函數參照這個選取的記錄來移除它。

  9. 使用右上部的 Play 按鈕預覽應用程式,或在鍵盤上按 F5 鍵:

    預覽應用程式。

  10. 選取要移除的記錄,例如此範例中 Nancy 的記錄:

    選取一筆記錄。

  11. 選取 Remove record:

    現在,不包含已移除的南茜的連絡人資源庫。

    選取按鈕時,就會移除選取的記錄 (在此範例中,南茜的記錄)。

  12. 關閉應用程式預覽圖示。

    小費

    您也可以使用 Alt key 替代行為,而不是使用 Play 按鈕或 F5 的應用程式預覽。

在此範例中,您將使用資源庫內的 icon 來移除項目。

建立含範例資料的集合物件

如果您已經 準備好範例資料,請略過此步驟,並移至 資料庫中的垃圾桶圖示。

  1. 新增 Button 控制項到您的畫面。

  2. 將 OnSelect 屬性設定為下列公式:

    ClearCollect( SampleContacts,
          { 'Full Name': "Yvonne McKay (sample)",      'Primary Email': "someone_a@example.com" },
          { 'Full Name': "Susanna Stubberod (sample)", 'Primary Email': "someone_b@example.com" },
          { 'Full Name': "Nancy Anderson (sample)",    'Primary Email': "someone_c@example.com" },
          { 'Full Name': "Maria Campbell (sample)",    'Primary Email': "someone_d@example.com" },
          { 'Full Name': "Robert Lyon (sample)",       'Primary Email': "someone_e@example.com" },
          { 'Full Name': "Paul Cannon (sample)",       'Primary Email': "someone_f@example.com" },
          { 'Full Name': "Rene Valdes (sample)",       'Primary Email': "someone_g@example.com" }
    )
    
  3. 按住 Alt 鍵,選取按鈕。

已建立範例集合物件,您可以在下列範例中使用它。

  1. 使用手機版面配置建立 新的空白畫布應用程式 。

    使用手機版面配置建立新的空白畫布應用程式 。

  2. 在左側窗格中,選取Insert。

  3. 選取 Vertical gallery。
    Gallery 控制項即會新增至您的畫面。

    使用插入工具窗格新增垂直資源庫控制項。

  4. 系統會提示您選取資料來源,您可以從可用的資料來源選取資料來源。
    例如,選取連絡人資料表以使用範例資料:

    選取要顯示在資源庫中的「連絡人」資料表。

    如果您建立了 集合物件,請改為選取您的集合物件:

    連絡人集合物件範例。

  5. 在資源庫的頂端項目中選取控制項。

    若要確保下一個步驟將項目插入到資源庫的範本中,而不是位於資料庫外,請在移至下一個步驟之前,先執行此步驟。

    選取資源庫中的頂端記錄。

  6. 從左窗格中選取 Add icon。

    使用插入工具窗格新增圖示控制項。

    注意

    Add icon 會在資源庫的左側插入 + 圖示,並針對資源庫中的每個項目複製該圖示。

  7. 在頂端項目中,將圖示移至畫面的右邊。

    移動圖示。

  8. 選取圖示的 Icon 屬性,並將它設定為下列公式,以將圖示圖像更新為垃圾桶圖示:

    Icon.Trash
    

    注意

    只有在您積極編輯公式時,才會顯示 Icon. 首碼。

    將圖示變更為垃圾桶圖示。

  9. 將 OnSelect 屬性設定為下列公式:

    Remove( [@Contacts], ThisItem )
    

    注意

    在此範例中,您必須使用全域去除混淆運算子[@...]以及使用連絡人資料表的範例資料,以避免與一對多關聯發生衝突。 如果您使用資料來源 (例如清單或 SQL 伺服器資料表),則不需要使用全域消歧運算子。

    垃圾桶圖示的 OnSelect。

  10. 使用右上部的 Play 按鈕預覽應用程式,或在鍵盤上按 F5 鍵。

  11. 選取記錄旁邊的垃圾桶圖示,例如 Maria 的:

    已移除其中一個連絡人的資源庫。

    記錄已刪除:

    已刪除的記錄。

  12. 關閉應用程式預覽圖示。