Datensätze aus Datenquellen und Sammlungen löschen

Abgeschlossen

In dieser Lerneinheit behandeln wir das Konzept des Löschens eines Datensatzes aus einer tabellarischen Datenquelle oder Sammlung. Anders als bei den Prozessen zum Erstellen und Bearbeiten von Datensätzen, für die es mehrere Steuerelemente und Funktionen gibt, können für das Löschen von Datensätzen einige Optionen verwendet werden, zu denen Remove, RemoveIf und Clear gehören. Am häufigsten fügen wir diese Funktionen der OnSelect-Eigenschaft einer Schaltfläche oder eines Symbolsteuerelements hinzu, um einen Datensatz zu löschen.

Datensatz löschen

Verwenden Sie die Funktion Remove, um Datensätze aus Ihrer Datenquelle zu löschen. Verwenden Sie die Funktion Remove, um die Datenquelle und den Datensatz anzugeben, der gelöscht werden soll. Normalerweise wird dieser Datensatz mithilfe der Funktion LookUp angegeben, die den Datensatz aus der Datenquelle abruft. Wenn Sie einen Katalog verwenden und den Datensatz löschen möchten, können Sie stattdessen auch den Operator ThisItem verwenden, um auf den Datensatz zu verweisen.

Sie können z. B. die folgende Formel verwenden, um einen Datensatz zu löschen.

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

Damit wird der Datensatz gelöscht, bei dem die ID dem Wert „1“ aus der Datenquelle CustomerOrders entspricht.

Fehlende Bestätigungsaufforderung bei der Funktion „Remove“

Wenn die Funktion „Remove“ verwendet wird, wird keine Bestätigungsaufforderung angezeigt, bevor der angegebene Datensatz gelöscht wird. Wenn der Benutzer bestätigen soll, dass er den Datensatz tatsächlich löschen möchte, müssen Sie eine Bestätigungsfunktion erstellen, wie ein Popup-Dialogfeld mit Schaltflächen.

Auf einer Bedingung basierend löschen

Wenn Sie mehr als einen Datensatz aus der Datenquelle löschen möchten, können Sie die Funktion RemoveIf verwenden. Dabei können Sie eine Datenquelle, aus der der Datensatz gelöscht werden soll, sowie eine Bedingung für die Auswahl der zu löschenden Datensätze angeben. Es handelt sich dabei um dieselbe Logik, die auch für die Funktion „Filter“ verwendet wird.

Sie können beispielsweise die folgende Formel verwenden, um alle Datensätze mit dem Status „Abgelaufen“ aus der Datenquelle CustomerOrders zu löschen.

RemoveIf(CustomerOrders, Status = "Expired")

Alle Datensätze löschen

Außerdem gibt es die Möglichkeit, alle Datensätze einer Datenquelle zu löschen. Dieses Szenario tritt häufig bei Sammlungen auf. Sie können dabei die Funktion Clear verwenden. Wenn Sie alle Datensätze einer Datenquelle löschen möchten, können Sie die Funktion RemoveIf verwenden.

Löschen aller Datensätze einer Sammlung

Mithilfe der Funktion Clear werden alle Datensätze einer Sammlung gelöscht. Die Spalten der Sammlung bleiben dabei aber erhalten. Sie übergeben nur den Sammlungsnamen an die Funktion.

Sie können z. B. die folgende Formel verwenden, um alle Datensätze einer Datenquelle aus einer Sammlung mit dem Namen collectSelectedItems zu löschen.

Clear(collectSelectedItems)

Diese Formel löscht alle Datensätze aus der Sammlung „collectSelectedItems“, ohne die Spalten der Sammlung zu ändern.

Diese Art von Formel wird in der Regel verwendet, wenn eine Sammlung zwar geleert, aber nicht neu definiert werden soll (wie bei der Schaltfläche „Zurücksetzen“ oder bei der Auswahl einer neuen Reihenfolge). Wenn Sie mit Sammlungen arbeiten, steht Ihnen auch die Funktion ClearCollect zur Verfügung.

Mithilfe der Funktion ClearCollect werden erst alle Datensätze aus einer Sammlung gelöscht, und anschließend werden andere Datensätze zu derselben Sammlung hinzugefügt. In der Funktion „ClearCollect“ werden also die beiden Funktionen Clear und Collect zusammengefasst.

Alle drei Funktionen haben aber eine Daseinsberechtigung. Wenn Sie sich entscheiden müssen, ob Sie „Clear“ und „Collect“ oder nur „ClearCollect“ verwenden wollen, spielt z. B. der Zeitpunkt des Leerens der Sammlung im Vergleich zu dem Zeitpunkt eine Rolle, zu dem wieder Datensätze zu dieser hinzugefügt werden sollen. Dies wird nachfolgend anhand von zwei Beispielen erläutert:

  • Alles gleichzeitig – Wenn Sie beispielsweise die Elemente in einer Sammlung für ein Dropdownmenü neu laden möchten, sobald ein Bildschirm angezeigt wird, sollten Sie ClearCollect verwenden. Eine einzelne ClearCollect-Funktion in Ihrer Formel entfernt die alten Datensätze und fügt die neuen Datensätze sofort hinzu.

  • Mehrere Schritte – Wenn Sie Sammlungen verwenden, um Benutzereingaben zu speichern (z. B. bei einem Einkaufskorb), können Sie die Funktionen Clear und Collect verwenden. Dies bietet sich an, weil Benutzer möglicherweise die Inhalte eines Einkaufskorbs löschen möchten, ohne einen neuen Datensatz hinzuzufügen.

Alle Datensätze aus einer Datenquelle löschen

Sie können die Funktion RemoveIf verwenden, um alle Datensätze aus einer Datenquelle zu löschen. Dieses Szenario tritt allerdings selten auf. Es wird wieder nur eine Bestätigungsaufforderung angezeigt, bevor die Formel angewendet wird, wenn Sie eine solche Funktion erstellen. Zudem gibt es in Power Apps weder die Möglichkeit, einen Vorgang rückgängig zu machen, noch gibt es einen Papierkorb. Wenn Sie Ihre Daten wiederherstellen möchten, müssen Sie Ihre Datenquelle aufrufen und außerhalb von Power Apps einen für diese verfügbaren Wiederherstellungsprozess durchführen. Lassen Sie daher Vorsicht walten.

Sie können z. B. die folgende Formel verwenden, um alle Datensätze einer Datenquelle zu löschen.

RemoveIf(CustomerOrders, true)

Dadurch werden alle Datensätze aus der Datenquelle CustomerOrders gelöscht, ohne die Spalten der Datenquelle zu ändern.

Dies ist möglich, weil die Funktion RemoveIf jeden Datensatz in der Datenquelle überprüft, um herauszufinden, ob für die Gleichung das Ergebnis true ausgegeben wird. Dies ist hier der Fall. Daher werden alle Datensätze gelöscht.

Hinweis

Auch für die Funktion Filter kann das Ergebnis der Gleichung auf true festgelegt werden. Diese Einstellung kann sehr nützlich sein, wenn Sie Probleme mit Formeln behandeln und sich nicht sicher sind, ob die Funktion „Filter“ Daten zurückgibt.