AddColumns, DropColumns, RenameColumnsoch ShowColumns funktioner

Gäller för: Arbetsyteappar Copilot Studio Desktop-flöden Modelldrivna appar Power Platform CLI Dataverse-funktioner

Formar en tabell eller post genom att lägga till, släppa, byta namn på och välja dess kolumner.

Funktionen ForAll kan också användas för att forma en tabell genom att returnera en tabell med nya poster som skapats från befintliga kolumner.

Översikt

Dessa funktioner formar en tabell eller post genom att justera dess kolumner:

  • Minska en tabell eller post som innehåller flera kolumner ned till en enda kolumn för användning med funktioner med en kolumn, till exempel Lägre eller Sqrt.
  • Lägg till en beräknad kolumn i en tabell eller post (till exempel en kolumn med totalt pris som visar resultatet av att multiplicera Kvantitet med enhetspris).
  • Byt namn på en kolumn till ett mer beskrivande, för att visa för användare eller för användning i formler.

En tabell är ett värde i Power Apps, precis som en sträng eller ett tal. Du kan ange en tabell som ett argument i en formel och funktioner kan returnera en tabell som ett resultat.

Kommentar

De funktioner som beskrivs i det här avsnittet ändrar inte den ursprungliga tabellen. I stället tar de en tabell som argument och returnerar en ny tabell med en transformering tillämpad. För mer information, se Arbeta med tabeller.

Du kan inte ändra kolumner i en datakälla genom att använda dessa funktioner. Du måste ändra data vid dess källa. Du kan lägga till kolumner i en samling med funktionen Collect. Du hittar mer information i arbeta med datakällor.

Beskrivning

Funktionen AddColumns lägger till en kolumn i en tabell eller post, och en formel definierar värdena i den kolumnen. Befintliga kolumner förblir oförändrade.

Formeln utvärderas för den angivna posten eller för varje post i den angivna tabellen.

Fälten för den post som bearbetas för närvarande är tillgängliga i formeln. Använd ThisRecord-operatorn eller referera bara till fälten med namn på samma sätt som med andra värden. As-operatorn kan också användas för att namnge posten som bearbetas, vilket kan göra att formeln blir lättare att förstå och göra kapslade poster tillgängliga. Mer information finns i exemplen nedan och i arbeta med postomfattning.

Funktionen DropColumns exkluderar kolumner från en tabell eller post. Alla andra kolumner förblir oförändrade. DropColumns exkluderar kolumner och ShowColumns innehåller kolumner.

RenameColumns Använd funktionen för att byta namn på en eller flera kolumner i en tabell eller post genom att ange minst ett argumentpar som anger namnet på en kolumn som tabellen eller posten innehåller (det gamla namnet, som du vill ersätta) och namnet på en kolumn som tabellen eller posten inte innehåller (det nya namnet, som du vill använda). Det gamla namnet måste redan finnas i tabellen eller posten och det nya namnet får inte finnas. Varje kolumnnamn får bara visas en gång i argumentlistan som antingen ett gammalt kolumnnamn eller ett nytt kolumnnamn. Om du vill byta namn på en kolumn till ett befintligt kolumnnamn släpper du först den befintliga kolumnen med DropColumnseller byter namn på den befintliga kolumnen genom att kapsla en funktion i en RenameColumns annan.

Funktionen ShowColumns innehåller kolumner i en tabell eller post och släpper alla andra kolumner. Du kan använda ShowColumns för att skapa en tabell eller post med en enda kolumn från en tabell eller post med flera kolumner. ShowColumns innehåller kolumner och DropColumns exkluderar kolumner.

För alla dessa funktioner är resultatet en ny tabell eller post med transformeringen tillämpad. Den ursprungliga tabellen eller posten ändras inte. Du kan inte ändra en befintlig tabell eller post med en formel. SharePoint, Microsoft Dataverse, SQL Server och andra datakällor tillhandahåller verktyg för att ändra kolumnerna i listor och tabeller, som ofta kallas schemat. Funktionerna i det här avsnittet omvandlar bara en indatatabell eller post, utan att ändra originalet, till en utdatatabell eller post för vidare användning.

Argumenten till dessa funktioner stöder delegering. Till exempel Filter som används som ett argument för att hämta relaterade poster söker igenom alla listor, även om datakällan '[dbo].[AllListings]' innehåller en miljon rader:

