Wenn Sie eine anderes Programmiertool verwenden, wie z.B. Visual Basic oder JavaScript, fragen Sie sich möglicherweise: Wo sind die Variablen? PowerApps ist etwas anders und erfordert einen anderen Ansatz. Statt auf eine Variable zurückzugreifen, fragen Sie sich einfach: Wie würde ich in Excel verfahren?

In anderen Tools haben Sie möglicherweise eine explizite Berechnung ausgeführt und das Ergebnis in einer Variablen gespeichert. Allerdings berechnen sowohl PowerApps als auch Excel automatisch Formeln neu, sobald die Eingabedaten geändert werden, sodass Sie üblicherweise keine Variablen erstellen oder aktualisieren müssen. Wenn Sie diesen Ansatz wann immer möglich verwenden, können Sie Ihre App leichter erstellen, verstehen und warten.

In einigen Fällen müssen Sie Variablen in PowerApps verwenden, wodurch das Modell von Excel um Verhaltensformeln erweitert wird. Diese Formeln werden z.B. ausgeführt, wenn ein Benutzer eine Schaltfläche auswählt. Innerhalb einer Verhaltensformel ist es oft hilfreich, eine Variable festzulegen, die in anderen Formeln verwendet werden soll.

Vermeiden Sie im allgemeinen das Verwenden von Variablen. Manchmal hat jedoch nur eine Variable die Auswirkungen, die Sie benötigen.

Excel in PowerApps übersetzt

Excel

Betrachten Sie die Funktionsweise von Excel. Eine Zelle kann einen Wert, z.B. eine Zahl oder eine Zeichenfolge, oder eine Formel enthalten, die auf den Werten der anderen Zellen basiert. Nachdem der Benutzer einen anderen Wert in eine Zelle eingibt, berechnet Excel automatisch alle Formeln, die von dem neuen Wert abhängig sind. Zum Aktivieren dieses Verhaltens müssen Sie nichts programmieren.

Excel verfügt nicht über Variablen. Der Wert einer Zelle, die eine Formel enthält, ändert sich abhängig von seiner Eingabe; es gibt allerdings keine Möglichkeit, das Ergebnis einer Formel in einer Zelle oder an einer anderen Stelle zu speichern. Wenn Sie den Wert einer Zelle ändern, ändert sich möglicherweise das gesamte Arbeitsblatt, und alle zuvor berechneten Werte gehen verloren. Ein Excel-Benutzer kann Zellen kopieren und einfügen, aber dies unterliegt der manuellen Eingabe des Benutzers und ist mit Formeln nicht möglich.

PowerApps

Apps, die Sie in PowerApps erstellen, verhalten sich ähnlich wie Excel. Statt Zellen zu aktualisieren, können Sie Steuerelemente überall auf dem Bildschirm hinzufügen und sie für den Einsatz in Formeln benennen.

Sie können z.B. das Verhalten von Excel in einer App replizieren, indem Sie ein Label-Steuerelement (Bezeichnung) mit dem Namen TextBox1, und zwei Texteingabe-Steuerelement mit den Namen TextInput1 und TextInput2 hinzufügen. Wenn Sie anschließend die Text-Eigenschaft von TextBox1 auf TextInput1 + TextInput2 festlegen, wird immer automatisch die Summe der Zahlen angezeigt, die sich in TextInput1 und TextInput2 befinden.

Beachten Sie, dass das TextBox1-Steuerelement ausgewählt ist, dessen Text-Formel in der Bearbeitungsleiste am oberen Rand des Bildschirms angezeigt wird. Hier finden Sie die Formel TextInput1 + TextInput2. Diese Formel erstellt eine Abhängigkeit zwischen diesen Steuerelementen, genauso wie Abhängigkeiten zwischen den Zellen in einer Excel-Arbeitsmappe erstellt werden. Ändern Sie den Wert von TextInput1:

Die Formel für TextBox1 wurde automatisch neu berechnet; der neue Wert wird angezeigt.

In PowerApps können Sie Formeln nicht nur verwenden, um den primären Wert eines Steuerelements zu bestimmen, sondern auch, um Eigenschaften, wie z.B. das Format, zu bestimmen. Im nächsten Beispiel zeigt eine Formel für die Color-Eigenschaft der Bezeichnung automatisch negative Werte rot an. Die If-Funktion ist Ihnen wahrscheinlich aus Excel vertraut:
If( Value(TextBox1.Text) < 0, Red, Black )

