Modificar de las columnas desde el origen de datos
Las funciones como Filter o Search se usan para modificar las filas devueltas; sin embargo, en ocasiones, es necesario modificar las columnas de las filas mientras se usan las filas. Por ejemplo, si crea una aplicación de carro de la compra para el envío de recursos digitales a un cliente, necesita disponer de una manera de realizar un seguimiento de los recursos seleccionados. Lo ideal sería disponer de una columna temporal para realizar el seguimiento de las filas seleccionadas que solo existen en Power Apps y que no modifique el origen de datos original. Por suerte, Power Apps ofrece una solución.
Con Power Apps dispone de varias funciones que modifican las columnas de la tabla solo dentro de Power Apps, lo que significa que no modifican ni cambian el origen de datos real. Estas funciones son las siguientes:
AddColumns
DropColumns
RenameColumns
ShowColumns
AddColumns
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.
En el ejemplo anterior de una aplicación de carro de la compra, usaría la función AddColumns para agregar una columna para realizar el seguimiento si el usuario seleccionó la columna. Para ello, establecería la siguiente fórmula para la propiedad OnSelect de un control Botón.
ClearCollect(collectDigitalAssets, AddColumns(YourDataSource,"UserSelected", false))
Al seleccionar este botón, la fórmula crea una colección llamada collectDigitalAssets que tiene todas las filas de YourDataSource y agrega la columna "Seleccionado por el usuario". El valor de columna es false para todas las filas.
Ahora en su control Galería, establezca la propiedad items en lo siguiente.
recopilarActivosDigitales
En el control Galería, tendría acceso a una columna llamada Usuario seleccionado y el valor sería false. Podría agregar entonces un botón a su galería de forma que la propiedad OnSelect revisaría la columna como true.
Patch(collectDigitalAssets, ThisItem, {UserSelected: true})
Ahora en la colección collectDigitalAssets, está realizando el seguimiento de las filas que el usuario ha seleccionado en la aplicación sin modificar las columnas del origen de datos.
DropColumns
La función DropColumns hace lo contrario que AddColumns. La función se usa para quitar columnas de la tabla dentro de Power Apps. Esta función se usa cuando quiere crear una colección dentro de Power Apps que tenga varias columnas para la funcionalidad de la aplicación. Dado que estas columnas se agregarán solo en la colección por la funcionalidad de la aplicación y no se envían al origen de datos, la función DropColumns es necesaria para quitar la columna tras el envío al origen de datos.
Por ejemplo, se crea una colección llamada collectTimeTracking para usarla en una aplicación de seguimiento del tiempo. La colección tiene cinco columnas: Nombre, Horas trabajadas, Fecha de trabajo, Última pantalla y Estado. Las columnas Nombre, Horas trabajadas y Fecha de trabajo realizan un seguimiento de los datos que se guardan en YourDataSource en función de las horas que trabaja un empleado. Las columnas Última pantalla y Estado almacenan los datos para proporcionar funcionalidad de la aplicación mientras los usuarios usan la aplicación.
Cuando el usuario termina, una manera de volver a guardar la información en el origen de datos es usar la función Collect. Si las columnas coinciden en el origen de datos, la función Collect escribirá todas las filas de la colección. En este ejemplo, Nombre, Horas trabajadas y Fecha de trabajo son las únicas columnas en el origen de datos. Última pantalla y Estado no existen en el origen de datos y no hace falta guardarlas. Puede usar DropColumns para enviar solo las columnas adecuadas al origen de datos.
Collect(YourDataSource, DropColumns(collectTimeTracking, "LastScreen","Status"))
Esta función escribirá el contenido de la colección, collectTimeTracking, en el origen de datos, YourDataSource, después de quitar las columnas Última pantalla y Estado. Observe que DropColumns no modificó la colección collectTimeTracking. Las columnas Última pantalla y Estado siguen estando disponibles dentro de la colección.
RenameColumns
Use la función RenameColumns cuando deba manipular el nombre de la columna dentro de la aplicación pero no dentro del origen de datos. Un uso común es cuando el origen de datos, que no se puede editar, tiene dificultades para hacer referencia al nombre de la columna o en él se usan palabras reservadas, como "Date".
Puede usar la función al almacenar datos en una colección. Observe que la función Collect puede tomar el contenido del origen de datos y almacenarlo en una colección.
Collect(collectProjectData, ProjectDataSource)
Esta fórmula crearía una colección llamada collectProjectData que almacena todas las filas de datos de ese origen de datos, ProjectDataSource. Si el origen de datos tiene una columna llamada Fecha, puede que le resulte más fácil trabajar en Power Apps si cambia el nombre de esa columna por Fecha de proyecto. Para ello, puede usar la fórmula siguiente en lugar del ejemplo anterior.
Collect(collectProjectData, RenameColumns(ProjectDataSource, "Date","ProjectDate"))
Tiene las mismas filas. Ahora, la columna Fecha se llama Fecha de proyecto dentro de la colección. Esto le ofrece la flexibilidad de asignar a las columnas nombres con los que sea más sencillo trabajar en la aplicación.
ShowColumns
ShowColumns se usa para mostrar una o varias columnas del origen de datos. Use esta función con controles cuando solo quiera que se devuelva una columna. Un ejemplo común es el control dropdown.
Con el control dropdown, es habitual usar un origen de datos, como una tabla de Microsoft Dataverse, para proporcionar las opciones. Cuando se establece la propiedad Items en un origen de datos, Power Apps elige la columna, si tiene varias, que se mostrará. Puede usar la función ShowColumns para seleccionar la columna que quiere mostrar.
Suponga que quiere usar un origen de datos llamado Clientes para mostrar los nombres de clientes de la columna Nombre de cliente. Usaría la siguiente fórmula en la propiedad Items del control Dropdown.
ShowColumns(Customers, "CustomerName")
Con esta fórmula, el control Dropdown muestra los valores de la columna Nombre de cliente.
ShowColumns puede devolver también más de una columna. El control Dropdown solo mostrará la primera columna, pero tendrá acceso a todas las columnas recuperadas. En el ejemplo siguiente se muestra cómo agregar la columna ID al control Dropdown.
ShowColumns(Customers, "CustomerName", "ID")
La lista desplegable solo mostrará el valor de la columna Nombre de cliente en el control Dropdown, pero con esta fórmula, ahora tiene acceso al valor de la columna ID. Agregue un control Etiqueta a la pantalla y establezca el valor Texto en lo siguiente. Si la lista desplegable no se llama Desplegable1, edite la fórmula en consecuencia.
Dropdown1.Selected.ID
La fórmula devuelve el valor de la columna ID de la fila seleccionada en el control Dropdown.
¿Necesita ayuda? Consulta nuestra guía de solución de problemas o notifica un problema para enviar comentarios específicos.