Funciones Remove y RemoveIf

Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelo Power Platform CLI

Quita registros de un origen de datos.

Nota

Los comandos PAC CLI pac power-fx no admiten la función RemoveIf.

Description

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 RemoveFlags.All 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. Esto puede no representar la historia completa. Puede aparecer una advertencia en el momento de la creación para recordarle esta limitación.

Soporte de delegación (Experimental)

El soporte de delegación para RemoveIf ahora está en Vista previa experimental (desactivado de manera predeterminada) para las fuentes de datos que lo admiten. Si un origen de datos no es compatible con esta función, Power Apps enviará una consulta al servidor y recuperará todos los datos que coincidan con la expresión del filtro hasta un máximo de 500, 2000 o el tamaño de la página de datos. Luego, realizará una operación de eliminación en cada uno de esos registros con llamadas individuales al servidor.

Sintaxis

Remove( DataSource, Record1 [, Record2, ... ] [, RemoveFlags.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.
  • RemoveFlags.All – Opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el argumento RemoveFlags.All para quitar todas las copias del registro.

Remove( DataSource, Table [, RemoveFlags.All ] )

  • DataSource: requerido. El origen de datos que contiene los registros que desea quitar.
  • Table: requerido. Tabla de registros que se van a quitar.
  • RemoveFlags.All – Opcional. En una colección, el mismo registro puede aparecer más de una vez. Puede agregar el argumento RemoveFlags.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:

Ejemplo de IceCream.

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 button 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 Description Result
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ))
Quita el registro Chocolate del origen de datos. Resultado con vainilla y fresa.

El origen de datos IceCream se ha modificado.
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) )
Quita los dos registros del origen de datos. Resultado solo con vainilla.

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

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


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

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 tabla Contactos 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 tabla Contactos para usar Datos de muestra:

    Seleccionar la tabla de contactos para mostrar en la galería.

    La galería muestra elementos de esta tabla:

    Galería agregada que muestra la tabla Contactos.

  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 Selected. 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:

    Seleccione 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.

    Propina

    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 tabla Contactos para usar Datos de muestra:

    Seleccionar la tabla de contactos 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[@...] en este ejemplo con datos de muestra que utilizan la tabla Contactos para evitar conflictos con una relación de uno a varios. Si usa orígenes de datos como una lista 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.