Eliminar registros de orígenes de datos y colecciones

Completado

En esta unidad, hablaremos de la eliminación de un registro en una colección o un origen de datos tabulares. A diferencia de la creación y edición de registros, para lo que hay varios controles y funciones, para eliminar registros solo están las funciones Remove, RemoveIf y Clear. La mayoría de las veces agregamos estas funciones a la propiedad OnSelect de un botón o control de icono para eliminar un registro.

Eliminar un registro

Para eliminar un registro del origen de datos, use la función Remove. La función Remove se usa para especificar el origen de datos y el registro que se quiere eliminar. La forma más común de especificar este registro consiste en usar la función LookUp para recuperar el registro del origen de datos. Si usa una galería y quiere eliminar el registro actual, otra opción es el operador ThisItem, que hace referencia al registro.

Por ejemplo, podría usar la fórmula siguiente para eliminar un registro.

Remove(CustomerOrders, LookUp(CustomerOrders, ID = 1))

Esta fórmula elimina el registro donde el identificador es igual a 1 en el origen de datos CustomerOrders.

Remove no solicita confirmación

Remove no solicita ninguna confirmación antes de eliminar el registro especificado. Si desea confirmar si el usuario quiere eliminar el registro, tendrá que crear algún tipo de funcionalidad de confirmación, como un cuadro de diálogo emergente con botones.

Eliminación según una condición

Si quiere eliminar más de un registro del origen de datos, puede usar RemoveIf. La función RemoveIf permite proporcionar un origen de datos desde el que se va a eliminar y una condición para seleccionar los registros que se van a eliminar. Se trata de la misma lógica que se usa en la función Filter.

Por ejemplo, podría usar la fórmula siguiente para eliminar todos los registros donde el valor de Status es igual a Expired en el origen de datos CustomerOrders.

RemoveIf(CustomerOrders, Status = "Expired")

Eliminación de todos los registros

También es posible eliminar todos los registros de un origen de datos. Esto es muy habitual con colecciones en las que se puede usar la función Clear. Si quiere eliminar todos los registros de un origen de datos, puede usar RemoveIf.

Eliminación de todos los registros de una colección

La función Clear elimina todos los registros de una colección. Las columnas de la colección se conservarán. La única entrada que se pasa a la función es el nombre de la colección.

Por ejemplo, podría usar la fórmula siguiente para eliminar todos los registros de una colección llamada collectSelectedItems.

Clear(collectSelectedItems)

Esta fórmula elimina todos los registros de la colección collectSelectedItems sin cambiar las columnas de la colección.

Normalmente, verá este tipo de fórmula cuando quiera borrar la colección sin tener que volver a definirla, como sucede con un botón de restablecimiento o la selección de un pedido nuevo. Cuando trabaja con colecciones, también dispone de la función ClearCollect.

La función ClearCollect elimina todos los registros de una colección y agrega otro conjunto de registros a la misma colección. Con una sola función, ClearCollect ofrece la combinación de Clear y después Collect.

Las tres funciones tienen su lugar. Algo que puede ayudarle a decidir si es mejor usar Clear y Collect o ClearCollect es el momento en el que se produce la eliminación de la colección, en comparación con el momento en el que quiere volver a agregar registros. A continuación, incluimos dos ejemplos para explicar esto.

  • Todo a la vez: por ejemplo, si va a recargar los elementos de una colección para un menú desplegable cuando una pantalla se hace visible, le interesará usar ClearCollect. Una única función ClearCollect en la fórmula elimina los registros antiguos y agrega inmediatamente los nuevos.

  • Varios pasos: por ejemplo, si usa colecciones para almacenar entradas de usuario como las de un carro de la compra, puede usar Clear y Collect. Esto es porque es posible que el usuario quiera borrar su carro de la compra sin agregar un registro nuevo.

Eliminación de todos los registros de un origen de datos

Es posible eliminar todos los registros de un origen de datos mediante RemoveIf. No es un escenario muy común. Como antes, no habrá ninguna confirmación antes del procesamiento de la fórmula, a menos que cree esa funcionalidad. Por último, en Power Apps no hay ninguna función para deshacer ni una papelera de reciclaje. Si quiere recuperar los datos, tendrá que ir al origen de datos y usar el proceso de recuperación que esté disponible para ese origen de datos, fuera de Power Apps. Tenga cuidado.

Por ejemplo, podría usar la fórmula siguiente para eliminar todos los registros de un origen de datos.

RemoveIf(CustomerOrders, true)

Esta fórmula elimina todos los registros del origen de datos CustomerOrders sin cambiar sus columnas.

Esto funciona porque RemoveIf comprueba todos los registros del origen de datos para ver si la ecuación es igual a true. En este caso, la ecuación se ha establecido en true, por lo que se eliminarán todos los registros.

Nota

Establecer la parte de la ecuación en true también funciona con la función Filter. Esta configuración puede ser valiosa cuando intente solucionar problemas de fórmulas en las que no está seguro de si Filter devuelve datos.