Compartir a través de


AddColumnsFunciones , DropColumns, RenameColumnsy ShowColumns

Se aplica a: Aplicaciones de lienzo Copilot Studio Desktop fluyen aplicaciones controladas por modelos Funciones de Dataverse de la CLI de Power Platform

Da forma a una tabla o registro agregando, quitando, cambiando el nombre y seleccionando sus columnas.

La función ForAll también se puede usar para dar forma a una tabla, devolviendo una tabla de registros nuevos creados a partir de columnas existentes.

Introducción

Estas funciones dan forma a una tabla o registro ajustando sus columnas:

  • Reduzca una tabla o un registro que contenga varias columnas hasta una sola columna para su uso con funciones de una sola columna, como Lower o Sqrt.
  • Agregue una columna calculada a una tabla o registro (por ejemplo, una columna Precio total que muestre los resultados de multiplicar Cantidad por precio unitario).
  • Cambio del nombre de una columna a algo más significativo, para mostrarla a los usuarios o para su uso en las fórmulas.

Una tabla es un valor en Power Apps, como una cadena o un número. Puede especificar una tabla como un argumento en una fórmula, y las funciones pueden devolver una tabla como resultado.

Nota

Las funciones que se describen en este tema no modifican la tabla original. En su lugar, usan una tabla como un argumento y devuelven una nueva tabla con una transformación aplicada. Para más información, consulte trabajar con tablas.

No se pueden modificar las columnas de un origen de datos mediante el uso de estas funciones. Tiene que modificar los datos en su origen. Puede agregar columnas a una colección con la función Collect. Para más información, consulte trabajar con orígenes de datos.

Description

La AddColumns función agrega una columna a una tabla o registro y una fórmula define los valores de esa columna. Las columnas existentes permanecen sin modificar.

La fórmula se evalúa para el registro proporcionado o para cada registro de la tabla proporcionada.

Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Use el operador ThisRecord o simplemente haga referencia a los campos por nombre como lo haría con cualquier otro valor. El operador As también se puede usar para nombrar el registro que se está procesando, lo que puede ayudar a que su fórmula sea más fácil de entender y hacer accesibles los registros anidados. Para obtener más información, vea los ejemplos siguientes y trabajar con el ámbito de registros.

La DropColumns función excluye las columnas de una tabla o registro. El resto de las columnas permanece sin modificar. DropColumns excluye las columnas e ShowColumns incluye columnas.

Use la función para cambiar el RenameColumns nombre de una o varias columnas de una tabla o un registro proporcionando al menos un par de argumentos que especifique el nombre de una columna que contiene la tabla o el registro (el nombre anterior, que desea reemplazar) y el nombre de una columna que la tabla o el registro no contiene (el nuevo nombre, que quiere usar). El nombre anterior ya debe existir en la tabla o registro, y el nuevo nombre no debe existir. Cada nombre de columna solo puede aparecer una vez en la lista de argumentos como un nombre de columna anterior o un nombre de columna nuevo. Para cambiar el nombre de una columna a un nombre de columna existente, quite primero la columna existente con DropColumnso cambie el nombre de la columna existente de la manera anidada una RenameColumns función dentro de otra.

La ShowColumns función incluye columnas de una tabla o registro y quita todas las demás columnas. Puede usar ShowColumns para crear una tabla o un registro de una sola columna a partir de una tabla o registro de varias columnas. ShowColumns incluye columnas y DropColumns excluye columnas.

Para todas estas funciones, el resultado es una nueva tabla o registro con la transformación aplicada. La tabla o el registro originales no se modifican. No se puede modificar una tabla o registro existente con una fórmula. SharePoint, Microsoft Dataverse, SQL Server y otros orígenes de datos proporcionan herramientas para modificar las columnas de listas y tablas, que a menudo se conocen como esquema. Las funciones de este tema solo transforman una tabla o registro de entrada, sin modificar el original, en una tabla o registro de salida para su uso posterior.

Los argumentos de estas funciones admiten la delegación. Por ejemplo, una función Filter utilizada como argumento para extraer búsquedas de registros relacionados en todos los listados, incluso si el origen de datos '[dbo].[AllListings]' contiene un millón de filas:

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

Sin embargo, la salida de estas funciones está sujeta al límite de registro sin delegación. En este ejemplo, solo se devuelven 500 registros incluso si el origen de datos RealEstateAgents tiene 501 o más registros.

