Eliminazione dei record da origini dati e raccolte
In questa unità si illustrerà il concetto di eliminazione di un record da un'origine o raccolta di dati tabulari. A differenza della creazione e della modifica di record, per cui sono disponibili più controlli e funzioni, per l'eliminazione dei record è disponibile solo un numero ristretto di opzioni, tra cui Remove, RemoveIf e Clear. Molto spesso si aggiungono queste funzioni alla proprietà OnSelect di un pulsante o di un controllo icona per eliminare un record.
Eliminazione di un record
Per eliminare un record dall'origine dati, usare la funzione Remove. Usare la funzione Remove per specificare l'origine dati e il record da eliminare. Il modo più comune per specificare questo record consiste nell'usare la funzione LookUp per recuperare il record dall'origine dati. Se si usa una raccolta e si vuole eliminare il record corrente, l'operatore ThisItem punta al record.
Ad esempio si potrebbe usare la formula seguente per eliminare un record.
Remove(CustomerOrders, LookUp(CustomerOrders, ID = 1))
Questa formula elimina il record con ID 1 dall'origine dati CustomerOrders.
Nessuna conferma richiesta con Remove
Remove non richiede alcuna conferma prima dell'eliminazione del record specificato. Se si vuole verificare che l'utente intenda effettivamente rimuovere il record, è necessario creare una funzionalità di conferma, ad esempio una finestra di dialogo popup con pulsanti.
Eliminazione in base a una condizione
Se si vuole eliminare più di un record dall'origine dati, è possibile usare RemoveIf. La funzione RemoveIf consente di specificare un'origine dati da cui eseguire l'eliminazione e una condizione per la selezione dei record da eliminare. Si tratta della stessa logica che viene usata dalla funzione Filter.
È ad esempio possibile usare la formula seguente per eliminare tutti i record in cui Status è uguale a Expired dall'origine dati CustomerOrders.
RemoveIf(CustomerOrders, Status = "Expired")
Eliminazione di tutti i record
È anche possibile eliminare tutti i record in un'origine dati. Questa operazione generalmente viene eseguita con le raccolte, in cui è possibile usare la funzione Clear. Se si vuole eliminare tutti i record da un'origine dati, è possibile usare RemoveIf.
Eliminazione di tutti i record in una raccolta
La funzione Clear elimina tutti i record di una raccolta. Le colonne della raccolta vengono mantenute. L'unico input da passare alla funzione è il nome della raccolta.
È ad esempio possibile usare la formula seguente per eliminare tutti i record da una raccolta denominata collectSelectedItems.
Clear(collectSelectedItems)
Questa formula elimina tutti i record dalla raccolta collectSelectedItems senza modificare le colonne della raccolta.
Questo tipo di formula viene generalmente usato per cancellare la raccolta senza doverla ridefinire, come nel caso di un pulsante di reimpostazione o della selezione di un nuovo ordine. Quando si lavora con le raccolte, è disponibile anche la funzione ClearCollect.
La funzione ClearCollect elimina tutti i record da una raccolta e quindi aggiunge un diverso set di record nella stessa raccolta. Con una singola funzione, ClearCollect offre la combinazione di Clear e Collect.
Tutte e tre le funzioni hanno una specifica utilità. Un modo per valutare se usare Clear e Collect rispetto a ClearCollect è determinare se occorre cancellare la raccolta o aggiungere nuovi record. Di seguito sono riportati due esempi per illustrare questo concetto:
In una sola volta: ad esempio, per ricaricare gli elementi in una raccolta per un menu a discesa quando una schermata diventa visibile, è preferibile usare ClearCollect. Una singola funzione ClearCollect nella formula rimuove i vecchi record e aggiunge immediatamente i nuovi record.
In più passaggi: se si usano raccolte per archiviare gli input dell'utente, ad esempio in un carrello acquisti, è possibile usare Clear e Collect. Questo perché l'utente potrebbe voler cancellare il carrello acquisti senza aggiungere un nuovo record.
Eliminazione di tutti i record da un'origine dati
È possibile eliminare tutti i record da un'origine dati usando RemoveIf. Si tratta tuttavia di uno scenario poco frequente. Anche in questo caso non viene visualizzata alcuna richiesta di conferma prima dell'elaborazione della formula, a meno che non si crei una funzionalità di questo tipo. Infine, in Power Apps non è disponibile alcun Cestino o comando Annulla. Per ripristinare i dati, è necessario passare all'origine dati e usare qualsiasi processo di ripristino disponibile per tale origine dati, all'esterno di Power Apps. Procedere con cautela.
È ad esempio possibile usare la formula seguente per eliminare tutti i record da un'origine dati.
RemoveIf(CustomerOrders, true)
Questa formula elimina tutti i record dall'origine dati CustomerOrders senza modificarne le colonne.
Questo procedimento funziona perché RemoveIf controlla tutti i record nell'origine dati per verificare se l'equazione è uguale a true. In questo caso, l'equazione è stata impostata su true, quindi tutti i record vengono eliminati.
Nota
L'impostazione della parte di equazione su true è possibile anche con la funzione Filter. Questa impostazione può essere utile per tentare di risolvere problemi relativi alle formule in cui non si sa con certezza se Filter restituisce dati.