Comparteix via


AddColumns, DropColumns, RenameColumnsi funcions ShowColumns

S'aplica a: Aplicacions de llenç Copilot Studio Fluxos d'escriptori Aplicacions basades en models Funcions del Power Platform CLI Dataverse

Dóna forma a una taula o registre afegint-ne, deixant-ne anar, canviant el nom i seleccionant-ne les columnes.

La funció ForAll també es pot utilitzar per donar forma a una taula, retornant una taula de registres nous creats a partir de columnes existents.

Informació general

Aquestes funcions donen forma a una taula o registre ajustant-ne les columnes:

  • Reduïu una taula o un registre que conté diverses columnes a una sola columna per utilitzar-la amb funcions d'una sola columna, com ara Lower o Sqrt.
  • Afegiu una columna calculada a una taula o registre (per exemple, una columna Preu total que mostra els resultats de multiplicar la quantitat pel preu unitari).
  • Canvieu el nom d'una columna per algun nom més significatiu, per mostrar-la als usuaris o utilitzar-la en fórmules.

Una taula és un valor del Power Apps, igual que una cadena o un número. Podeu especificar una taula com a argument d'una fórmula i les funcions poden retornar una taula com a resultat.

Nota

Les funcions que descriu aquest tema no modifiquen la taula original. Com a alternativa, agafen la taula com a argument i tornen una taula nova amb una transformació aplicada. Per obtenir més informació, vegeu Treballar amb taules.

No podeu modificar les columnes d'una font de dades mitjançant aquestes funcions. Heu de modificar les dades a la font. Podeu afegir columnes a una col·lecció amb la funció Collect. Per obtenir més informació, vegeu Treballar amb fonts de dades.

Descripció

La AddColumns funció afegeix una columna a una taula o registre, i una fórmula defineix els valors d'aquesta columna. Les columnes existents no es modifiquen.

La fórmula s'avalua per al registre proporcionat o per a cada registre de la taula proporcionada.

Els camps del registre que s’està processant actualment estan disponibles dins de la fórmula. Utilitzeu l’operador ThisRecord o simplement els camps de referència per nom com si fos qualsevol altre valor. L’operador As també es pot utilitzar per nomenar el registre que s’està processant i que pot ajudar-vos a fer que la fórmula sigui més fàcil d’entendre i fer accessible els registres incrustats. Per obtenir més informació, vegeu els exemples següents i la secció Treballar amb l’àmbit de registre.

La DropColumns funció exclou les columnes d'una taula o registre. La resta de columnes existents no es modifiquen. DropColumns Exclou les columnes i ShowColumns inclou columnes.

Utilitzeu la funció per canviar el RenameColumns nom d'una o més columnes d'una taula o registre proporcionant almenys un parell d'arguments que especifiqui el nom d'una columna que conté la taula o el registre (el nom antic, que voleu substituir) i el nom d'una columna que la taula o el registre no conté (el nom nou, que vulgueu utilitzar). El nom antic ja ha d'existir a la taula o al registre, i el nom nou no ha d'existir. Cada nom de columna només pot aparèixer una vegada a la llista d'arguments com a nom de columna antic o com a nom de columna nou. Per canviar el nom d'una columna a un nom de columna existent, primer deixeu anar la columna existent amb DropColumnso canvieu el nom de la columna existent imbricant una funció dins d'una RenameColumns altra.

La ShowColumns funció inclou columnes d'una taula o registre i elimina totes les altres columnes. Podeu utilitzar ShowColumns per crear una taula o un registre d'una sola columna a partir d'una taula o registre de diverses columnes. ShowColumns inclou columnes i DropColumns exclou columnes.

Per a totes aquestes funcions, el resultat és una nova taula o registre amb la transformació aplicada. La taula o el registre original no es modifica. No podeu modificar una taula o un registre existent amb una fórmula. El SharePoint, el Microsoft Dataverse, l'SQL Server i altres fonts de dades proporcionen eines per modificar les columnes de llistes i taules, que sovint es coneixen com a esquema. Les funcions d'aquest tema només transformen una taula o registre d'entrada, sense modificar l'original, en una taula o registre de sortida per al seu ús posterior.

Els arguments d'aquestes funcions admeten la delegació. Per exemple, una funció Filter utilitzada com a argument per generar registres relacionats cerca a tots els llistats, fins i tot si la font de dades '[dbo].[AllListings]' conté un milió de files:

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

No obstant això, la sortida d'aquestes funcions està subjecta al límit de registre no delegats. En aquest exemple, només es retornen 500 registres fins i tot si la font de dades RealEstateAgents té 501 o més registres.

