Funcions AddColumns, DropColumns, RenameColumns i ShowColumns

S'aplica a: Aplicacions de llenç Fluxos d'escriptori Aplicacions Power Platform basades en models CLI

Per afegir una taula, afegeix, suprimeix, canvia el nom o selecciona 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 configuren una taula amb l'ajust de les columnes:

  • Reduïu una taula que conté diverses columnes a una sola columna per utilitzar-la amb funcions d'una sola columna, com ara Inferior o Sqrt.
  • Afegiu una columna calculada a una taula (per exemple, una columna Preu total que mostri els resultats de multiplicar Quantitat per Preu per unitat).
  • 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 Com 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 Com treballar amb fonts de dades.

Descripció

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

La fórmula s'avalua per a cada registre de la taula.

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 funció DropColumns exclou les columnes d'una taula. La resta de columnes existents no es modifiquen. DropColumns exclou columnes, mentre que ShowColumns inclou columnes.

Utilitzeu la funció RenameColumns per canviar el nom d'una o diverses columnes d'una taula mitjançant un mínim d'un parell d'arguments que especifiqui el nom d'una columna que conté la taula (el nom antic, que voleu substituir) i el nom d'una columna que no conté la taula (el nom nou, que voleu utilitzar). El nom antic ja ha d'existir a la taula, mentre que el nom nou no ha d'existir. Cada nom de columna només pot aparèixer una vegada a la llista d'arguments com un nom de columna antic o un nom de columna nou. Per canviar el nom d'una columna per un nom de columna existent, abans heu de suprimir la columna existent amb DropColumns; o bé, per canviar el nom de la columna existent, incrusteu la funció RenameColumns dins d'una altra.

La funció ShowColumns inclou columnes d'una taula i suprimeix totes les altres columnes. Podeu utilitzar ShowColumns per crear una taula d'una sola columna des d'una taula de diverses columnes. ShowColumns inclou columnes, mentre que DropColumns exclou columnes.

Per a totes aquestes funcions, el resultat és una taula nova amb la transformació aplicada. La taula original no es modifica. No podeu modificar una taula 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, taules i taules, que sovint s'anomenen esquema. Les funcions d'aquest article només transformen una taula d'entrada, sense modificar l'original, en una taula de sortida per a un ú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 separades al font de dades per a cadascun d'aquests primers registres a RealEstateAgents, cosa que provoca molta xerrameca de xarxa. Si [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 utilitzant 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 i que contenen noms de columna amb espais, cada espai s'ha especificat amb "_x0020_", per exemple "Nom de la columna" com"Column_x0020_Name ". A partir d'aquesta versió, totes les aplicacions s'han actualitzat automàticament a la nova sintaxi descrita en aquest article.

Sintaxi

AddColumns(Taula, ColumnName1, Fórmula1, [ColumnName2, Fórmula2, ...])

  • Taula: obligatori. Taula on es treballarà.
  • ColumnName: obligatori. Noms de les columnes a afegir.
  • Formula(s): obligatori. 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 en aquesta fórmula.

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

  • Taula: obligatori. Taula on es treballarà.
  • ColumnName: obligatori. Noms de les columnes a deixar anar.

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

  • Taula: obligatori. Taula on es treballarà.
  • OldColumnNames - obligatori. Noms de les columnes a canviar de nom de la taula 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(Taula, ColumnName1, [ColumnName2, ...])

  • Taula: obligatori. Taula on es treballarà.
  • ColumnName: obligatori. Noms de les columnes a 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, UnitPrice * 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( IceCreamSales, UnitPrice ) Exclou la columna UnitPrice del resultat. Utilitzeu aquesta funció per excloure columnes i utilitzeu 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ó per incloure columnes i utilitzeu 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, QuantitatVenut, Nombre) 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( IceCreamSales, ingressos,
UnitPrice * QuantitySold ),
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 * Quantitat.
  2. Canvia el nom de UnitPrice per Preu.
  3. Exclou la columna Quantitat.
La comanda és important, per exemple, no podem calcular amb UnitPrice després de canviar-li 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 funció AddColumns ha utilitzat IceCreamSales com a argument només de lectura; la funció no ha modificat la taula a la qual fa referència l'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.