top of page
marcel684

Favoriten in einer PowerApp anlegen [Low Code]

In diesem Beitrag zeigen wir euch, wie ihr easy in einer PowerApp Favoriten bzw. einen Favoriten-Ordner anlegen könnt.


In unserem Fallbeispiel haben wir es unserem Kunden ermöglicht, dass die Nutzer einer PowerApps-Arbeitszeiterfassung die Projekte als Favoriten hinterlegen können, um schneller auf häufig gewählte Projekte zugreifen zu können. Ziel ist es, dass diese im Cache des Endgeräts gespeichert bleiben, um zum einen datenbankseitig zu sparen und zum anderen die Favoriten personalisiert auszugeben.


Zuerst schnappt ihr euch die Liste/Collection, für welche das Anlegen von Favoriten ermöglicht werden soll. In unserem Fall werden die Projekte über die Collection 'colProjekte' ausgegeben. Simultan zu dieser wird die Collection 'colProjekteFavoriten' erstellt, um diese später als Cache zu speichern. Des Weiteren wird ein Icon benötigt, über welches die Projekte hinzugefügt werden. Wir haben auf die Combobox, welche die Projekte ausspielt, einen Stern gepackt, welcher Gelb wird, sobald das Projekt als Favorit markiert wurde. Der Designexperte wird das sicherlich auch noch schöner gestalten können.

Mit Drücken des Sterns wird das Projekt nun 'colProjekteFavoriten' hinzugefügt - oder wieder entfernt, sofern es kein Favorit mehr sein soll:

If(
   cbxProjekte.Selected.ID in colProjekteFavoriten;
   
   //Wenn aktuelle ID in colProjekteFavoriten, Projekt entfernen  
   RemoveIf(colProjekteFavoriten; Value = cbxProjekte.Selected.ID);; 
   Patch(colProjekteFinal; cbxProjekte.Selected; {Favorit: false});
   
   //Ansonsten hinzufügen    
   Collect(colProjekteFavoriten; cbxProjekte.Selected.ID);; 
   Patch(colProjekteFinal; cbxProjekte.Selected; {Favorit: true})
   
);;

Hierfür wird zum einen 'colProjekteFavoriten' angesprochen als auch 'colProjekteFinal', welche unsere 'colProjekte' darstellt erweitert um die benötigten Spalten für die Markierung als Favorit. Hierfür werfen wir einmal einen Blick darauf, wie diese zustandekommt:

//Finale Sammlung für Projekte, mit Favoriten, erstellen
ClearCollect(
   colProjekteFinal;
   SortByColumns(
      AddColumns(
      colProjekte As OuterTable;
      "Favorit";
      //In neue Spalte Boolean schreiben, ob als Favorit hinterlegt
      OuterTable.ID in colProjekteFavoriten;
      "Projekttitel_String";
      //Wenn Favorit auf true gesetzt wird, den String für den Titel mit einem Stern erweitern
      OuterTable.Title & If(
         OuterTable.ID in colProjekteFavoriten; 
         " ⭐"
      )
   );
   //Sortierung zunächst nach Favorit abwärts (damit true gesetzte Projekte als erstes erscheinen) und danach nach Projektnummer aufwärts
   "Favorit";
   Descending;
   "Projektnummer";
   Ascending
);;

Die Collection wird zum einen auf dem OnStart der App geladen, als auch nach dem Ausführen des Codes auf dem Stern, damit die Änderung für den Nutzbar direkt sichtbar wird. Die 'colProjekteFinal' wird letztendlich in der Combobox ausgegeben, mit "Projekttitel_String" als DisplayField sowie "Title" als SearchField. Für den Nutzer sieht es nun, mit den Favoriten nach oben sortiert, folgendermaßen aus:

Zuletzt werden die Daten nach Drücken des Sterns, also am Ende des Codes auf dem OnSelect, im Cache gespeichert:

//Daten im Cache speichern
SaveData(colProjekteFavoriten; "ProjekteFavoritenCache")

Mit der LoadData-Funktion wird diese Collection entsprechend auf dem OnStart wieder aus dem Cache geladen. Dies muss vor dem Collecten der 'colProjekteFavoriten' geschiehen, damit die neu angefügten Spalten korrekt eingelesen werden können:

//Lokale Favoriten sammeln -> Zur Sicherheit leeren, anschließend lokalen Cache laden
 Clear(colProjekteFavoriten);;
 LoadData(colProjekteFavoriten; "ProjekteFavoritenCache"; true);;

Jetzt habt ihr mit wenig Aufwand euren Nutzern ermöglicht, aus einer Liste Favoriten zu sammeln, um grade bei größeren Listen Sucheingaben oder das Scrollen durch die Liste zu verringern.


Kompakt zusammengefasst:

OnStart der App:

Cache 'colProjekteFavoriten' laden

'colProjekteFinal' erstellen

OnSelect vom Stern:

Hinzufügen & Entfernen von Favoriten

'colProjekteFinal' erstellen

Cache 'colProjekteFavoriten' speichern

Items von der Combobox:

'colProjekteFinal' (nach Bedarf mit Filter und/oder weiterer Sortierung)


Wir freuen uns, wenn wir euch damit ein wenig helfen konnten. Sollten Fragen hierzu entstehen, nutzt gerne das Kontaktformular und gebt Bescheid!


Vielen Dank fürs Lesen!



185 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen

Comentarios


bottom of page