Wenn das Ergebnis der Berechnung in TextBox1.Text negativ ist, wird die Zahl rot angezeigt:

Sie können verschiedene Formeln für eine Vielfalt an Szenarios verwenden:

  • Indem Sie das GPS Ihres Geräts verwenden, kann ein Kartensteuerelement mit einer Formel, die Location.Latitude und Location.Longitude verwendet, Ihre aktuelle Standort anzeigen. Während Sie sich bewegen, verfolgt die Karte automatisch Ihren Standort.
  • Andere Benutzer können Datenquellen aktualisieren. Andere Mitglieder Ihres Teams können z.B. die Elemente in einer SharePoint-Liste aktualisieren. Wenn Sie eine Datenquelle aktualisieren, werden alle abhängigen Formeln automatisch neu berechnet, um die aktualisierten Daten widerzuspiegeln. Wenn Sie das Beispiel fortführen, können Sie beispielsweise die Items-Eigenschaft eines Katalogs auf die Formel Filter (SharePointList) festlegen, sodass automatisch die neu gefilterte Menge von Datensätze angezeigt wird.

Vorteile

Das Erstellen von Apps mithilfe von Formeln hat viele Vorteile:

  • Wenn Sie Excel kennen, kennen Sie PowerApps. Das Modell und die Formelsprache sind identisch.
  • Wenn Sie schon mal andere Programmiertools verwendet haben, können Sie sich vorstellen, wie viel Code erforderlich wäre, um diese Beispiele zu realisieren. In Visual Basic müssten Sie einen Ereignishandler für das Änderungsereignis für jedes Texteingabe-Steuerelement erstellen. Der Code, der jede dieser Berechnung ausführen soll, ist redundant und könnte möglicherweise nicht mehr synchron abgerufen werden, oder Sie müssten eine gängige Unterroutine schreiben. In PowerApps erreichen Sie das alles mit einer einzigen, einzeiligen Formel.
  • Sie wissen genau, wo Sie suchen müssen, um zu erfahren, woher der Text in TextBox1 stammt: die Formel in der Text-Eigenschaft. Es gibt keine andere Möglichkeit, den Text dieses Steuerelements zu beeinflussen. In einem herkömmlichen Programmiertool könnte jeder Ereignishandler und jede Unterroutine überall im Programm den Wert des Bezeichners ändern. Dadurch kann es schwieriger sein, einzugrenzen, wann und wo eine Variable geändert wurde.
  • Wenn der Benutzer ein Schieberegler-Steuerelement ändert und es sich dann noch mal anders überlegt, kann er den Schieberegler wieder auf den ursprünglichen Wert zurücksetzen. Und es ist, als ob nichts geändert worden wäre: Die Anwendung zeigt die gleichen Steuerelementwerte wie vorher an. Das Experimentieren und Fragen nach „Was wäre wenn“ hat keine Folgen, genauso wenig wie in Excel.

Im Allgemeinen sind Sie bessergestellt, wenn Sie durch das Verwenden einer Formel einen Effekt erzielen können. Lassen Sie das Formelmodul in PowerApps für Sie arbeiten.

Wann es sinnvoll ist, Variablen zu verwenden

Passen Sie Ihren einfachen Addierer an, sodass er sich wie eine traditionelle Rechenmaschine mit einer laufenden Summe verhält. Wenn Sie eine Add-Schaltfläche (Hinzufügen) auswählen, fügen Sie eine Zahl zur laufenden Summe hinzu. Wenn Sie eine Clear-Schaltfläche (Löschen) auswählen, setzen Sie die laufende Summe auf 0 (null) zurück.

Ihre Rechenmaschine verwendet etwas, das es in Excel so nicht gibt: eine Schaltfläche. Sie können in dieser App die laufende Summe nicht mit Formeln allein berechnen, da ihr Wert von einer Reihe von Aktionen des Benutzers abhängt. Stattdessen muss die laufende Summe aufgezeichnet und manuell aktualisiert werden. Die meisten Programmiertools speichern diese Informationen in einer Variablen.

