Remove 與 RemoveIf 函式

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

移除 資料來源 中的 記錄

注意

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

Description

Remove 函式

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

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

RemoveIf 函式

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

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

您也可以使用 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( DataSourceCondition [, ... ] )

  • 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 控制項:

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

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

    移動按鈕。

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

    重新命名按鈕。

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

    Remove( Contacts, Gallery1.Selected )
    

    將 button 控制項的 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
    

    Note

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

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

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

    Remove( [@Contacts], ThisItem )
    

    注意

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

    垃圾桶圖示的 OnSelect。

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

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

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

    記錄已刪除:

    已刪除的記錄。

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