AddColumns, DropColumns, RenameColumnse funcións ShowColumns

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

Dá forma a unha táboa ou rexistro engadindo, soltando, renomeando 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 dan forma a unha táboa ou rexistro axustando as súas columnas:

  • Reducir unha táboa ou rexistro que conteña varias columnas a unha soa columna para usar con funcións dunha soa columna, como Lower ou Sqrt.
  • Engadir unha columna calculada a unha táboa ou rexistro (por exemplo, unha columna de Prezo total que mostra os resultados de multiplicar a cantidade polo prezo unitario).
  • 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, consulte Traballar con fontes de datos.

Descripción

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

A fórmula avalíase para o rexistro proporcionado ou para cada rexistro da táboa proporcionada.

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 DropColumns función exclúe as columnas dunha táboa ou rexistro. O resto das columnas seguen sen modificarse. DropColumns Exclúe columnas e ShowColumns inclúe columnas.

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

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

Para todas estas funcións, o resultado é unha nova táboa ou rexistro coa transformación aplicada. A táboa ou o rexistro orixinal non se modifica. Non se pode modificar unha táboa ou rexistro existente cunha fórmula. SharePoint, Microsoft Dataverse, SQL Server e outras fontes de datos proporcionan ferramentas para modificar as columnas de listas e táboas, que a miúdo se denominan esquema. As funcións deste tema só transforman unha táboa ou rexistro de entrada, sen modificar o orixinal, nunha táboa ou rexistro 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 usa AddColumns deste xeito, Filter debe facer chamadas separadas á fonte de datos para cada un deses primeiros rexistros en RealEstateAgents, o que provoca moita conversa 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 mediante 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( TableOrRecord, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • TableOrRecord - Obrigatorio. Táboa ou rexistro para operar.
  • ColumnNames - Obrigatorio. Nomes das columnas a engadir.
  • Fórmulas - Obrigatorio. Fórmulas a avaliar para cada rexistro. O resultado engádese como o valor da columna nova correspondente. Podes facer referencia a outras columnas da táboa ou rexistro nesta fórmula.

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

  • TableOrRecord - Obrigatorio. Táboa ou rexistro para operar.
  • ColumnNames - Obrigatorio. Nomes das columnas a soltar.

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

  • TableOrRecord - Obrigatorio. Táboa ou rexistro para operar.
  • OldColumnNames : é necesario. Nomes das columnas a renomear a partir da táboa ou rexistro 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( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )

  • TableOrRecord - Obrigatorio. Táboa ou rexistro para operar.
  • ColumnNames - 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
AddColumns( 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 usar ShowColumns para incluílas. Resultado con Strawberry, Chocolate, Vanilla só coa columna QuantitySold.
ShowColumns( IceCreamSales, Flavor ) Inclúe só a columna Flavor no resultado. Use esta función incluír columnas e usar DropColumns para excluílas. Só columna Flavor.
RenameColumns(IceCreamSales, UnitPrice, Price) Cambia o nome da columna UnitPrice no resultado. Resultado con Flavor, Price e Revenue.
RenameColumns(IceCreamSales, UnitPrice, Price, QuantitySolded, Number) Cambia o nome das columnas UnitPrice e QuantitySold no resultado. Resultado con 3 IceCreams e columnas como Flavor, Price, Revenue.
DropColumns(
RenameColumns(
AddColumns( Xeados, Ingresos,
Prezo unitario * Cantidade vendida),
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 AddColumns función usaba IceCreamSales como argumento de só lectura; a función non modificaba 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.