Si usa AddColumns de esta manera, Filter debe realizar llamadas independientes al origen de datos para cada uno de esos primeros registros en RealEstateAgents, lo que provoca una gran cantidad de chatter de red. Si [dbo](.[AllListings] es lo suficientemente pequeño y no cambia con frecuencia. Puede llamar a la función Recopilar en OnStart para almacenar en caché el origen de datos en su aplicación cuando se inicia. Como alternativa, puede reestructurar su aplicación para que obtenga los registros relacionados solo cuando el usuario los solicite.

Nota

En Power Apps antes de la versión 3.24042, los nombres de las columnas se especificaban con una cadena de texto usando comillas dobles y, si estaban conectadas a un origen de datos también debían ser nombres lógicos. Por ejemplo, se utilizó el nombre lógico "cr43e_name" con comillas dobles en lugar del nombre Name sin comillas. Para orígenes de datos de SharePoint y Excel que contienen nombres de columnas con espacios, cada espacio se especificó con "_x0020_", por ejemplo "Column Name" como "Column_x0020_Name". Después de esta versión, todas las aplicaciones se actualizaron automáticamente a la nueva sintaxis descrita en este artículo.

Sintaxis

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

  • TableOrRecord : obligatorio. Tabla o registro en el que operar.
  • ColumnNames - Obligatorio. Nombres de las columnas que se van a agregar.
  • Fórmulas - Obligatorio. Fórmulas que se evalúan en cada registro. Se agregará el resultado como el valor de la nueva columna correspondiente. Puede hacer referencia a otras columnas de la tabla o registro en esta fórmula.

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

  • TableOrRecord : obligatorio. Tabla o registro en el que operar.
  • ColumnNames - Obligatorio. Nombres de las columnas para excluir.

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

  • TableOrRecord : obligatorio. Tabla o registro en el que operar.
  • OldColumnNames : Obligatorio. Nombres de las columnas para cambiar el nombre de la tabla o registro original. Este elemento aparece en primer lugar en el par de argumentos (o en primer lugar en cada par de argumentos si la fórmula incluye más de un par).
  • NewColumnNames : Obligatorio. Nombres de reemplazo. Este elemento aparece en último lugar en el par de argumentos (o en último lugar en cada par de argumentos si la fórmula incluye más de un par).

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

  • TableOrRecord : obligatorio. Tabla o registro en el que operar.
  • ColumnNames - Obligatorio. Nombres de las columnas para incluir.

Ejemplos

En los ejemplos en esta sección, use el origen de datos IceCreamSales, que contiene los datos de esta tabla:

Ejemplo de IceCream.

Ninguno de estos ejemplos modifica el origen de datos IceCreamSales. Cada función transforma el valor del origen de datos como una tabla y devuelve ese valor como resultado.

Fórmula Description Result
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) Agrega una columna Revenue al resultado. Para cada registro, se evalúa UnitPrice * QuantitySold, y el resultado se coloca en la nueva columna. Resultado con Srawberry, Chocolate y Vainilla.
DropColumns( IceCreamSales, UnitPrice ) Excluye la columna UnitPrice del resultado. Use esta función para excluir columnas y usarlas ShowColumns para incluirlas. Resultado con fresa, chocolate, vainilla que tiene sólo cantidadColumna vendida.
ShowColumns( IceCreamSales, Flavor ) Incluye solamente la columna Flavor en el resultado. Use esta función include columns (Incluir columnas) y use DropColumns para excluirlas. Columna Solo sabor.
RenameColumns( IceCreamSales, UnitPrice, Price) Cambia el nombre de la columna UnitPrice en el resultado. Resultado con sabor, precio e ingresos.
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) Cambia el nombre de las columnas UnitPrice y QuantitySold en el resultado. Resultado con 3 IceCreams y columnas como Sabor, Precio, Ingresos.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Revenue,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
Cantidad )
Realiza las siguientes transformaciones de tabla en orden, comenzando desde el interior de la fórmula:
  1. Agrega una columna Revenue basada en el cálculo por registro de UnitPrice * Quantity.
  2. Cambia el nombre de UnitPrice a Price.
  3. Excluye la columna Quantity.
El orden es importante, por ejemplo, no se puede calcular con UnitPrice después de que se le haya cambiado el nombre.
Ejemplo de Helado para precio unitario.

Paso a paso

Probemos algunos de los ejemplos anteriores en este artículo.

  1. Cree una colección agregando un control Button con la siguiente fórmula en su propiedad OnSelect:

    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. Ejecute la fórmula seleccionando el botón mientras mantiene presionada la tecla Alt.

  3. Agregue un segundo control Button y establezca su propiedad OnSelect en esta fórmula y luego ejecútela:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. En el menú Archivo, seleccione Colecciones y luego seleccione IceCreamSales para mostrar esa colección.

    Como muestra este gráfico, la segunda fórmula no modificó esta colección. La AddColumns función usó IceCreamSales como argumento de solo lectura; la función no modificó la tabla a la que hace referencia ese argumento.

    Visor de colecciones que muestra tres registros de la colección IceCreamSales que no incluye una columna Revenue.

  5. Seleccione FirstExample.

    Como muestra este gráfico, la segunda fórmula devolvió una nueva tabla con la columna agregada. La función ClearCollect capturó la nueva tabla en la colección FirstExample, agregando algo a la tabla original a medida que pasaba a través de la función sin modificar el origen:

    Visor de colecciones que muestra tres registros de la colección First Example que no incluye una columna Revenue nueva.

Asignar columnas en un componente

Vea Asignar columnas.