Manchmal benötigen Sie für Ihre App eine Variable, um das zu erreichen, was Sie möchten. Doch dieser Ansatz hat auch Nachteile:

  • Sie müssen die laufende Summe manuell aktualisieren. Die automatische Berechnung erfüllt nicht Ihre Ansprüche.
  • Die laufende Summe kann nicht mehr basierend auf den Werten anderer Steuerelemente berechnet werden. Dies hängt davon ab, wie oft der Benutzer die Schaltfläche Add (Hinzufügen) ausgewählt hat und welcher Wert sich jeweils in dem Texteingabe-Steuerelement befunden hat. Hat der Benutzer 77 eingegeben und Hinzufügen zweimal ausgewählt, oder hat er jeweils 24 und 130 für jede der Hinzufügungen angegeben? Nachdem die Summe 154 beträgt, können Sie den Unterschied nicht mehr feststellen.
  • Änderungen der Gesamtsumme können aus verschiedenen Pfaden stammen. In diesem Beispiel kann sowohl die Add- als auch die Clear-Schaltflächen die Gesamtsumme aktualisieren. Wenn die App sich nicht wie erwartet verhält, ist welche Schaltfläche für das Problem verantwortlich?

Erstellen Sie eine Kontextvariable

Sie benötigen eine Variable, die die laufende Summe enthält, um unseren hinzufügenden Computer zu erstellen. Die einfachste Variablen in PowerApps sind Kontextvariablen.

Funktionsweise von Kontextvariablen:

  • Erstellen und Festlegen der Kontextvariablen mithilfe der UpdateContext-Funktion. Wenn eine Kontextvariable noch nicht vorhanden ist, wenn sie zum ersten Mal aktualisiert wird, wird sie mit dem Standardwert blank erstellt.
  • Sie erstellen und aktualisieren Kontextvariablen mit Datensätzen. In anderen Programmiertools verwenden Sie häufig „=“ für Zuweisungen, wie z.B. in „x = 1“. Verwenden Sie stattdessen für Kontextvariablen { x: 1 }. Wenn Sie eine Kontextvariable verwenden, verwenden Sie ihren Namen direkt.
  • Sie können eine Kontextvariable auch mithilfe der Navigate-Funktion festlegen, wenn ein Bildschirm angezeigt wird. Wenn Sie sich einen Bildschirm als eine Art Prozedur oder Unterroutine vorstellen, ist dies vergleichbar mit der Parameterübergabe in anderen Programmiersprachentools.
  • Mit Ausnahme von Navigate sind Kontextvariablen auf den Kontext eines einzelnen Bildschirms beschränkt, wo sie ihren Namen erhalten. Außerhalb dieses Kontexts können Sie sie weder verwenden noch festlegen.
  • Kontextvariablen können jeden Wert enthalten, z.B. Zeichenfolgen, Zahlen, Datensätze und Tabellen.
  • Wenn der Benutzer eine App schließt, gehen alle seine Kontextvariablen verloren.

Erstellen Sie Ihren hinzufügenden Computer mithilfe einer Kontextvariablen neu:

  1. Fügen Sie ein Texteingabe-Steuerelement mit dem Namen TextInput1 hinzu, und zwei Schaltflächen mit dem Namen Button1 und Button2.

  2. Legen Sie die Text-Eigenschaft von Button1 auf "Add" fest, und legen Sie die Text-Eigenschaft von Button2 auf "Clear" fest.

  3. Legen Sie die OnSelect-Eigenschaft einer Add-Schaltfläche auf folgende Formel fest, um die laufende Summe zu aktualisieren, wenn ein Benutzer die Schaltfläche auswählt:
    UpdateContext( { RunningTotal: RunningTotal + Text1 } )

    Wenn ein Benutzer erstmals die Add-Schaltfläche auswählt, und UpdateContext aufgerufen wird, wird RunningTotal mit einem Standardwert von blank erstellt. Beim Hinzufügen wird es als eine 0 (null) behandelt.

  4. Legen Sie die OnSelect-Eigenschaft der Clear-Schaltfläche auf folgende Formel fest, um die laufende Summe auf 0 festzulegen:
    UpdateContext( { RunningTotal: 0 } )

    Hier wird UpdateContext erneut mit der Formel UpdateContext( { RunningTotal: 0 } ) verwendet.

  5. Fügen Sie ein Label-Steuerelement (Bezeichnung) hinzu, und legen Sie dessen Text-Eigenschaft auf RunningTotal fest.

    Diese Formel wird automatisch neu berechnet und zeigt dem Benutzer den Wert von RunningTotal an, während sie sich auf Grundlage der vom Benutzer ausgewählten Schaltflächen ändert.

  6. Sehen sie sich eine Vorschau der App an, und Sie sehen die Rechenmaschine, wie sie oben beschrieben wurde.

