Funcións AddColumns, DropColumns, RenameColumns e ShowColumns

Aplícase a: Aplicacións de lenzo Fluxos de escritorio Aplicacións baseadas en modelos Power Platform CLI

Forma unha táboa engadindo, soltando, cambiando de nome e seleccionando as sías columnas.

A función **ForAll tamén se pode usar para dar forma a unha táboa, devolvendo unha táboa de novos rexistros creados a partir de columnas existentes.

Visión xeral

Estas funcións forman unha táboa axustando as súas columnas:

  • Reducir unha táboa que contén varias columnas a unha única columna para usala con funcións dunha soa columna, como Baixar ou Sqrt.
  • Engada unha columna calculada a unha táboa (por exemplo, unha columna de Prezo total que mostre os resultados de multiplicar Cantidade por Prezo por unidade).
  • Cambie o nome dunha columna a algo máis significativo, para a súa visualización aos usuarios ou para o seu uso en fórmulas.

Unha táboa é un valor en Power Apps, ao igual que unha cadea ou un número. Pode especificar unha táboa como argumento nunha fórmula e as funcións poden devolver unha táboa como resultado.

Nota

As funcións que describe este tema non modifican a táboa orixinal. Pola contra, toman esa táboa como argumento e devolven unha nova táboa cunha transformación aplicada. Para obter máis información, consulte traballar con táboas.

Non pode modificar as columnas dunha orixe de datos empregando estas funcións. Debe modificar os datos na súa fonte. Pode engadir columnas a unha colección coa función Collect. Para obter máis información, consulta Traballar con fontes de datos.

Descripción

A función AddColumns engade unha columna a unha táboa e unha fórmula define os valores desa columna. As columnas existentes seguen sen modificarse.

A fórmula avalíase para cada rexistro da táboa.

Os campos do rexistro que se están a procesar actualmente están dispoñibles na fórmula. Use o operador ThisRecord ou simplemente faga referencia aos campos por nome como faría con calquera outro valor. O operador As tamén se pode usar para nomear o rexistro que se está a procesar, o que pode axudar a que a fórmula sexa máis fácil de comprender e facer que os rexistros anidados sexan accesibles. Para obter máis información, consulte os seguintes exemplos e traballar co ámbito do rexistro.

A función DropColumns exclúe as columnas dunha táboa. O resto das columnas seguen sen modificarse. DropColumns exclúe as columnas e ShowColumns inclúe as columnas.

Use a función RenameColumns para cambiar o nome dunha ou varias columnas dunha táboa proporcionando polo menos un par de argumentos que especifique o nome dunha columna que contén a táboa (o nome antigo, que desexa substituír) e o nome dunha columna que a táboa non contén (o novo nome que desexa usar). O nome antigo xa debe existir na táboa e o novo nome non debe existir. Cada nome de columna pode aparecer só unha vez na lista de argumentos como nome de columna antiga ou nome de columna novo. Para cambiar o nome dunha columna a un nome de columna existente, elimine primeiro a columna existente con DropColumns ou renomee a columna existente fóra do camiño aniñando unha función RenameColumns dentro doutra.

A función ShowColumns inclúe columnas dunha táboa e solta as demais columnas. Pode usar ShowColumns para crear unha táboa dunha columna a partir dunha táboa de varias columnas. ShowColumns inclúe as columnas e DropColumns exclúe as columnas.

Para todas estas funcións, o resultado é unha nova táboa coa transformación aplicada. A táboa orixinal non se modifica. Non pode modificar unha táboa existente cunha fórmula. SharePoint, Microsoft Dataverse, SQL Server e outras orixes de datos proporcionan ferramentas para modificar as columnas de listas, táboas e as táboas, que a miúdo se denominan esquema. As funcións deste artigo só transforman unha táboa de entrada, sen modificar a orixinal, nunha táboa de saída para o seu posterior uso.

Os argumentos para estas funcións admiten a delegación. Por exemplo, a función Filter empregada como argumento para extraer buscas de rexistros relacionados a través de todos os listados, aínda que a orixe de datos "[dbo]. [AllListings]" conteña un millón de filas:

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

Non obstante, a saída destas funcións está suxeita ao límite de rexistro de non delegación. Neste exemplo, só se devolven 500 rexistros aínda que a orixe de datos RealEstateAgents ten 501 ou máis rexistros.