AddColumns( RealEstateAgents,
   Listings,
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

Utmatningen av dessa funktioner är emellertid underkastad gräns för icke delegering av poster. I det här exemplet returneras endast 500 poster även om RealEstateAgents datakälla har 501 eller fler poster.

Om du använder AddColumns på det här sättet måste Filter göra separata anrop till datakällan för var och en av de första posterna i RealEstateAgents, vilket orsakar många nätverksprat. Om [dbo](.[AllListings] är litet nog och ändras inte ofta. Du kan anropa funktionen Collect i OnStart om om du vill cachelagra datakälla i appen när den startar. Alternativt kan du omstrukturera programmet så att du bara får de relaterade posterna när användaren ombeds göra det.

Kommentar

I Power Apps före version 3.24042, angav kolumnnamn specificerades med en textsträng med dubbla citattecken och om de var anslutna till en datakälla behövde de också vara logiska namn. Det logiska namnet "cr43e_name" med dubbla citattecken användes till exempel i stället för visningsnamnet Namn utan citattecken. För SharePoint och Excel-datakällor som innehåller kolumnnamn med blanksteg angavs varje blanksteg med "_x0020_", till exempel "Kolumnnamn" som "Column_x0020_Name". Efter den här versionen uppdaterades alla appar automatiskt till den nya syntax som beskrivs i den här artikeln.

Syntax

AddColumns( TableOrRecord, ColumnName1, Formula1 [, ColumnName2, Formel2, ... ] )

  • TableOrRecord – obligatoriskt . Tabell eller post som ska användas.
  • ColumnNames – obligatoriskt. Namnen på kolumnerna som du lägger till.
  • Formler – obligatoriskt. Formler som ska utvärderas för varje post. Resultatet läggs till som värdet för den nya motsvarande kolumnen. Du kan referera till andra kolumner i tabellen eller posten i den här formeln.

DropColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )

  • TableOrRecord – obligatoriskt . Tabell eller post som ska användas.
  • ColumnNames – obligatoriskt. Namnen på kolumnerna som du släpper.

RenameColumns( TableOrRecord, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • TableOrRecord – obligatoriskt . Tabell eller post som ska användas.
  • OldColumnNames – obligatoriskt. Namnen på kolumnerna som ska byta namn från den ursprungliga tabellen eller posten. Det här elementet visas först i argumentparet (eller först i varje argumentpar om formeln innehåller fler än ett par).
  • NewColumnNames – obligatoriskt. Ersättningsnamn. Det här elementet visas sist i argumentparet (eller sist i varje argumentpar om formeln innehåller mer än ett par).

ShowColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )

  • TableOrRecord – obligatoriskt . Tabell eller post som ska användas.
  • ColumnNames – obligatoriskt. Namnen på kolumnerna som ska ingå.

Exempel

Exemplen i det här avsnittet använder datakällan IceCreamSales som innehåller data i den här tabellen:

IceCream-exempel.

Inget av de här exemplen ändrar datakällan IceCreamSales. Varje funktion transformerar värdet för datakällan som en tabell och returnerar värdet som ett resultat.

Formel Beskrivning Result
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) Lägger till en kolumn med Intäkter till resultatet. För varje post utvärderas UnitPrice * QuantitySold och resultatet placeras i den nya kolumnen. Resultat med jordgubbar, choklad och vanilj.
DropColumns( IceCreamSales, UnitPrice ) Omfattar inte kolumnen Enhetspris från resultatet. Använd den här funktionen för att exkludera kolumner och använda ShowColumns för att inkludera dem. Resultat med jordgubbe, choklad, vanilj som bara har QuantitySold kolumn.
ShowColumns( IceCreamSales, Flavor ) Innehåller endast kolumnen Flavor i resultatet. Använd den här funktionen inkludera kolumner och använd DropColumns för att exkludera dem. Endast smakkolumn.
RenameColumns( IceCreamSales, UnitPrice, Pris) Byter namn på kolumnen UnitPrice i resultatet. Resultat med smak, pris och intäkter.
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) Detta ändrar namn på kolumnerna Enhetspris och KvantitetSåld i resultatet. Resultat med 3 IceCreams och kolumner som smak, pris, intäkt.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Intäkter,
UnitPrice * QuantitySold ),
UnitPrice, Pris ),
Antal )
Utför följande tabelltransformeringar i ordning. Starta inuti formeln:
  1. Lägger till en kolumn med Intäkter baserat på beräkning per post av UnitPrice * Antal.
  2. Byter namn på Enhetspris till Pris.
  3. Omfattar inte kolumnen Kvantitet.
Order är viktigt. Vi kan till exempel inte beräkna med Enhetspris när den har bytt namn.
IceCream-exempel för enhetspris.

Steg-för-steg

Försök med några exempel från tidigare i denna artikel.

  1. Skapa en samling genom att lägga till Button-kontroll och ställa in dess egenskap OnSelect till denna formel:

    ClearCollect( IceCreamSales,
       Table(
           { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 },
           { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 },
           { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 }
       )
    )
    
  2. Kör formeln genom att välja knappen medan du håller ner Alt-tangenten.

  3. Lägg till en till Button-kontroll och ställ in dess egenskap OnSelect enligt följande formel och sedan köra den:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. I menyn Fil, välj Samlingar och välj sedan IceCreamSales för att visa samlingen.

    Den andra formeln har inte ändrat samlingen som illustration. Funktionen AddColumns använde IceCreamSales som ett skrivskyddat argument. Funktionen har inte ändrat tabellen som argumentet refererar till.

    Samlingsvisare som visar tre poster av Ice Cream Sales-samlingen som inte innehåller en kolumn för intäkter.

  5. Välj FirstExample.

    När bilden visas returnerade den andra formeln en ny tabell med den tillagda kolumnen. Funktionen ClearCollect registrerade den nya tabellen i samlingen FirstExample och lägger till någonting i originaltabellen som det flödade med funktionen utan att ändra källan:

    Samlingsvisare som visar tre poster i samlingen First Exempel som innehåller en ny kolumn för intäkter.

Mappa kolumner i en komponent

Se Mappa kolumner.