Funzioni Remove e RemoveIf

Si applica a: App canvas App basate su modello Interfaccia della riga di comando di Power Platform

Rimuove i record da un'origine dati.

Nota

I comandi PAC CLI pac power-fx non supportano la funzione RemoveIf.

Descrzione

Funzione Remove

Usare la funzione Remove per rimuovere uno o più record specifici da un'origine dati.

Per le raccolte deve corrispondere l'intero record. Puoi usare l'argomento RemoveFlags.All per rimuovere tutte le copie di un record, altrimenti verrà rimossa solo una copia del record.

Funzione RemoveIf

Usare la funzione RemoveIf per rimuovere uno o più record in base a una condizione o un set di condizioni. Ogni condizione può essere qualsiasi formula che restituisce un valore true o false e può fare riferimento a colonne dell'origine dati in base al nome. Ogni condizione viene valutata singolarmente per ogni record e il record viene rimosso se tutte le condizioni restituiscono true.

Remove e RemoveIf restituiscono l'origine dati modificata come tabella. È possibile usare entrambe le funzioni solo in una formula di comportamento.

È anche possibile usare la funzione Clear per rimuovere tutti i record in una raccolta.

Delega

Quando vengono usate con un'origine dati, queste funzioni non possono essere delegate. Solo la prima parte dell'origine dati verrà recuperata e la funzione applicata. Il risultato potrebbe non rappresentare la storia completa. Al momento della creazione potrebbe apparire un avviso per ricordarti questa limitazione.

Supporto delega (sperimentale)

Il supporto della delega per RemoveIf è ora in anteprima sperimentale (disattivato per impostazione predefinita) per le origini dati che lo supportano. Se un'origine dati non supporta questa funzione, Power Apps invierà una query al server e recupererà tutti i dati che corrispondono all'espressione del filtro fino al massimo di 500, 2.000 o le dimensioni della pagina di dati. Quindi, eseguirà un'operazione di eliminazione su ognuno di quei record con singole chiamate al server.

Sintassi

Rimuovi( DataSource, Record1 [, Record2, ... ] [, RemoveFlags.All ] )

  • DataSource: obbligatorio. L'origine dati che contiene i record da rimuovere.
  • Record(s): obbligatorio. I record da rimuovere.
  • RemoveFlags.All – Facoltativo. In una raccolta, lo stesso record può essere presente più volte. È possibile aggiungere l'argomento RemoveFlags.All per rimuovere tutte le copie del record.

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

  • DataSource: obbligatorio. L'origine dati che contiene i record da rimuovere.
  • Table: obbligatorio. Tabella di record da rimuovere.
  • RemoveFlags.All – Facoltativo. In una raccolta, lo stesso record può essere presente più volte. È possibile aggiungere l'argomento RemoveFlags.All per rimuovere tutte le copie del record.

RemoveIf( DataSource, Condition [, ... ] )

  • DataSource: obbligatorio. L'origine dati che contiene i record da rimuovere.
  • Condition(s): obbligatorio. Formula che restituisce true per i record da rimuovere. È possibile usare i nomi di colonna di DataSource nella formula. Se si specificano più condizioni, devono tutte restituire true per i record da rimuovere.

Esempi: formule singole

In questi esempi verranno rimossi record in un'origine dati denominata IceCream che inizia con i dati della tabella seguente:

Esempio IceCream.

Creare una raccolta con record di esempio

Per creare una raccolta con questi dati:

  1. Inserire un controllo Button.

  2. Impostare la proprietà OnSelect del controllo button sulla formula seguente:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. Selezionare il pulsante tenendo premuto il tasto ALT:

Rimuovere i record di esempio dalla raccolta utilizzando una formula

Formula Description Result
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ))
Rimuove il record Chocolate dall'origine dati. Risultato con vaniglia e fragola.

L'origine dati IceCream è stata modificata.
Remove( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), LookUp( IceCream, Flavor="Strawberry" ) )
Rimuove due record dall'origine dati. Risultato con solo vaniglia.

L'origine dati IceCream è stata modificata.
RemoveIf( IceCream, Quantity > 150 ) Rimuove i record che hanno un valore Quantity maggiore di 150. Risultato con solo cioccolato.

L'origine dati IceCream è stata modificata.
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Rimuove i record che hanno un valore Quantity maggiore di 150 e un valore Flavor che inizia con S. Risultato con cioccolato e vaniglia.


L'origine dati IceCream è stata modificata.
RemoveIf( IceCream, true ) Rimuove tutti i record dall'origine dati. Risultato con nessun gelato.

L'origine dati IceCream è stata modificata.

In questo esempio, si utilizzerà un controllo Gallery per elencare i record in una tabella. Quindi, usare la funzione Remove per rimuovere un elemento in modo selettivo.

Preparare i dati di esempio

Questo esempio usa la tabella Contatti in Microsoft Dataverse disponibile con app e dati di esempio. È possibile distribuire app e dati di esempio quando si crea un ambiente. In alternativa, è anche possibile usare qualsiasi altra origine dati.

