Funktionerna Remove och RemoveIf

Gäller: Arbetsyteappar Modellbaserade appar Power Platform CLI

Tar bort poster från en datakälla.

Kommentar

PAC CLI pac power-fx kommandona stöder inte RemoveIf-funktionen.

Description

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 och RemoveIf returnera 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öder den här funktionen, kommer Power Apps att skicka en fråga till servern och hämta all data som matchar filteruttrycket upp till max. antingen 500, 2 000 eller datasidans storlek. Sedan utförs en borttagning på var och en av posterna med enskilda anrop till servern.

Syntax

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

  • DataSource – Krävs. Den datakälla som innehåller posten eller posterna som du vill ta bort.
  • Record(s) – 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.

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

  • DataSource – Krävs. Den datakälla som innehåller posterna som du vill ta bort.
  • Table – krävs. 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, Condition [, ... ] )

  • DataSource – Krävs. Den datakälla som innehåller posten eller posterna som du vill ta bort.
  • Condition(s) – Krävs. 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:

IceCream-exempel.

Skapa en samling med exempelposter

Så här skapar du en samling med dessa data:

  1. Lägg till en Button-kontroll.

  2. 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 }
    )
    
  3. Välj knappen medan du håller ned Alt-tangenten:

Ta bort exempelposter från samlingen med hjälp av en formel

Formel Description Result
Remove( IceCream ,
LookUp( IceCream, Flavor="Chocolate" ))
Tar bort posten Choklad från datakällan. Resultat med vanilj och jordgubbe.

Datakällan IceCream har ändrats.
Remove( IceCream ,
LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) )
Tar bort två poster från datakällan. Resultat med bara vanilj.

Datakällan IceCream har ändrats.
RemoveIf( IceCream , Quantity > 150 ) Tar bort poster som har en Antal som är större än 150. Resultat med bara choklad.

Datakällan IceCream har ändrats.
RemoveIf( IceCream , Quantity > 150, Left( Flavor, 1 ) = "S" ) Tar bort poster som har ett Antal som är större än 150 och Flavor börjar med ett J. Resultat med choklad och vanilj.


Datakällan IceCream har ändrats.
RemoveIf( IceCream , true ) Tar bort alla poster från datakällan. Resultat utan IceCream.

Datakällan IceCream har ändrats.

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.

I det här exemplet ska du ta bort ett objekt med hjälp av en knapp som inte ingår i galleriet.

  1. Skapa en ny tom arbetsyteapp med hjälp av en telefon layout.

    En tom arbetsyta-app med telefonlayouten.

  2. Välj Infoga i det vänstra fönstret.

  3. Välj vertikalt galleri.
    En Gallery-kontroll läggs till på skärmen.

    Använd verktygsfönstret Infoga för att lägga till en vertikal gallerikontroll.

  4. 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:

    Välja tabellen Kontakter som ska visas i galleriet.

    I galleriet visas objekt från den här tabellen:

    Galleriet har lagts till som visar tabellen Kontakter

  5. Infoga en Button-kontroll från den vänstra rutan:

    Använd verktygsfönstret Infoga för att lägga till en Button-kontroll.

  6. Flytta den tillagda knappen under galleriobjektet.

    Flytta-knappen.

  7. Uppdatera knapp textegenskap för att ta bort en post. Du kan också använda valfri text:

    Knappen Byt namn.

  8. Ange egenskapen OnSelect för den här Button-kontrollen till följande formel:

    Remove( Contacts, Gallery1.Selected )
    

    Ställa in OnSelect-egenskapen för Button-kontrollen.

    Gallery-kontrollen gör den valda posten tillgänglig med den Selected egenskapen. Remove-funktion refererar till den valda posten för att ta bort den.

  9. Förhandsgranska appen med hjälp av knappen uppspelning längst upp till höger, eller tryck på F5 på tangentbordet:

    Förhandsgranska app.

  10. Markera en post som du vill ta bort, t.ex. Nancy-posten i det här exemplet:

    Markera en post.

  11. Välj Ta bort post:

    Galleri med kontakter, nu utan Nancy-posten som har tagits bort.

    Om du markerar knappen tas den markerade posten bort (i det här exemplet är Nancys post).

  12. 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.

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.

  1. Lägg till en Button-kontroll på skärmen.

  2. 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" }
    )
    
  3. Välj knappen medan du håller ned Alt-tangenten:

Exempelsamlingen skapas som du kan använda i följande exempel.

  1. Skapa en ny tom arbetsyteapp med hjälp av en telefon layout.

    En tom arbetsyta-app med telefonlayouten.

  2. Välj Infoga i det vänstra fönstret.

  3. Välj vertikalt galleri.
    En Gallery-kontroll läggs till på skärmen.

    Använd verktygsfönstret Infoga för att lägga till en vertikal gallerikontroll.

  4. 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:

    Välja tabellen Kontakter som ska visas i galleriet.

    Om du skapade en samling markerar du samlingen i stället:

    Exempel på samling av kontakter.

  5. 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 den bästa posten i ett galleri.

  6. Välj Lägg till ikon från den vänstra rutan.

    Använda verktygsfönstret Infoga för att lägga till en ikonkontroll.

    Kommentar

    Lägg till ikon infogar en + ikon på galleriets vänstra sida som replikeras för varje objekt i galleriet.

  7. Flytta ikonen till höger på skärmen i det översta objektet.

    Flytta ikonen.

  8. 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.

    Ändra ikonen till papperskorgen.

  9. 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.

    OnVälj ikonen för papperskorgen.

  10. Förhandsgranska appen med hjälp av knappen uppspelning längst upp till höger, eller tryck på F5 på tangentbordet.

  11. Välj papperskorgsikonen bredvid en post, till exempel Maria:

    Galleri med en av kontakterna borttagna.

    Posten tas bort:

    Borttagen post.

  12. Stäng förhandsgranskning av appen.