Modificar las columnas desde el origen de datos

Completado

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, establezca 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 UserSelected. 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 de galería, la columna UserSelected tendría un valor inicial false. Luego, puede añadir un control de botón en la galería para que OnSelect use Patch como true en la columna.

Patch(collectDigitalAssets, ThisItem, {UserSelected: true})

Esta fórmula le permite hacer un seguimiento de las filas que el usuario selecciona en la colección collectDigitalAssets 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 añadidas para la funcionalidad de la aplicación. Dado que estas columnas se añaden 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 las columnas añadidas antes del 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 con el origen de datos, la función Collect escribe todas las filas de la colección en el origen de datos. En este ejemplo, Name, HoursWorked y DateWorked son las únicas columnas en el origen de datos. LastScreen y Status no están en el origen de datos y no hace falta guardarlas; de hecho, si intenta aplicar Patch a los datos con estas columnas, recibirá un error. Con DropColumns, puede quitar esas columnas de la colección y 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".

Puede usar esta 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 Date, puede que le resulte más fácil trabajar en Power Apps si cambia el nombre de esa columna por ProjectDate. Para ello, actualice la fórmula de la siguiente manera:

Collect(collectProjectData, RenameColumns(ProjectDataSource, Date, ProjectDate))

Tiene las mismas filas de datos. Ahora, la columna Date se llama ProjectDate dentro de la colección. Esta función 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 Desplegable.

Con el control Desplegable, es habitual usar un origen de datos, como una tabla de Microsoft Dataverse, para proporcionar las opciones. Cuando establece la propiedad Items en un origen de datos, Power Apps elige la columna que se mostrará (si tiene varias). Puede usar la función ShowColumns para que este control muestre la columna que quiera mostrar.

Suponga que quiere usar un origen de datos llamado Clientes para mostrar los nombres de clientes de la columna CustomerName. 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 siguiente ejemplo, se muestra cómo añadir la columna ID al control Desplegable.

ShowColumns(Customers, CustomerName, ID)

Desplegable solo mostrará el valor de la columna CustomerName en el control Desplegable, pero con esta fórmula, ahora tiene acceso al valor de la columna ID. Puede añadir un control Etiqueta a la pantalla y establecer el valor Text en lo siguiente. Si Desplegable no se llama Dropdown1, edite la fórmula como corresponda.

Dropdown1.Selected.ID

La fórmula devolverá el valor de la columna ID de la fila seleccionada en el control Desplegable.