Supprimer des enregistrements de sources de données et de collections

Effectué

Dans cette unité, nous allons aborder le concept de suppression d’un enregistrement d’une collection ou source de données tabulaires. Contrairement à la création et à la modification d’enregistrements, qui ont plusieurs contrôles et fonctions, la suppression d’enregistrements peut être effectuée uniquement avec quelques options, notamment les fonctions Remove, RemoveIf et Clear. Le plus souvent, vous ajoutez ces fonctions à la propriété OnSelect d’un contrôle Bouton ou Icône pour supprimer un enregistrement.

Supprimer un enregistrement

Vous pouvez supprimer un enregistrement de votre source de données à l’aide de la fonction Remove. La fonction Remove vous permet de spécifier la source de données et l’enregistrement que vous souhaitez supprimer. La méthode la plus courante pour spécifier cet enregistrement consiste à le récupérer de la source de données à l’aide de la fonction LookUp. Si vous utilisez une galerie et que vous souhaitez supprimer l’enregistrement actuel, l’opérateur ThisItem pointe vers l’enregistrement.

Par exemple, vous pouvez supprimer un enregistrement à l’aide de la formule suivante :

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

Cette formule supprime l’enregistrement dont l’ID est égal à 1 de la source de données CustomerOrders.

La fonction Remove ne demande pas de confirmation

La fonction Remove ne demande aucune confirmation avant de supprimer l’enregistrement spécifié. Pour vérifier que l’utilisateur souhaite supprimer l’enregistrement, vous devez créer une fonctionnalité de confirmation telle qu’une boîte de dialogue contextuelle avec des boutons.

Effectuer une suppression en fonction d’une condition

Vous pouvez supprimer plusieurs enregistrements de votre source de données à l’aide de la fonction RemoveIf. La fonction RemoveIf vous permet de fournir une source de données contenant les enregistrements à supprimer et une condition permettant de sélectionner ces enregistrements. Il s’agit de la même logique que celle utilisée par la fonction Filter.

Par exemple, la formule suivante vous permet de supprimer tous les enregistrements dont le statut est Expiré de la source de données CustomerOrders :

RemoveIf(CustomerOrders, Status = "Expired")

Supprimer tous les enregistrements

Vous pouvez également supprimer tous les enregistrements d’une source de données. C’est plus courant avec les collections, où vous pouvez utiliser la fonction Clear. Vous pouvez supprimer tous les enregistrements d’une source de données à l’aide de la fonction RemoveIf.

Supprimer tous les enregistrements d’une collection

La fonction Clear supprime tous les enregistrements d’une collection. Les colonnes de la collection demeurent. La seule entrée que vous transmettez à la fonction est le nom de la collection.

Par exemple, la formule suivante vous permet de supprimer tous les enregistrements d’une collection nommée collectSelectedItems :

Clear(collectSelectedItems)

Cette formule supprime tous les enregistrements de la collection collectSelectedItems sans changer les colonnes de la collection.

Ce type de formule est généralement utilisé lorsque vous souhaitez nettoyer la collection sans avoir à la redéfinir, comme dans le cas d’un bouton de réinitialisation ou du choix d’un nouvel ordre. Lorsque vous travaillez sur des collections, vous disposez également de la fonction ClearCollect.

La fonction ClearCollect supprime tous les enregistrements d’une collection, puis ajoute un autre jeu d’enregistrements à la même collection. La fonction ClearCollect combine les fonctions Clear et Collect, successivement.

Les trois fonctions ont leur raison d’être. Un moyen de savoir s’il convient d’utiliser Clear et Collect ou ClearCollect consiste à déterminer à quel moment intervient l’effacement de la collection et à quel moment vous souhaitez rajouter des enregistrements. Voici deux exemples à des fins d’illustration :

  • Tout en même temps : par exemple, si vous rechargez les éléments dans une collection pour un menu déroulant quand un écran devient visible, vous pouvez utiliser ClearCollect. Une seule fonction ClearCollect dans votre formule supprime les anciens enregistrements et ajoute immédiatement les nouveaux.

  • En plusieurs étapes : par exemple, si vous stockez des entrées utilisateur telles qu’un panier d’achat à l’aide de collections, vous pouvez utiliser Clear et Collect. En effet, l’utilisateur peut souhaiter effacer son panier d’achat sans ajouter de nouvel enregistrement.

Supprimer tous les enregistrements d’une source de données

Vous pouvez supprimer tous les enregistrements d’une source de données à l’aide de la fonction RemoveIf. Ce scénario n’est pas courant. Là encore, il n’y a aucune confirmation avant que la formule procède au traitement, sauf si vous créez une fonctionnalité de ce type. Enfin, il n’y a aucune fonctionnalité d’annulation ou de récupération de la corbeille dans Power Apps. Si vous souhaitez récupérer vos données, vous devez accéder à votre source de données et utiliser le processus de récupération disponible pour celle-ci, en dehors de Power Apps. Agissez avec précaution.

Par exemple, la formule suivante vous permet de supprimer tous les enregistrements d’une source de données :

RemoveIf(CustomerOrders, true)

Cette formule supprime tous les enregistrements de la source de données CustomerOrders sans changer les colonnes de la source de données.

Cette opération fonctionne, car la fonction RemoveIf vérifie chaque enregistrement dans la source de données pour déterminer si l’équation est égale à true. Dans ce cas, l’équation est définie sur true, donc tous les enregistrements sont supprimés.

Remarque

La définition de la partie de l’équation sur true fonctionne également avec la fonction Filter. Ce paramètre peut être précieux si vous tentez de résoudre des problèmes liés à des formules où vous ne savez pas si la fonction Filter renvoie des données.