In questo esempio, si rimuoverà un elemento usando a pulsante esterno alla raccolta.

  1. Creare un nuova app canvas vuota utilizzando un layout Telefono.

    Creare una app canvas vuota utilizzando il layout Telefono.

  2. Nel riquadro di spostamento sinistro selezionare Inserisci.

  3. Selezionare Raccolta verticale.
    Un controllo Gallery viene aggiunto alla schermata.

    Utilizzo del riquadro di strumenti Inserisci per aggiungere un controllo vertical gallery.

  4. Viene richiesto di selezionare un origine dati in cui è possibile selezionare un origine dati tra quelle disponibili.
    Ad esempio, seleziona la tabella Contatti per usare i dati di esempio:

    Selezione della tabella Contatti da visualizzare nella raccolta.

    La raccolta mostra gli elementi di questa tabella:

    Raccolta aggiunta che mostra la tabella Contatti.

  5. Inserire un controllo Button dal riquadro sinistro:

    Utilizzo del riquadro di strumenti Inserisci per aggiungere un controllo button.

  6. Spostare il pulsante aggiunto sotto gli elementi della raccolta:

    Spostare il pulsante.

  7. Aggiornare la proprietà Text del pulsante a Rimuovi record. È anche possibile utilizzare testo di propria scelta:

    Rinominare il pulsante.

  8. Impostare la proprietà OnSelect per questo controllo button sulla seguente formula.

    Remove( Contacts, Gallery1.Selected )
    

    Impostare la proprietà OnSelect del controllo button.

    Il controllo gallery rende disponibile il record attualmente selezionato usando la proprietà Selected. La funzione Remove si riferisce a questo record selezionato per rimuoverlo.

  9. Visualizzare l'anteprima dell'app usando il pulsante Riproduci in alto a destra o premere F5 sulla tastiera:

    Anteprima dell'app.

  10. Selezionare un record da rimuovere, ad esempio quello di Nancy in questo esempio:

    Selezionare un record,

  11. Selezionare Rimuovi record:

    Raccolta di contatti senza il record Nancy che è stato rimosso.

    La selezione del pulsante rimuove il record selezionato (in questo esempio, il record di Nancy).

  12. Chiudere l'anteprima dell'app.

    Mancia

    È anche possibile usare un comportamento alternativo con il tasto ALT anziché utilizzare l'anteprima dell'app con il pulsante Riproduci o il tasto F5.

In questo esempio, si rimuoverà un elemento usando un'icona posizionata nella raccolta.

Creare una raccolta con dati di esempio

Se i dati di esempio sono già stati preparati, saltare questo passaggio e passare a Icona cestino in una raccolta.

  1. Aggiungere un controllo Button alla schermata.

  2. Impostare la proprietà OnSelect sulla formula seguente:

    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. Selezionare il pulsante tenendo premuto il tasto ALT.

Viene creata una raccolta di esempi che è possibile utilizzare nell'esempio seguente.

  1. Creare un nuova app canvas vuota utilizzando un layout Telefono.

    Creare una app canvas vuota utilizzando il layout Telefono.

  2. Nel riquadro di spostamento sinistro selezionare Inserisci.

  3. Selezionare Raccolta verticale.
    Un controllo Gallery viene aggiunto alla schermata.

    Utilizzo del riquadro di strumenti Inserisci per aggiungere un controllo vertical gallery.

  4. Viene richiesto di selezionare un origine dati in cui è possibile selezionare un origine dati tra quelle disponibili.
    Ad esempio, seleziona la tabella Contatti per usare i dati di esempio:

    Selezione della tabella Contatti da visualizzare nella raccolta.

    Se è stata creata una raccolta, selezionare invece la propria raccolta:

    Raccolta di contatti di esempio.

  5. Selezionare un controllo nel primo elemento della raccolta.

    Per assicurarsi che il passaggio successivo inserisca l'elemento nel modello della raccolta e non all'esterno della raccolta, eseguire questo passaggio prima di passare a quello successivo.

    Selezionare il primo record in una raccolta.

  6. Selezionare Aggiungi icona nel riquadro sinistro.

    Utilizzo del riquadro di strumenti Inserisci per aggiungere un controllo icona.

    Nota

    Aggiungi icona inserisce un'icona + sul lato sinistro della raccolta, replicata per ogni elemento nella raccolta.

  7. Nel primo elemento, spostare l'icona sul lato destro dello schermata.

    Spostare l'icona.

  8. Selezionare la proprietà Icon per l'icona e impostarla sulla seguente formula per aggiornare l'immagine dell'icona come icona cestino:

    Icon.Trash
    

    Nota

    Il prefisso Icon. viene visualizzato solo quando si modifica attivamente la formula.

    Modificare l'icona in icona cestino.

  9. Impostare la proprietà OnSelect sulla formula seguente:

    Remove( [@Contacts], ThisItem )
    

    Nota

    Devi usare l'operatore di disambiguazione globale[@...] in questo esempio con dati di esempio che utilizzano la tabella Contatti per evitare conflitti con una relazione Uno a molti. Se utilizzi origini dati come elenco o tabella di SQL Server, l'utilizzo dell'operatore di risoluzione ambiguità non è richiesto.

    OnSelect per l'icona cestino.

  10. Visualizzare l'anteprima dell'app usando il pulsante Riproduci in alto a destra o premere F5 sulla tastiera.

  11. Selezionare l'icona cestino accanto a un record, ad esempio quello di Maria:

    Raccolta con uno dei contatti rimosso.

    Il record viene eliminato:

    Eliminare il record.

  12. Chiudere l'anteprima dell'app.