Funciones Remove y RemoveIf en Power Apps

Quita registros de un origen de datos.

Descripción

Función Remove

Use la función Remove para quitar un registro o registros específicos de un origen de datos.

Para las colecciones, tiene que coincidir con todo el registro. Puede usar el argumento Todo para quitar todas las copias de un registro; en caso contrario, se quita solo una copia del registro.

Función RemoveIf

Use la función RemoveIf para quitar un registro o registros en función de una condición o un conjunto de condiciones. Cada condición puede ser cualquier fórmula que da como resultado true o false y puede hacer referencia a columnas del origen de datos por su nombre. Cada condición se evalúa individualmente para cada registro, y si todas las condiciones se evalúan como true se elimina el registro.

Remove y RemoveIf devuelven el origen de datos modificado como una tabla. Puede usar ambas funciones únicamente en fórmulas de comportamiento.

También puede usar la función Clear para eliminar registros en una colección.

Delegación

Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa. Puede que aparezca una advertencia en el momento de la creación para recordarle esta limitación y sugerirle un cambio a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general sobre delegación

Sintaxis

Remove( DataSource, Record1 [, Record2, ... ] [, All ] )

  • DataSource: requerido. El origen de datos que contiene el registro o los registros que desea quitar.
  • Record(s): requerido. El registro o los registros que se van a quitar.
  • All: opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el argumento All para quitar todas las copias del registro.

Remove( DataSource, Table [, All ] )

  • DataSource: requerido. El origen de datos que contiene los registros que desea quitar.
  • Table: requerido. Tabla de registros que se van a quitar.
  • All: opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el argumento All para quitar todas las copias del registro.

RemoveIf( DataSource, Condición [,...])

  • DataSource: requerido. El origen de datos que contiene el registro o los registros que desea quitar.
  • Condition(s): requerido. Una fórmula que se evalúa como true para el registro o los registros que se van a quitar. Puede usar nombres de columna de DataSource en la fórmula. Si especifica varias Condiciones, todas se deben evaluar como true para el registro o registros que va a quitar.

Ejemplos: fórmulas individuales

En estos ejemplos, va a quitar un registro o registros de un origen de datos que se denomina IceCream y que comienza con los datos en esta tabla:

Crear una colección con registros de ejemplo

Para crear una colección con estos datos:

  1. Inserte un control Button.

  2. Establezca la propiedad OnSelect del control de botón en la fórmula siguiente:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. Seleccione el botón mientras mantiene presionada la tecla Alt.

Eliminar registros de muestra de la colección con una fórmula

Fórmula Descripción Resultado
Remove( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ) )
Quita el registro Chocolate del origen de datos.

El origen de datos IceCream se ha modificado.
Remove( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ) First( Filter( IceCream, Flavor="Strawberry" ) ) )
Quita los dos registros del origen de datos.

El origen de datos IceCream se ha modificado.
RemoveIf( IceCream, Quantity > 150 ) Quita los registros que tienen una Cantidad superior a 150.

El origen de datos IceCream se ha modificado.
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Quita los registros que tienen una Cantidad superior a 150 y cuyo valor Flavor empieza con S.


El origen de datos IceCream se ha modificado.
RemoveIf ( IceCream, true) Quita todos los registros del origen de datos.

El origen de datos IceCream se ha modificado.

En este ejemplo, usará un control Gallery para enumerar los registros en una tabla. Después usará la función Remove para quitar un elemento de forma selectiva.

Preparar los datos de ejemplo

Este ejemplo usa la entidad Contacts de Microsoft Dataverse disponible con las aplicaciones y datos de muestra. Puedes desplegar aplicaciones y datos de muestra cuando crea un entorno. También puede usar cualquier otro origen de datos en su lugar.

En este ejemplo, eliminará un elemento utilizando un botón que está afuera de la galería.

  1. Cree una nueva aplicación de lienzo en blanco utilizando un diseño de teléfono.

    Aplicación de lienzo en blanco con diseño de teléfono

  2. Seleccione Insertar en el panel izquierdo.

  3. Seleccione Galería vertical.
    Se agrega un control Gallery a su pantalla.

    Uso del panel de herramientas Insertar para agregar un control de galería vertical

  4. Se le pide que seleccione un origen de datos, donde puede seleccionar un origen de datos entre los orígenes de datos disponibles.
    Por ejemplo, seleccione la entidad Contacts para utilizar datos de muestra:

    Seleccionar la entidad Contacts para mostrar en la galería

    La galería muestra elementos de esta entidad:

    Galería agregada que muestra la entidad Contacts

  5. Inserte un control Button desde el panel izquierdo:

    Uso del panel de herramientas Insertar para agregar un control de botón

  6. Mueva el botón agregado debajo de los elementos de la galería:

    Mover el botón

  7. Actualice la propiedad de texto del botón a Eliminar registro. También puede usar cualquier otro texto que elija:

    Cambiar el nombre del botón

  8. Establezca la propiedad OnSelect de este control de botón en la siguiente fórmula:

    Remove( Contacts, Gallery1.Selected )
    

    Establecer la propiedad OnSelect del control de botón

    El control de galería hace que el registro seleccionado actualmente esté disponible usando la propiedad seleccionada. La función Remove se refiere a este registro seleccionado para eliminarlo.

  9. Obtenga una vista previa de la aplicación utilizando el botón Reproducir en la esquina superior derecha, o presione F5 en el teclado:

    Vista previa de aplicación

  10. Seleccione un registro para eliminar, como Nancy en este ejemplo:

    Seleccionar un registro

  11. Seleccione Quitar registro:

    Galería de contactos, ahora sin el registro Nancy, que se ha eliminado

    Al seleccionar el botón, se elimina el registro seleccionado (en este ejemplo, el registro de Nancy).

  12. Cierre la vista previa de la aplicación.

    Sugerencia

    También puede usar un comportamiento alternativo con la tecla Alt en lugar de usar la vista previa de la aplicación con el botón Reproducir o F5.

