Funktionerna Remove och RemoveIf
Gäller för: Arbetsyteappar Modellbaserade appar Power Platform CLI
Tar bort poster från en datakälla.
Kommentar
PAC CLI pac power-fx-kommandon stöder inte RemoveIf-funktionen .
Beskrivning
Funktionen Remove
Använd funktionen Remove för att ta bort en viss post eller poster från en datakälla.
I samlingar måste hela posten matcha. Du kan använda argumentet RemoveFlags.All för att ta bort alla kopior av en post, annars tas bara en kopia av posten bort.
Funktionen RemoveIf
Använd funktionen RemoveIf för att ta bort en post eller poster baserat på ett villkor eller en uppsättning av villkor. Varje villkor kan vara en formel som resulterar i true eller false och kan referera till kolumner i datakällan efter namn. Varje villkor utvärderas individuellt för varje post och posten tas bort om alla villkor utvärderas till true.
Remove and RemoveIf returnerar den ändrade datakällan som en tabell. Du kan använda båda funktionerna i beteendeformler.
Du kan också använda funktionen Clear för att ta bort alla poster i en samling.
Delegering
Det går inte att delegera funktionerna när de används tillsammans med en datakälla. Endast den första delen av datakällan hämtas och sedan tillämpas funktionen. Detta kan inte representerar en fullständig överblick. En varning kan visas vid redigeringstiden för att påminna dig om den här begränsningen.
Delegeringsstöd (experimentellt)
Delegeringssupport för RemoveIf finns nu i Experimentell förhandsvisning (standard AV) för datakällor som har stöd för det. Om en datakälla inte stödjer denna funktion kommer Power Apps att skicka en förfrågan till servern och all data som matchar filteruttrycket kommer att hämtas, upp till maximalt 500, 2000 eller sidstorlek för data. Sedan utförs en borttagning på var och en av posterna med enskilda anrop till servern.
Syntax
Remove( DataSource,Record1 [, Record2, ... ] [, RemoveFlags.All ] )
- DataSource – Obligatoriskt. Den datakälla som innehåller posten eller posterna som du vill ta bort.
- Poster – obligatoriskt. Den eller de poster som ska tas bort.
- RemoveFlags.All – Valfritt. I en samling kan samma post visas mer än en gång. Du kan lägga till argumentet RemoveFlags.All för att ta bort alla kopior av posten.
Ta bort ( Datakälla, Tabell [, RemoveFlags.All ] )
- DataSource – Obligatoriskt. Den datakälla som innehåller posterna som du vill ta bort.
- Tabell – obligatoriskt. En tabell med poster som ska tas bort.
- RemoveFlags.All – Valfritt. I en samling kan samma post visas mer än en gång. Du kan lägga till argumentet RemoveFlags.All för att ta bort alla kopior av posten.
RemoveIf( DataSource,Villkor [, ... ] )
- DataSource – Obligatoriskt. Den datakälla som innehåller posten eller posterna som du vill ta bort.
- Villkor – Obligatoriskt. En formel som utvärderar till true för den eller de poster som ska tas bort. Du kan använda kolumnnamnen från DataSource i formeln. Om du anger flera Villkor, alla måste utvärderas till true för den eller de poster som ska tas bort.
Exempel – enstaka formler
I det här exemplet flyttar du en post eller poster i en datakälla med namnet IceCream som börjar med data i den här tabellen:
Skapa en samling med exempelposter
Så här skapar du en samling med dessa data:
Lägg till en Button-kontroll.
Ange kontrollen Button egenskap OnSelect som följande funktion:
ClearCollect( IceCream, { ID: 1, Flavor: "Chocolate", Quantity: 100 }, { ID: 2, Flavor: "Vanilla", Quantity: 200 }, { ID: 3, Flavor: "Strawberry", Quantity: 300 } )
Välj knappen medan du håller ned Alt-tangenten:
Ta bort exempelposter från samlingen med hjälp av en formel
Formel | Beskrivning | Result |
---|---|---|
Ta bort( IceCream, LookUp( IceCream, Flavor="Chocolate" )) |
Tar bort posten Choklad från datakällan. | Datakällan IceCream har ändrats. |
Ta bort( IceCream, LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) ) |
Tar bort två poster från datakällan. | Datakällan IceCream har ändrats. |
RemoveIf( IceCream, Kvantitet > 150 ) | Tar bort poster som har en Antal som är större än 150. | Datakällan IceCream har ändrats. |
RemoveIf( IceCream, kvantitet > 150, vänster( smak, 1 ) = "S" ) | Tar bort poster som har ett Antal som är större än 150 och Flavor börjar med ett J. | Datakällan IceCream har ändrats. |
RemoveIf( IceCream, true ) | Tar bort alla poster från datakällan. | Datakällan IceCream har ändrats. |
Exempel – knappen Ta bort utanför ett galleri
I det här exemplet används en Gallery-kontroll för att visa en lista över posterna i en tabell. Och sedan använda funktionen Remove för att selektivt ta bort ett objekt.
Förbereda exempeldata
I det här exemplet används tabellen Kontakter i Microsoft Dataverse som är tillgänglig med exempelappar och data. Du kan distribuera exempelappar och data när du skapar en miljö. Du kan också använda en annan datakälla i stället.
Knappen Ta bort utanför ett galleri
I det här exemplet ska du ta bort ett objekt med hjälp av en knapp som inte ingår i galleriet.
Skapa en ny tom arbetsyteapp med hjälp av en telefon layout.
Välj Infoga i det vänstra fönstret.
Välj vertikalt galleri.
En Gallery-kontroll läggs till på skärmen.Du uppmanas att välja en datakälla där du kan välja en datakälla bland de tillgängliga datakällorna.
Välj till exempel tabellen Kontakter om du vill använda exempeldata:I galleriet visas objekt från den här tabellen:
Infoga en Button-kontroll från den vänstra rutan:
Flytta den tillagda knappen under galleriobjektet.
Uppdatera knapp textegenskap för att ta bort en post. Du kan också använda valfri text:
Ange egenskapen OnSelect för den här Button-kontrollen till följande formel:
Remove( Contacts, Gallery1.Selected )
Gallery-kontrollen gör den valda posten tillgänglig med den Selected egenskapen. Ta bort-funktionen refererar till den valda posten för att ta bort den.
Förhandsgranska appen med hjälp av knappen uppspelning längst upp till höger, eller tryck på F5 på tangentbordet:
Markera en post som du vill ta bort, t.ex. Nancy-posten i det här exemplet:
Välj Ta bort post:
Om du markerar knappen tas den markerade posten bort (i det här exemplet är Nancys post).
Stäng förhandsgranskning av programmet.
Dricks
Du kan också använda alternativt funktionssätt i Alt-tangenten istället för att använda förhandsgranskningen av programmet med knappen Spela upp eller F5.
Exempel – papperskorgsikonen i ett galleri
I det här exemplet ska du ta bort ett objekt med hjälp av en ikonen placerad inne i galleriet.
Skapa en samling med exempeldata
Om du redan har förberett exempeldata kan du hoppa över det här steget och flytta till papperskorgen i ett galleri.
Lägg till en Button-kontroll på skärmen.
Ange egenskapen OnSelect till följande formel:
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" } )
Välj knappen medan du håller ned Alt-tangenten:
Exempelsamlingen skapas som du kan använda i följande exempel.
Papperskorgsikonen i ett galleri
Skapa en ny tom arbetsyteapp med hjälp av en telefon layout.
Välj Infoga i det vänstra fönstret.
Välj vertikalt galleri.
En Gallery-kontroll läggs till på skärmen.Du uppmanas att välja en datakälla där du kan välja en datakälla bland de tillgängliga datakällorna.
Välj till exempel tabellen Kontakter om du vill använda exempeldata:Om du skapade en samling markerar du samlingen i stället:
Markera en kontroll i det översta objektet i galleriet.
Se till att du följer stegen nedan innan du går vidare till nästa steg för att se till att nästa steg infogar ett objekt i galleriets mall och inte utanför galleriet.
Välj Lägg till ikon från den vänstra rutan.
Kommentar
Lägg till ikon infogar en + ikon till vänster i galleriet, replikerad för varje objekt i galleriet.
Flytta ikonen till höger på skärmen i det översta objektet.
Välj egenskapen Icon för ikonen och ställ in den på följande formel för att uppdatera ikonbilden som ikon för papperskorgen:
Icon.Trash
Kommentar
Ikon prefix visas endast när du redigerar formeln aktivt.
Ange egenskapen OnSelect till följande formel:
Remove( [@Contacts], ThisItem )
Kommentar
Du måste använda den globala disambiguationsoperatorn[@...] i det här exemplet med exempeldata som använder tabellen Kontakter för att undvika konflikt med en En till många relation. Om du använder data källor som en lista eller en SQL Server-tabell är det inte nödvändigt att använda global disambigueringsoperatör.
Förhandsgranska appen med hjälp av knappen uppspelning längst upp till höger, eller tryck på F5 på tangentbordet.
Välj papperskorgsikonen bredvid en post, till exempel Maria:
Posten tas bort:
Stäng förhandsgranskning av appen.