Share via


Funksjonene AddColumns, DropColumns, RenameColumns og ShowColumns

Gjelder: Lerretsapper Skrivebordsflyt Modelldrevne apper Power Platform CLI

Former en tabell ved å legge til, slippe, gi nytt navn til og velge dens kolonner.

**ForAll-funksjonen kan også brukes til å forme en tabell ved å returnere en tabell med nye oppføringer opprettet fra eksisterende kolonner.

Oversikt

Disse funksjonene former en tabell ved å justere kolonnene:

  • Reduser en tabell som inneholder flere kolonner, ned til en enkeltkolonne for bruk med enkeltkolonne-funksjoner, for eksempel Lower eller Sqrt.
  • Legg til en beregnet kolonne i en tabell (for eksempel en Total Price-kolonne som viser resultatet av å multiplisere Quantity med Unit Price).
  • Endre navnet til en kolonne til noe mer meningsfylt. Dette vises til brukere eller brukes i formler.

En tabell er en verdi i Power Apps, akkurat som en streng eller et tall. Du kan angi en tabell som et argument i en formel, og funksjoner kan returnere en tabell som et resultat.

Obs!

Funksjonene som dette emnet beskriver, endrer ikke den opprinnelige tabellen. I stedet tar de tabellen som et argument og returnerer en ny tabell med en transformering brukt. Hvis du vil ha mer informasjon, kan du se arbeid med tabeller.

Du kan ikke endre kolonnene i en datakilde ved hjelp av disse funksjonene. Du må endre dataene i kilden. Du kan legge til kolonner i en samling med Collect-funksjonen. Se arbeide med datakilder for mer informasjon.

Description

Funksjonen AddColumns legger til en kolonne i en tabell, og en formel definerer verdiene i kolonnen. Eksisterende kolonner forblir uendret.

Formelen evalueres for hver post i tabellen.

Feltene for oppføringen som blir behandlet er tilgjengelige i formelen. Bruk ThisRecord-operatoren eller bare referer til felt etter navn, på samme måte som andre verdier. As-operatoren kan også brukes til å gi navn til oppføringen som blir behandlet, noe som kan gjøre det enklere å forstå og ta i bruk nestede oppføringer. Hvis du vil ha mer informasjon, kan du se eksemplene nedenfor og arbeide med oppføringsomfang.

Funksjonen DropColumns utelukker kolonner fra en tabell. Alle andre kolonner forblir uendret. DropColumns utelukker kolonner, og ShowColumns inkluderer kolonner.

Bruk funksjonen RenameColumns til å gi nytt navn til én eller flere kolonner i en tabell ved å angi minst ett argumentpar som angir navnet på en kolonne i tabellen (det gamle navnet som du vil erstatte) og navnet på en kolonne som ikke finnes i tabellen (det nye navnet som du vil bruke). Det gamle navnet må allerede finnes i tabellen, og det nye navnet må ikke finnes. Hvert kolonnenavn kan vises bare én gang i argumentlisten som enten et gammelt eller et nytt kolonnenavn. Hvis du vil gi et eksisterende kolonnenavn som nytt navn til en kolonne, må du først fjerne den eksisterende kolonnen med DropColumns eller få den eksisterende kolonnen ut av veien med nytt navn ved å neste én RenameColumns-funksjon i en annen.

Funksjonen ShowColumns inkluderer kolonner i en tabell og utelukker alle andre kolonner. Du kan bruke ShowColumns til å opprette en enkeltkolonnetabell fra en flerkolonnetabell. ShowColumns inkluderer kolonner, og DropColumns utelukker kolonner.

Resultatet er en ny tabell med transformasjonen som brukes for alle disse funksjonene. Den opprinnelige tabellen er ikke endret. Du kan ikke endre en eksisterende tabell med en formel. SharePoint, Microsoft Dataverse, SQL Server og andre datakilder har verktøy for å endre kolonnene i lister og tabeller, som ofte kalles skjemaet. Funksjonene i denne artikkelen transformerer bare en inndatatabell, uten å endre originalen, til en utdatatabell for videre bruk.

Argumentene til disse funksjonene støtter delegering. Eksempelvis vil en Filter-funksjon som brukes som et argument for å trekke i relaterte oppføringer, søke gjennom alle oppføringer, selv om '[dbo].[AllListings]'-datakilden inneholder en million rader:

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

Utdataene for disse funksjonene er imidlertid underlagt grensen for antall oppføringer som ikke er delegerte. I dette eksemplet returneres bare 500 oppføringer, selv om RealEstateAgents-datakilden har 501 eller flere oppføringer.

