Funciones AddColumns, DropColumns, RenameColumns y ShowColumns

Se aplica a: Aplicaciones de lienzo Flujos de escritorio Aplicaciones basadas en modelos Power Platform CLI

Forma una tabla agregando, quitando, cambiando el nombre y seleccionando sus columnas.

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

Introducción

Estas funciones dan forma a una tabla mediante el ajuste de sus columnas:

  • Reduzca una tabla que contenga varias columnas a una sola columna para su uso con las funciones de columna única, como Lower o Sqrt.
  • Incorporación de una columna calculada a una tabla (por ejemplo, una columna Total Price que muestre el resultado de multiplicar Quantity por Unit Price).
  • 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 función AddColumns agrega una columna a una tabla y una fórmula define los valores de esa columna. Las columnas existentes permanecen sin modificar.

La fórmula se evalúa para cada registro de la tabla.

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 función DropColumns excluye las columnas de una tabla. El resto de las columnas permanece sin modificar. DropColumns excluye las columnas y ShowColumns las incluye.

Use la función RenameColumns para cambiar el nombre de una o varias columnas de una tabla al proporcionar al menos un par de argumentos que especifiquen el nombre de una columna que contiene la tabla (el nombre antiguo, que se quiere reemplazar) y el nombre de una columna que la tabla no contiene (el nombre nuevo, que se quiere usar). El nombre antiguo ya debe existir en la tabla y el nuevo nombre no. Cada nombre de columna puede aparecer solo una vez en la lista de argumentos como un nombre de columna antiguo o nuevo. Para cambiar el nombre de una columna por un nombre de columna existente, primero quite la columna existente con DropColumns o cambie el nombre de la columna existente al anidar una función RenameColumns dentro de otra.

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

Para todas estas funciones, el resultado es una nueva tabla con la transformación aplicada. La tabla original no se modifica. No puede modificar una tabla existente con una fórmula. SharePoint, Microsoft Dataverse, SQL Server y otros orígenes de datos proporcionan herramientas para modificar las columnas de listas, tablas y tablas, que a menudo se conocen como el esquema. Las funciones en este artículo solo transforman una tabla de entrada, sin modificar el original, en una tabla 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 utiliza AddColumns de esta forma, Filter debe realizar diferentes llamadas al origen de los datos para cada uno de esos primeros registros en RealEstateAgents, lo que causa mucha carga en la 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( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table - obligatorio. La tabla sobre la cual se opera.
  • ColumnName(s) (obligatorio). Nombres de las columnas que se van a agregar.
  • Formula(s): requerido. 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 en esta fórmula.

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

  • Table - obligatorio. La tabla sobre la cual se opera.
  • ColumnName(s) (obligatorio). Nombres de las columnas para excluir.

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

  • Table - obligatorio. La tabla sobre la cual se opera.
  • OldColumnName(s) - Obligatorio. Nombres de las columnas de la tabla original cuyo nombre se va a cambiar. 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).
  • NewColumnName(s) - 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( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table - obligatorio. La tabla sobre la cual se opera.
  • ColumnName(s) (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 usar 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 para incluir columnas y 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 ),
Quantity )
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 función AddColumns utilizada IceCreamSales como argumento de solo lectura; la función no modificó la tabla a la que se refiere 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.