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 –必需。 包含您要移除之一或多筆記錄的資料來源。
- Records (記錄 )–必需。 要移除的一或多筆記錄。
- RemoveFlags.All –可選。 在集合中,相同的記錄可能出現多次。 您可以新增 RemoveFlags.All 引數來移除記錄的所有複本。
刪除( DataSource,Table [, RemoveFlags.All ])
- DataSource –必需。 包含您要移除之記錄的資料來源。
- Table –必需。 要移除之記錄的資料表。
- RemoveFlags.All –可選。 在集合中,相同的記錄可能出現多次。 您可以新增 RemoveFlags.All 引數來移除記錄的所有複本。
RemoveIf( DataSource, 條件 [,... ])
- DataSource –必需。 包含您要移除之一或多筆記錄的資料來源。
- Conditions (條件 )–必需。 對於要移除的一或多筆記錄會評估為 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,數量 > 150) | 移除 Quantity 大於 150 的記錄。 | IceCream 資料來源已修改。 |
RemoveIf(霜淇淋,數量 > 150,left(風味,1)=“S”) | 移除 Quantity 大於 150 且 Flavor 開頭為 S 的記錄。 | IceCream 資料來源已修改。 |
RemoveIf(霜淇淋,真) | 從資料來源中移除所有記錄。 | 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
注意
只有在您積極編輯公式時,才會顯示 Icon. 首碼。
將 OnSelect 屬性設定為下列公式:
Remove( [@Contacts], ThisItem )
注意
在此範例中,您必須使用全域去除混淆運算子 [@...]以及使用連絡人資料表的範例資料,以避免與一對多關聯發生衝突。 如果您使用資料來源 (例如清單或 SQL 伺服器資料表),則不需要使用全域消歧運算子。
使用右上部的 Play 按鈕預覽應用程式,或在鍵盤上按 F5 鍵。
選取記錄旁邊的垃圾桶圖示,例如 Maria 的:
記錄已刪除:
關閉應用程式預覽圖示。