En este ejemplo, eliminará un elemento utilizando un icono que está dentro de la galería.

Crear una colección con datos de ejemplo

Si ya tiene datos de muestra preparados, omita este paso y vaya a Icono de papelera dentro de una galería.

  1. Agregue un control Button a la pantalla.

  2. Establezca la propiedad OnSelect en la fórmula siguiente:

    ClearCollect( SampleContacts, 
          { 'Full Name': "Yvonne McKay (sample)",      'Primary Email': "someone_a@example.com" },
          { 'Full Name': "Susanna Stubberod (sample)", 'Primary Email': "someone_b@example.com" },
          { 'Full Name': "Nancy Anderson (sample)",    'Primary Email': "someone_c@example.com" },
          { 'Full Name': "Maria Campbell (sample)",    'Primary Email': "someone_d@example.com" },
          { 'Full Name': "Robert Lyon (sample)",       'Primary Email': "someone_e@example.com" },
          { 'Full Name': "Paul Cannon (sample)",       'Primary Email': "someone_f@example.com" },
          { 'Full Name': "Rene Valdes (sample)",       'Primary Email': "someone_g@example.com" } 
    )
    
  3. Seleccione el botón mientras mantiene presionada la tecla Alt.

Se crea una colección de muestra que puede usar en el siguiente ejemplo.

  1. Cree una nueva aplicación de lienzo en blanco utilizando un diseño de teléfono.

    Aplicación de lienzo en blanco con diseño de teléfono

  2. Seleccione Insertar en el panel izquierdo.

  3. Seleccione Galería vertical.
    Se agrega un control Gallery a su pantalla.

    Uso del panel de herramientas Insertar para agregar un control de galería vertical

  4. Se le pide que seleccione un origen de datos, donde puede seleccionar un origen de datos entre los orígenes de datos disponibles.
    Por ejemplo, seleccione la entidad Contacts para utilizar datos de muestra:

    Seleccionar la entidad Contacts para mostrar en la galería

    Si creó una colección, seleccione su colección en su lugar:

    Colección de contactos de ejemplo

  5. Seleccione un control dentro del elemento superior de la galería.

    Para asegurarse de que el siguiente paso inserte el elemento en la plantilla de la galería y no fuera de la galería, asegúrese de seguir este paso antes de pasar al siguiente.

    Seleccionar el registro superior en una galería

  6. Seleccione Agregar icono en el panel izquierdo.

    Uso del panel de herramientas Insertar para agregar un control de icono

    Nota

    Agregar icono inserta un icono + en el lado izquierdo de la galería, replicado para cada elemento de la galería.

  7. En el elemento superior, mueva el icono al lado derecho de la pantalla.

    Mover icono

  8. Seleccione la propiedad Icon del icono y establézcala en la siguiente fórmula para actualizar la imagen del icono como icono de papelera:

    Icon.Trash
    

    Nota

    El prefijo Icon. solo se muestra cuando está editando activamente la fórmula.

    Cambiar el icono a icono de papelera

  9. Establezca la propiedad OnSelect en la fórmula siguiente:

    Remove( [@Contacts], ThisItem )
    

    Nota

    Debe usar el operador de desambiguación global [@...] de este ejemplo con datos de muestra que usen la entidad Contacts para evitar conflictos con una relación Uno a varios. Si usa orígenes de datos como una lista de SharePoint o una tabla de SQL Server, no hace falta el operador de desambigulación global.

    OnSelect para el icono de papelera

  10. Obtenga una vista previa de la aplicación utilizando el botón Reproducir en la esquina superior derecha, o presione F5 en el teclado.

  11. Seleccione el icono de papelera al lado de un registro, por ejemplo el de Maria:

    Galería con uno de los contactos eliminados

    El registro se ha eliminado:

    Registro eliminado

  12. Cierre la vista previa de la aplicación.