Hvis du bruker AddColumns på denne måten, må Filter lage separate kall til datakilden for hver av de første oppføringene i RealEstateAgents, noe som forårsaker mye nettverksstøy. Hvis [dbo](.[AllListings] er liten nok og ikke endres ofte. Du kan kalle Collect-funksjonen i OnStart for å hurtigbufre datakilde i appen når den starter. Som et alternativ kan du omstrukturere appen slik at du bare henter inn de relaterte oppføringene når brukeren ber om det.

Merk

I Power Apps før versjon 3.24042 ble kolonnenavn angitt med en tekststreng med doble anførselstegn, og hvis de var koblet til et datakilde, måtte de også være logiske navn. Det logiske navnet cr43e_name med doble anførselstegn ble brukt i stedet for visningsnavn Navn uten anførselstegn. For SharePoint- og Excel-datakilder som inneholder kolonnenavn med mellomrom, ble hvert mellomrom angitt med "_x0020_", for eksempel "Kolonnenavn" som "Column_x0020_Name". Etter denne versjonen ble alle apper automatisk oppdatert til den nye syntaksen beskrevet i denne artikkelen.

Syntaks

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

  • Table - obligatorisk. Tabellen funksjonen skal arbeide med.
  • ColumnName(s) - obligatorisk. Navn på kolonnersom skal legges til.
  • Formula(s) - obligatorisk. Formler som skal evalueres for hver post. Resultatet er lagt til som verdien for den tilsvarende nye kolonnen. Du kan referere til andre kolonner i tabellen i denne formelen.

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

  • Table - obligatorisk. Tabellen funksjonen skal arbeide med.
  • ColumnName(s) - obligatorisk. Navn på kolonnene som skal utelates.

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

  • Table - obligatorisk. Tabellen funksjonen skal arbeide med.
  • OldColumnName(s) – obligatorisk. Navn på kolonnene som skal få nytt navn, fra den opprinnelige tabellen. Dette elementet vises først i argumentparet (eller først i hvert argumentpar hvis formelen inneholder mer enn ett par).
  • NewColumnName(s) – obligatorisk. Erstatningsnavn. Dette elementet vises sist i argumentparet (eller sist i hvert argumentpar hvis formelen inneholder mer enn ett par).

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

  • Table - obligatorisk. Tabellen funksjonen skal arbeide med.
  • ColumnName(s) - obligatorisk. Navn på kolonnene som skal inkluderes.

Eksempler

Eksemplene i denne delen bruker IceCreamSales-datakilden, som inneholder dataene i denne tabellen:

Eksempel med IceCream.

Ingen av disse eksemplene endrer IceCreamSales-datakilden. Hver funksjon transformerer verdien for datakilden som en tabell, og returnerer verdien som et resultat.

Formel Description Result
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) Legger til en Revenue-kolonne i resultatet. For hver post evalueres UnitPrice * QuantitySold, og resultatet plasseres i den nye kolonnen. Resultat med Strawberry, Chocolate og Vanilla.
DropColumns( IceCreamSales, UnitPrice ) Utelater UnitPrice-kolonnen fra resultatet. Bruk denne funksjonen til å utelate kolonner, og bruk ShowColumns til å inkludere dem. Resultat med Strawberry, Chocolate, Vanilla som bare har QuantitySold-kolonnen.
ShowColumns( IceCreamSales, Flavor ) Inkluderer bare Flavor-kolonnen i resultatet. Bruk denne funksjonen til å inkludere kolonner, og bruk DropColumns til å utelate dem. Bare Flavor-kolonnen.
RenameColumns( IceCreamSales, UnitPrice, Price) Gir nytt navn til UnitPrice-kolonnen i resultatet. Resultat med Flavor, Price og Revenue.
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) Gir nytt navn til kolonnene UnitPrice og QuantitySold i resultatet. Resultat med 3 IceCreams og kolonner som Flavor, Price, Revenue.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Revenue,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
Quantity )
Utfører transformeringene av den følgende tabellen i rekkefølge fra innsiden av formelen:
  1. Legger til en Revenue-kolonne basert på per post-beregningen av UnitPrice * Quantity.
  2. Endrer navnet UnitPrice til Price.
  3. Utelater Quantity-kolonnen.
Ordre er viktig, for eksempel kan vi ikke beregne med UnitPrice når den har fått nytt navn.
Eksempel med IceCream for enhetspris.

Trinnvis

La oss prøve noen av eksemplene fra tidligere i denne artikkelen.

  1. Opprett en samling ved å legge til en Button-kontroll og sette egenskapen OnSelect til denne formelen:

    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. Kjør formelen ved å velge knappen mens du holder nede Alt-tasten.

  3. Legg til en ny Knapp-kontroll, og angi OnSelect-egenskapen til denne formelen, og kjør den:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. Fil-menyen velger du Samlinger, og deretter velger du IceCreamSales for å vise samlingen.

    Som dette bildet viser ble ikke den andre formelen endret av denne samlingen. AddColumns-funksjonen brukte IceCreamSales som et skrivebeskyttet argument. Funksjonen endret ikke tabellen som argumentet refererer til.

    Visningsprogrammet for samling som viser tre oppføringer av IceCreamSales-samlingen som ikke inneholder en Inntekt-kolonne.

  5. Velg FirstExample.

    Som denne grafikken viser returnerer den andre formelen en ny tabell med kolonnen som er lagt til. ClearCollect-funksjonen registrerte den nye tabellen i FirstExample-samlingen og la til noe i den opprinnelige tabellen da den fløt gjennom funksjonen uten å endre kilden:

    Visningsprogrammet for samling som viser tre oppføringer av First Example-samlingen som inneholder en ny Inntekt-kolonne.

Tilordne kolonner i en komponent

Se Tilordne kolonner.