Se utilizas Engadir columnas deste xeito, Filtro debe facer chamadas separadas ao orixe de datos para cada unha das primeiras rexistros en RealEstateAgents, o que provoca moitas conversacións na rede. Se [dbo](.[AllListings] é o suficientemente pequeno e non cambia a miúdo. Podes chamar á función Recoller en OnStart para almacenar en caché o orixe de datos da túa aplicación cando se inicie. Como alternativa, pode reestruturar a aplicación para que extraia os rexistros relacionados só cando o usuario os solicita.

Nota

En Power Apps anterior á versión 3.24042, os nomes das columnas eran especificados cunha cadea de texto usando comiñas dobres e, se estaban conectados a un orixe de datos, tamén debían ser nomes lóxicos. Por exemplo, utilizouse o nome lóxico "cr43e_name" con comiñas dobres en lugar do nome para mostrar Nome sen comiñas. Para fontes de datos SharePoint e Excel que conteñen nomes de columnas con espazos, cada espazo especificouse con "_x0020_", por exemplo "Nome da columna" as "Nome_x0020_columna". Despois desta versión, todas as aplicacións actualizáronse automaticamente á nova sintaxe descrita neste artigo.

Sintaxe

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

  • Table - Obrigatorio. Táboa na que operar.
  • ColumnName(s) - Obrigatorio. Nomes das columnas a engadir.
  • Formula(s) - Obrigatorio. Fórmulas a avaliar para cada rexistro. O resultado engádese como o valor da columna nova correspondente. Pode facer referencia a outras columnas da táboa nesta fórmula.

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

  • Table - Obrigatorio. Táboa na que operar.
  • ColumnName(s) - Obrigatorio. Nomes das columnas a soltar.

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

  • Table - Obrigatorio. Táboa na que operar.
  • OldColumnNames : é necesario. Nomes das columnas para cambiar o nome da táboa orixinal. Este elemento aparece primeiro no par de argumentos (ou primeiro en cada par de argumentos se a fórmula inclúe máis dun par).
  • NewColumnNames : é necesario. Nomes de substitución. Este elemento aparece último no par de argumentos (ou último en cada par de argumentos se a fórmula inclúe máis dun par).

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

  • Table - Obrigatorio. Táboa na que operar.
  • ColumnName(s) - Obrigatorio. Nomes das columnas a incluír.

Exemplos

Os exemplos desta sección usan a sección IceCreamSales, que contén os datos desta táboa:

Exemplo de Icecream.

Ningún destes exemplos modifica a orixe de datos IceCreamSales. Cada función transforma o valor da orixe de datos como unha táboa e devolve ese valor como resultado.

Fórmula Descripción Resultado
EngadirColumnas(IceCreamSales, Revenue, UnitPrice * QuantitySold) Engada unha columna Revenue para o resultado. Para cada rexistro, avalíase UnitPrice * QuantitySold e o resultado sitúase na nova columna. Resultado con Srawberry, Chocolate e Vanilla.
DropColumns( IceCreamSales, UnitPrice ) Exclúe a columna UnitPrice do resultado. Use esta función para excluír columnas e use ShowColumns para incluílas. Resultado con Strawberry, Chocolate, Vanilla só coa columna QuantitySold.
Mostrar columnas (vendas de xeados, sabor) Inclúe só a columna Flavor no resultado. Use esta función para incluír columnas e use DropColumns para excluílas. Só columna Flavor.
Cambiar o nome de columnas (IceCreamSales, UnitPrice, Price) Cambia o nome da columna UnitPrice no resultado. Resultado con Flavor, Price e Revenue.
Cambiar o nome de columnas (IceCreamSales, UnitPrice, Price, QuantitySold, Number) Cambia o nome das columnas UnitPrice e QuantitySold no resultado. Resultado con 3 IceCreams e columnas como Flavor, Price, Revenue.
DropColumns(
RenameColumns(
Engadir columnas (IceCreamSales, Revenue,
UnitPrice * QuantitySold ),
Prezo unitario, prezo),
Cantidade)
Realiza as seguintes transformacións na táboa en orde, a partir do interior da fórmula:
  1. Engade unha columna de ingresos en función do cálculo por rexistro de Prezo unitario * Cantidade.
  2. Cambia o nome de UnitPrice a Price.
  3. Exclúe a columna Quantity.
A orde é importante, por exemplo, non podemos calcular con UnitPrice despois de cambiarlle o nome.
Exemplo de IceCream para o prezo unitario.

Paso a paso

Probemos algúns dos exemplos anteriores neste artigo.

  1. Cree unha colección engadindo un control de Botón e configure a súa propiedade OnSelect nesta 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. Execute a fórmula seleccionando o botón e mantendo premida a tecla Alt.

  3. Engada un segunco control de Botón e axuste a súa propiedade OnSelect nesta fórmula e logo execúteo:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. No menú Ficheiro, seleccione Coleccións e logo seleccione IceCreamSales mostrar esa colección.

    Como mostra esta gráfica, a segunda fórmula non modificou esta colección. A función AddColumns empregou IceCreamSales como argumento de só lectura; a función non modificou a táboa á que se refire ese argumento.

    Visualizador da colección que mostra tres rexistros da colección Ice Cream Sales que non inclúe unha columna Revenue.

  5. Seleccione FirstExample.

    Como mostra esta gráfica, a segunda fórmula devolveu unha nova táboa coa columna engadida. A función ClearCollect capturou a nova táboa na colección FirstExample, engadindo algo á táboa orixinal mentres fluía pola función sen modificar a fonte:

    Visualizador da colección que mostra tres rexistros da colección First Example que non inclúe unha columna Revenue.

Asignar columnas nun compoñente

Consulte Asignar columnas.