Funktionerna AddColumns, DropColumns, RenameColumns och ShowColumns

Gäller: Arbetsyteappar Datorflöden Modellbaserade appar Power Platform CLI

Utformar en tabell genom att lägga till, släppa, byta namn på och markera dess kolumner.

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

Översikt

Dessa funktioner utformar en tabell genom att justera dess kolumner:

  • Reducera en tabell som innehåller flera kolumner till en kolumn för användning med funktioner för en enda kolumn, exempelvis Lower eller Sqrt.
  • Lägg till en beräknad kolumn i en tabell (till exempel en kolumn för Totalpris 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.

Description

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

Formeln utvärderas för varje post i 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 utesluter kolumner från en tabell. Alla andra kolumner förblir oförändrade. DropColumns utesluter kolumner och ShowColumns inkluderar kolumner.

Med funktionen RenameColumns kan du byta namn på en eller flera kolumner i en tabell. Du anger minst ett argumentpar som anger namnet på en kolumn som finns i tabellen (det gamla namnet som du vill byta ut) och namnet på kolumnen som inte finns i tabellen (det nya namnet som du vill använda). Det gamla namnet måste finnas i tabellen och det nya namnet får inte finnas i tabellen. 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 befintlig kolumn släpper du först den befintliga kolumnen med DropColumns, eller så byter du namn på den befintliga kolumnen genom att kapsla en RenameColumns-funktion i en annan.

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

För alla dessa funktioner är resultatet en ny tabell med transformering tillämpad. Den ursprungliga tabellen ändras inte. Du kan inte ändra en befintlig tabell med en formel. SharePoint, Microsoft Dataverse, SQL Server och andra datakällor tillhandahåller verktyg för att ändra kolumnerna i listor, tabeller och tabeller, som ofta kallas schema. Funktionerna i denna artikel endast transformera en inmatningstabell utan att ändra originalet till en utdatatabellen för att använda dem.

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 samtal till datakälla för var och en av de första posterna i RealEstateAgents, vilket orsakar mycket nätverkschatter. 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". Av den här versionen uppdaterades alla appar automatiskt till den nya syntax som beskrivs i den här artikeln.

Syntax

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table – krävs. Tabell som ska användas.
  • ColumnName(s) – obligatoriskt. Namnen på kolumnerna som du lägger till.
  • Formula(s) – 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 i den här formeln.

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

  • Table – krävs. Tabell som ska användas.
  • ColumnName(s) – obligatoriskt. Namnen på kolumnerna som du släpper.

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

  • Table – krävs. Tabell som ska användas.
  • OldColumnName(s) – obligatoriskt. Namnen på kolumnen vars namn ska ändras från den ursprungliga tabellen. Det här elementet visas först i argumentparet (eller först i varje argumentpar om formeln innehåller fler än ett par).
  • NewColumnName(s) – 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( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – krävs. Tabell som ska användas.
  • ColumnName(s) – 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 Description 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 utesluta kolumner och använd 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 för att inkludera kolumner och använd DropColumns för att exkludera dem. Endast smakkolumn.
RenameColumns( IceCreamSales, UnitPrice, Price) 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, Revenue,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
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änds IceCreamSales som ett skrivskyddat argument. funktionen ändrar inte den tabell 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.