Werte aus gespeicherten Sammlung in Power Apps bearbeiten

Ausgangspunkt für diesen Blog ist folgender Umstand. In Power Apps Formularen können Texteingabefelder für beliebige Zwecke verwendet werden. In diesem Beitrag geht es darum, die in einer Sammlung gespeicherten Daten aufzurufen und editieren zu können.

In Betracht kommen verschiede Ansätze dies technisch mit Funktionen, die in Power Apps zur Verfügung stehen zum Einsatz kommen zu lassen. Ich beleuchte hierbei die sich durch den Einsatz verschiedener Vorgehensweisen ergebenden Vorteile bzw. Nachteile.

Zunächst werden Daten gespeichert, hierfür wird eine Sammlung (quasi eine Art Variable, mit dem Unterschied, dass eine Sammlung mehrere Spalten und Zeilen enthalten kann) erstellt.

Eine Sammlung erstellen mit der Funktion „Collect“ ist der erste Schritt.

clip_image002

Collect(Customers;{Titel: E_Titel.Text;Umsatz: E_Umsatz.Text})

Die Sammlung heißt „Customers“ und enthält zwei Spalten, „Titel“ und „Umsatz“.

Die Sammlung Customers ist mit einer Schaltfläche verbunden, d.h. durch Anklicken der Schaltfläche wird deren Eigenschaft „OnSelect“ angesprochen, somit nimmt die Sammlung Werte auf, die aus Texteingabefeldern stammen. In diesem Beispiel „E_Titel“ und „E_Umsatz“.

Über Menü Datei -> Sammlungen werden Sammlungen aufgerufen.

clip_image004

Der nächste Schritt ist, die Daten mit weiteren Steuerelementen zu verknüpfen.

Zur späteren Auswahl der gespeicherten Daten, wird nachfolgend das Steuerelement „Dropdown“ verwendet.

clip_image006

Das Dropdown mit der Eigenschaft „Items“ empfängt die gesammelten Daten.

clip_image008

Dadurch ist eine Selektion der gespeicherten Daten hinterher möglich, um sie entsprechend bearbeiten zu können.

Im nächsten Schritt werden die selektierten Daten über weitere Steuerelemente modifiziert bzw. überschrieben.

Dafür werden zwei Steuerelemente vom Typ Texteingabe verwendet. Sobald Daten eingegeben worden sind, über das Dropdown eine Auswahl zur Korrektur erfolgte, soll nun die Möglichkeit bestehen diese zu verändern und zu überschreiben.

Nun stelle ich drei Varianten die daten zu verändern vor.

1. Auf nachfolgenden Screenshots wird dies skizziert.

clip_image010

clip_image012

Mittels eines Klicks auf die Schaltfläche „Korrektur Neu“ wird deren Eigenschaft „OnSelect“ mittels der Funktion Patch die Korrektur ausgeführt.

clip_image014

Funktion zum Kopieren:

Patch(Customers;Defaults(Customers);{Titel:E_Korr_Titel.Text;Umsatz:E_Korr_Umsatz.Text});;Reset(ComboBox1)

Diese Vorgehensweise liefert einen neuen Datensatz in der Sammlung, indem die alten Daten zur Korrektur aufgerufen und editiert worden sind, der ursprüngliche Datensatz bleibt jedoch bestehen.

Fazit: Diese Variante liefert ein korrektes Ergebnis, indem die alten Daten aufgerufen, editiert und zu einem neuen Daten werden. Leider muss dann noch der alte Datensatz wieder entfernt werden.

2. Eine weitere Variante mit der Funktion „Patch“:

Exakt die gleiche Vorgehensweise, bis auf die Verwendung der Funktion selbst, siehe Screenshot:

clip_image015

clip_image017

clip_image019

Funktion zum Kopieren:

Patch(Customers;First(Filter(Customers;Titel=E_Titel.Text;Umsatz=E_Umsatz.Text));{Titel:E_Titel_korr.Text;Umsatz:E_Umsatz_korr.Text});;Reset(ComboBox1)

Das Resultat hierbei ist wie folgt. Der zuvor erstellte und mittels Dropdown aufgerufene Datensatz ist nun editiert und gleichzeitig überschrieben worden.

Fazit: Wenn die Funktion „Patch“ mit der Funktion Filter zum Einsatz kommt, ist das Resultat so wie ich es mir vorgestellt habe. Einziges Manko dabei: diese Art der Änderung lässt sich lediglich ein Mal vornehmen, ein zweites Mal funktioniert es nicht.

3. Die Letzte und meiner Ansicht nach Beste Vorgehensweise.

Alle Schritte zuvor gelten weiterhin. Aufruf des Dropdown-Steuerelements, um einen Datensatz aufzurufen, die Änderung mittels der dafür vorgesehen Textfelder.

Den Unterschied macht die Funktion „Update“, siehe Screenshots.

clip_image015[1]

clip_image021

clip_image023

Funktion zum Kopieren:

Update(Customers;First(Filter(Customers;Titel=ComboBox1.Selected.Titel));{Titel:E_Korr_Titel.Text;Umsatz:E_Korr_Umsatz.Text});;Reset(ComboBox1)

Diese Funktion ermöglicht ebenso eine Änderungsvornahme, sie ist aus meiner Sicht jedoch insofern die Beste Variante, als dass sich die Änderungen am Datensatz beliebig oft vornehmen lassen, es entsteht zudem kein neuer Datensatz.

Weitere interessante und weiterführende Beispiele werden in der Power Apps Schulung behandelt, weitere Informationen hierzu, bitte über diesen Link: Power Apps und Flow

Viel Spaß beim Umsetzen

Kommentare sind geschlossen