Sammlung erstellen

Verwenden Sie eine Sammlung für eine globale Variable, um eine Variable von jedem beliebigen Bildschirm zu übergeben (nicht nur von dem Bildschirm, auf dem sie erstellt wurde).

Funktionsweise von Sammlungen:

  • Erstellen Sie Sammlungen mithilfe der ClearCollect-Funktion, oder legen Sie diese fest. Sie können stattdessen die Collect-Funktion verwenden; jedoch erfordert diese eine andere Variable statt die alte lediglich zu ersetzen.
  • Eine Sammlung ist eine Datenquelle und somit eine Tabelle. Verwenden Sie die First-Funktion, um auf einen einzelnen Wert in einer Sammlung zuzugreifen, und extrahieren Sie ein Feld aus dem resultierenden Datensatz. Wenn Sie einen einzelnen Wert mit ClearCollect verwendet haben, ist dies das Value-Feld, wie in diesem Beispiel:
    First( VariableName ).Value
  • Jede Formel kann auf eine Sammlung von jedem Bildschirm in der App zugreifen.
  • Wenn ein Benutzer eine App schließt, werden alle seine Sammlungen geleert.

Erstellen Sie Ihre Rechenmaschine mithilfe einer Sammlung neu:

  1. Fügen Sie ein Texteingabe-Steuerelement mit dem Namen TextInput1 hinzu, und zwei Schaltflächen mit dem Namen Button1 und Button2.

  2. Legen Sie die Text-Eigenschaft von Button1 auf "Add" fest, und legen Sie die Text-Eigenschaft von Button2 auf "Clear" fest.

  3. Legen Sie die OnSelect-Eigenschaft einer Add-Schaltfläche auf folgende Formel fest, um die laufende Summe zu aktualisieren, wenn ein Benutzer die Schaltfläche auswählt:
    ClearCollect( RunningTotal, First( RunningTotal ).Value + TextInput1 )

    Mithilfe von ClearCollect mit einem einzelnen Wert wird in der Sammlung ein Datensatz mit einem einzelnen Value-Feld erstellt. Wenn der Benutzer erstmals die Schaltfläche Add auswählt und ClearCollect aufgerufen wird, ist RunningTotal empty. Beim Hinzufügen gibt dieFirst-Funktion blank zurück und wird als 0 (null) behandelt.

  4. Legen Sie die OnSelect-Eigenschaft der Clear-Schaltfläche auf folgende Formel fest, um die laufende Summe auf 0 (null) festzulegen:
    ClearCollect( RunningTotal, 0 )

    ClearCollect wird erneut mit der Formel ClearCollect (RunningTotal, 0) verwendet.

  5. Fügen Sie eine Bezeichnung hinzu, um die laufende Summe anzuzeigen, und legen Sie ihre Text-Eigenschaft auf folgende Formel fest:
    First(RunningTotal).Value

    Diese Formel extrahiert das Value-Feld des ersten Datensatzes der Sammlung RunningTotal. Die Bezeichnung zeigt automatisch den Wert von RunningTotal an, während er sich auf Grundlage der vom Benutzer ausgewählten Schaltflächen ändert.

  6. Um die Rechenmaschine auszuführen, drücken Sie F5, um die Vorschau zu öffnen, geben Sie im Texteingabe-Steuerelement Zahlen ein, und wählen Sie Schaltflächen aus.

  7. Drücken Sie die ESC-TASTE, um zum Standardarbeitsbereich zurückzukehren.

  8. Wählen Sie im Dateimenü Collections (Sammlungen) aus, um die Werte in Ihrer Sammlung anzuzeigen.