Remove 與 RemoveIf 函式
適用於: 畫布應用程式 模型導向應用程式 Power Platform CLI
注意
PAC CLI pac power-fx 命令不支援 RemoveIf 函式。
Description
Remove 函式
使用 Remove 函式來移除資料來源中的一或多筆特定記錄。
在 集合物件中,整筆記錄必須相符。 您可以使用 RemoveFlags.All 引數來移除記錄的所有複本;否則只會移除一個記錄複本。
RemoveIf 函式
使用 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 且開頭為此資料表資料的一或多筆資料來源記錄進行移除︰
建立含範例記錄的集合物件
若要使用此資料建立集合物件:
插入 Button 控制項。
將 button 控制項的 OnSelect 屬性設為以下公式:
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
按住 Alt 鍵,選取按鈕。
使用公式從集合物件移除範例記錄
公式 | 描述 | Result |
---|---|---|
Remove( IceCream, LookUp( IceCream, Flavor="Chocolate" )) |
移除資料來源中的 Chocolate 記錄。 | IceCream 資料來源已修改。 |
Remove( IceCream, LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) ) |
從資料來源中移除兩筆記錄。 | IceCream 資料來源已修改。 |
RemoveIf( IceCream, Quantity > 150 ) | 移除 Quantity 大於 150 的記錄。 | IceCream 資料來源已修改。 |
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) | 移除 Quantity 大於 150 且 Flavor 開頭為 S 的記錄。 | IceCream 資料來源已修改。 |
RemoveIf( IceCream, true ) | 從資料來源中移除所有記錄。 | IceCream 資料來源已修改。 |
範例 - 資源庫外的移除按鈕
在此範例中,您將使用 Gallery control 來列出資料表中的記錄。 然後使用 Remove 函式選擇性地移除一個項目。
範例資料的準備
此範例使用 Microsoft Dataverse 中的連絡人資料表,該資料表可用於範例應用程式和資料。 當您 建立環境 時,您可以部屬 sample apps and data。 您也可以改為使用其他任何資料來源。
資源庫外的移除按鈕
在此範例中,您將使用資源庫外的 button 來移除項目。
使用手機版面配置建立 新的空白畫布應用程式 。
在左側窗格中,選取Insert。
選取 Vertical gallery。
Gallery 控制項即會新增至您的畫面。系統會提示您選取資料來源,您可以從可用的資料來源選取資料來源。
例如,選取連絡人資料表以使用範例資料:該資源庫會顯示此資料表中的項目:
從左窗格插入 Button 控制項:
在資源庫項目下方移動新增的按鈕:
更新按鈕文字屬性以 Remove record。 您也可以使用您選擇的文字:
將 button 控制項的 OnSelect 屬性設定為下列公式:
Remove( Contacts, Gallery1.Selected )
資源庫控制項會讓目前所選取的記錄可使用 Selected 屬性。 Remove函數參照這個選取的記錄來移除它。
使用右上部的 Play 按鈕預覽應用程式,或在鍵盤上按 F5 鍵:
選取要移除的記錄,例如此範例中 Nancy 的記錄:
選取 Remove record:
選取按鈕時,就會移除選取的記錄 (在此範例中,南茜的記錄)。
關閉應用程式預覽圖示。
小費
您也可以使用 Alt key 替代行為,而不是使用 Play 按鈕或 F5 的應用程式預覽。
範例-在資源庫中可以使用垃圾桶圖示
在此範例中,您將使用資源庫內的 icon 來移除項目。
建立含範例資料的集合物件
如果您已經 準備好範例資料,請略過此步驟,並移至 資料庫中的垃圾桶圖示。
新增 Button 控制項到您的畫面。
將 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" } )
按住 Alt 鍵,選取按鈕。
已建立範例集合物件,您可以在下列範例中使用它。
在資源庫中的垃圾桶圖示
使用手機版面配置建立 新的空白畫布應用程式 。
在左側窗格中,選取Insert。
選取 Vertical gallery。
Gallery 控制項即會新增至您的畫面。系統會提示您選取資料來源,您可以從可用的資料來源選取資料來源。
例如,選取連絡人資料表以使用範例資料:如果您建立了 集合物件,請改為選取您的集合物件:
在資源庫的頂端項目中選取控制項。
若要確保下一個步驟將項目插入到資源庫的範本中,而不是位於資料庫外,請在移至下一個步驟之前,先執行此步驟。
從左窗格中選取 Add icon。
注意
Add icon 會在資源庫的左側插入 + 圖示,並針對資源庫中的每個項目複製該圖示。
在頂端項目中,將圖示移至畫面的右邊。
選取圖示的 Icon 屬性,並將它設定為下列公式,以將圖示圖像更新為垃圾桶圖示:
Icon.Trash
Note
只有在您積極編輯公式時,才會顯示 Icon. 首碼。
將 OnSelect 屬性設定為下列公式:
Remove( [@Contacts], ThisItem )
注意
在此範例中,您必須使用全域去除混淆運算子 [@...]以及使用連絡人資料表的範例資料,以避免與一對多關聯發生衝突。 如果您使用資料來源 (例如清單或 SQL 伺服器資料表),則不需要使用全域消歧運算子。
使用右上部的 Play 按鈕預覽應用程式,或在鍵盤上按 F5 鍵。
選取記錄旁邊的垃圾桶圖示,例如 Maria 的:
記錄已刪除:
關閉應用程式預覽圖示。