Modificar las columnas desde el origen de datos
Al trabajar con filas de datos en Power Apps, hay funciones como Filter y Search que ayudan a refinar las propias filas. Sin embargo, en algunas situaciones es necesario modificar las columnas dentro de esas filas sin alterar el origen de datos original.
Supongamos que debe crear una aplicación de carrito de compras en la que desee realizar un seguimiento de los artículos seleccionados. En tales casos, tener una columna temporal únicamente dentro de Power Apps, sin que haya un impacto en el origen de datos original, es imprescindible.
Afortunadamente, Power Apps proporciona un conjunto de funciones diseñadas para este propósito. Estas funciones le permiten modificar columnas dentro del entorno de su aplicación, lo que afecta la forma en que se administran o presentan los datos sin realizar ningún cambio en el origen de datos subyacente. Esto garantiza que sus modificaciones, como el seguimiento de artículos seleccionados en un carrito de compras, estén confinadas dentro de la aplicación y no afecten al 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.
collectDigitalAssets
En el control Galería, tendría acceso a una columna llamada UserSelected 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 agregan 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 LastScreen y Status 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 escribe todas las filas de la colección. En este ejemplo, Name, HoursWorked y DateWorked son las únicas columnas en el origen de datos. LastScreen y Status 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 LastScreen y Status. Como puede ver, DropColumns no ha modificado la colección collectTimeTracking. Las columnas LastScreen y Status 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 cuando se usan palabras reservadas, como "Date", en el nombre de la columna.
Puede usar la función al almacenar datos en una colección. 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 Date se llama ProjectDate 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 menú desplegable.
Con el control menú desplegable, 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 menú desplegable 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 menú desplegable.
ShowColumns(Customers, "CustomerName", "ID")
El menú desplegable solo mostrará el valor de la columna CustomerName en el control menú desplegable, pero, con esta fórmula, ahora tiene acceso al valor de ID column. Agregue un control Etiqueta a la pantalla y establezca el valor Text en lo siguiente. Si la lista desplegable no se llama Dropdown1, edite la fórmula en consecuencia.
Dropdown1.Selected.ID
La fórmula devuelve el valor de ID column de la fila seleccionada en el control menú desplegable.