Daten durchsuchen in PowerApps und Delegierung

 

In den vorherigen Artikeln dieser Serie haben wir eine PowerApp mit Daten verbunden und diese sowohl in einer Datentabelle als auch in einem Katalog (Gallery) bearbeitet. Dieser Beitrag wird zeigen, wie wir innerhalb dieser Steuerelemente suchen können.

Die bisherigen Artikel der Serie sind:

  1. Arbeiten mit PowerApps – Grundlagen
  2. Grundlagen von PowerApps Komponenten und PowerApps Studio
  3. Daten anlegen, ändern und löschen mit PowerApps
  4. Arbeiten mit Katalogen in PowerApps

Die im Folgenden gezeigten Lösungen gehen sowohl mit einer Datentabelle als auch mit einem Katalog. Da ich aber primär mit dem Katalog arbeite, werde ich sämtliche Beschreibungen und Screenshots mit einem Katalog machen.

Es gibt in PowerApp zwei Möglichkeiten Daten zu finden; dies sind filtern und suchen. Dabei findet die Filter- Formel alle Datensätze in einer Tabelle, die eine vorher definierte Formel erfüllen. Die Suche findet Datensätze in einer Tabelle, die eine Zeichenfolge in einer ihrer Spalten enthalten. Dabei können Sie auch über mehrere Spalten suchen, in der Filter Formel verbinden Sie diese mit ||, in der Search Formel mit ;. Wenn an eine Tabelle eine Suche oder Filter ohne Inhalt übergeben wird, so findet keine Aktion statt, es werden alle Einträge angezeigt.

Arbeiten mit der Suche

Die Such- oder Filterformel wird dabei an die Items Eigenschaft der Datentabelle oder des Kataloges gebunden. Markiert man das Steuerelement, ist diese Eigenschaft auch die Standardeigenschaft.

2019-10-15_11h26_15

Als Beispiel soll eine Suche dienen. Prinzipiell funktioniert es mit Filtern genauso. Um die Suche interaktiv zu nutzen, fügen wir dem Screen über dem Katalog ein Textfeld hinzu. Umbenennen Sie das Feld in txtGallSuche. Fügen Sie in die Items Eigenschaft des Katalogs die folgende Formel ein. Dabei ist ‚Beschaffung‘ die Datenquelle, txtGallSuche.Text der Inhalt des Suchfelds und „Title“;“Beschreibung“ -immer in Anführungsstrichen- die Spalten in denen gesucht wird.

Search(‚Beschaffung‘;txtGallSuche.Text;“Title“;“Beschreibung“)

Diese Formel filtert den Katalog also nach dem Inhalt des Feldes txtGallSuche. Dabei werden die Spalten Titel und Beschreibung durchsucht. Die Suche sucht dabei automatisch in allen Wortbestanteilen in Echtzeit.

2019-10-15_11h33_25

Was ist Delegierung in PowerApps?

Wenn die Eigenschaft Items der Gallery mit einer Suche manipuliert wird, erscheint ein kleines Achtungszeichen an der Gallery. Dies ist eine Warnung zur Delegierung. Dies bedeutet, dass die Suche in der Gallery nicht auf dem Endgerät stattfindet, sondern tatsächlich in der Datenquelle. Dies ist sinnvoll, denn gerade mobile Geräte sind nicht dafür gedacht mit großen Datenmengen zu arbeiten. So werden auch immer nur die ersten 500 Datensätze einer Datenquelle geholt, wobei dies auf 2.000 Einträge erhöht werden kann. Mehr geht aber dann nicht. Unter Umständen bekommen sie damit also falsche Ergebnisse. Die Delegierung verringert damit dieses Problem.

Welche Datenquellen bzw. Konnektoren und welche Formeln Delegierung nutzen, können Sie hier nachlesen. Der Artikel gibt auch eine gute Übersicht über die Problematik an sich: https://docs.microsoft.com/de-de/powerapps/maker/canvas-apps/delegation-overview