Si utilitzeu AddColumns d'aquesta manera, Filter ha de fer trucades independents a la font de dades per a cadascun d'aquests primers registres a RealEstateAgents, cosa que provoca moltes xerrades de xarxa. If [dbo](.[AllListings] és prou petit i no canvia sovint. Podeu trucar a la funció Collect a OnStart per emmagatzemar a la memòria cau la font de dades de l'aplicació quan s'iniciï. Com a alternativa, podeu reestructurar l'aplicació per tal que genereu els registres relacionats només quan l'usuari els demani.

Nota

Abans Power Apps de la versió 3.24042, els noms de columna s'especificaven amb una cadena de text entre cometes dobles, i si es connectaven a un font de dades també havien de ser noms lògics. Per exemple, es va utilitzar el nom lògic "cr43e_name" amb cometes dobles en lloc del nom de visualització Nom sense cometes. Per a SharePoint les fonts de dades de l'Excel que contenen noms de columna amb espais, cada espai s'ha especificat amb "_x0020_", per exemple "Nom de columna" Column_x0020_Name ". Després d'aquesta versió, totes les aplicacions s'actualitzaven automàticament a la nova sintaxi descrita en aquest article.

Sintaxi

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

  • TableOrRecord - Obligatori. Taula o registre per operar.
  • ColumnNames : obligatori. Noms de les columnes a afegir.
  • Fórmules: obligatòries . Fórmules a avaluar per a cada registre. El resultat s'afegeix com a valor de la columna nova corresponent. Podeu fer referència a altres columnes de la taula o registre en aquesta fórmula.

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

  • TableOrRecord - Obligatori. Taula o registre per operar.
  • ColumnNames : obligatori. Noms de les columnes que s'han de deixar.

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

  • TableOrRecord - Obligatori. Taula o registre per operar.
  • OldColumnNames - Obligatori. Noms de les columnes que voleu canviar de nom des de la taula o registre original. Aquest element apareix en primer lloc al parell d'arguments (o en primer lloc a cada parell d'arguments si la fórmula inclou més d'un parell).
  • NewColumnNames - Obligatori. Noms de substitució. Aquest element apareix en darrer lloc al parell d'arguments (o en darrer lloc a cada parell d'arguments si la fórmula inclou més d'un parell).

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

  • TableOrRecord - Obligatori. Taula o registre per operar.
  • ColumnNames : obligatori. Noms de les columnes que s'han d'incloure.

Exemples

Als exemples d'aquesta secció s'utilitza la font de dades IceCreamSales, que conté les dades d'aquesta taula:

Exemple de gelats

Cap d'aquests exemples no modifica la font de dades IceCreamSales. Cada funció transforma el valor de la font de dades com una taula i retorna aquest valor com a resultat.

Fórmula Descripció Resultat
AddColumns( IceCreamSales, Ingressos, Preu Unitari * QuantitatVenut ) Afegeix una columna Ingressos al resultat. Per a cada registre, s'avalua UnitPrice * QuantitySold i el resultat es col·loca a la columna nova. Resultat amb maduixa, xocolata i vainilla
DropColumns( Vendes de gelats, preu unitari ) Exclou la columna UnitPrice del resultat. Utilitzeu aquesta funció per excloure columnes i utilitzar-les ShowColumns per incloure-les. Resultat amb maduixa, xocolata i vainilla amb només la columna QuantitySold
ShowColumns( IceCreamSales, Sabor ) Inclou només la columna Gust al resultat. Utilitzeu aquesta funció include columnes i utilitzeu-la DropColumns per excloure-les. Només la columna Gust
RenameColumns(IceCreamSales, UnitPrice, Price) Canvieu el nom de la columna UnitPrice al resultat. Resultat amb gust, preu i ingressos
RenameColumns(IceCreamSales, UnitPrice, Price, QuantitySolded, Number) Canvia el nom de les columnes UnitPrice i QuantitySold al resultat. Resultat amb 3 gelats i columnes com gust, preu i ingressos
DropColumns(
RenameColumns(
AddColumns( Vendes de gelats, ingressos,
Preu Unitari * QuantitatVenuda ),
Preu unitari, Preu ),
Quantitat )
Realitza les transformacions de la taula següent per ordre, començant per l'interior de la fórmula:
  1. Afegeix una columna Ingressos basada en el càlcul per registre de UnitPrice * Quantity.
  2. Canvia el nom de UnitPrice per Preu.
  3. Exclou la columna Quantitat.
L'ordre és important, per exemple, no podem calcular amb UnitPrice després de canviar-ne el nom.
Exemple de gelat per al preu unitari

Pas a pas

Provem alguns dels exemples anteriors d'aquest article.

  1. Per crear una col·lecció, afegiu un control Botó i definiu-ne la propietat OnSelect en aquesta fórmula:

    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. Per executar la fórmula, seleccioneu el botó mentre manteniu premuda la tecla Alt.

  3. Afegiu un segon control Botó, definiu-ne la propietat OnSelect a aquesta fórmula i, a continuació, executeu-la:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. Al menú Fitxer, seleccioneu Col·leccions i, a continuació, seleccioneu IceCreamSales per mostrar la col·lecció.

    Tal com mostra el gràfic, la segona fórmula no ha modificat aquesta col·lecció. La AddColumns funció utilitzava IceCreamSales com a argument només de lectura; la funció no modificava la taula a la qual fa referència aquest argument.

    El visualitzador de col·leccions mostra tres registres de la col·lecció de vendes de gelats que no inclou cap columna d'ingressos.

  5. Seleccioneu FirstExample.

    Tal com mostra el gràfic, la segona fórmula ha retornat una taula nova amb la columna afegida. La funció ClearCollect ha capturat la taula nova a la col·lecció FirstExample i ha afegit quelcom a la taula original en fluir a través de la funció sense modificar-ne l'origen:

    El Visualitzador de col·leccions mostra tres registres de la col·lecció del primer exemple que inclou una columna d'ingressos nova.

Assignar columnes en un component

Vegeu Assigna columnes.