Funciones AddColumns, DropColumns, RenameColumns y ShowColumns
Se aplica a: Aplicaciones de Canvas 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 columnas y ShowColumns incluye columnas.
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 excluye columnas.
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( Tabla, NombreDeColumna1, Fórmula1 [, NombreDeColumna2, Fórmula2, ... ] )
- Tabla - Obligatorio. La tabla sobre la cual se opera.
- 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 en esta fórmula.
DropColumns( Tabla, NombreDeColumna1 [, NombreDeColumna2, ... ] )
- Tabla - Obligatorio. La tabla sobre la cual se opera.
- ColumnNames - Obligatorio. Nombres de las columnas para excluir.
RenombrarColumnas( Tabla, NombreDeColumnaAntiguo1, NombreDeColumnaNuevo1 [, NombreDeColumnaAntiguo2, NombreDeColumnaNuevo2, ... ] )
- Tabla - Obligatorio. La tabla sobre la cual se opera.
- OldColumnNames : 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).
- 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).
MostrarColumnas( Tabla, NombreDeColumna1 [, NombreDeColumna2, ... ] )
- Tabla - Obligatorio. La tabla sobre la cual se opera.
- 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:
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(Ventas de helado, Ingresos, Precio unitario * Cantidad vendida) | Agrega una columna Revenue al resultado. Para cada registro, se evalúa UnitPrice * QuantitySold, y el resultado se coloca en la nueva columna. | |
DropColumns(VentasDeHelado, PrecioUnitario) | Excluye la columna UnitPrice del resultado. Use esta función para excluir columnas y usar ShowColumns para incluirlas. | |
Mostrar columnas (Ventas de helado, Sabor) | Incluye solamente la columna Flavor en el resultado. Use esta función para incluir columnas y DropColumns para excluirlas. | |
Cambiar nombre de columnas (Ventas de helado, Precio unitario, Precio) | Cambia el nombre de la columna UnitPrice en el resultado. | |
Renombrar columnas (Ventas de helado, Precio unitario, Precio, Cantidad vendida, Número) | Cambia el nombre de las columnas UnitPrice y QuantitySold en el resultado. | |
Eliminar columnas( 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:
|
Paso a paso
Probemos algunos de los ejemplos anteriores en este artículo.
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 } ) )
Ejecute la fórmula seleccionando el botón mientras mantiene presionada la tecla Alt.
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 ) )
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.
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:
Asignar columnas en un componente
Vea Asignar columnas.