Kontextbezogene Variablen
Kontextvariablen ähneln globalen Variablen, es sei denn, sie werden nur auf dem Bildschirm referenziert, auf dem Sie sie erstellen. Obwohl es möglich ist, den Namen des Benutzers auf eine Variable festzulegen, auf die in der gesamten App verwiesen werden soll, gibt es dennoch Vorteile, dass Kontextvariablen nicht auf anderen Bildschirmen verwendet werden können.
Mitunter liegt eine Funktionalität vor, die Sie auf mehreren Bildschirmen verwenden möchten, die durch Variablen gesteuert wird. Viele Apps verwenden z. B. Popup-Dialogfelder, um Aktionen wie das Löschen eines Datensatzes zu bestätigen. Eine häufig genutzte Möglichkeit zur Implementierung besteht darin, eine kontextbezogene Variable auf „true“ festzulegen, wenn der Benutzer die Schaltfläche „Löschen“ auswählt. Dazu legen Sie die OnSelect-Eigenschaft der Schaltfläche wie folgt fest.
UpdateContext({varShowPopUp: true})
Dann legen Sie die Eigenschaft Visible der Popupsteuerelemente auf varShowPopUp fest. Dies ist vergleichbar mit dem Beispiel für die globalen Variablen. Der Hauptunterschied liegt in der Wiederverwendbarkeit. Wenn Sie die Steuerelemente (mit STRG+C) auf einen anderen Bildschirm kopieren, verfügen Sie über zwei Instanzen von varShowPopUp. Diese beiden Instanzen verwenden denselben Namen, können aber unterschiedliche Werte aufweisen. Der Wert von varShowPopUp auf screen1 wirkt sich nicht auf den Wert von varShowPopUp auf bildschirm2 aus, da jede Kontextvariable, auch wenn sie denselben Namen haben, auf den Bildschirm festgelegt sind, auf den sie sich befinden.
Die Verwendung von Variablennamen wird in der Regel nicht empfohlen, da sie verwirrend sein kann, aber es ist großartig, wenn Sie Funktionen unabhängig auf verschiedenen Bildschirmen wiederverwenden möchten.
Wenn Sie sich nicht sicher sind, ob Sie globale oder kontextbezogene Variablen verwenden sollten, sind normalerweise globale Variablen die Standardantwort. Globale Variablen sind überall verfügbar und somit am flexibelsten.
Ein eindeutiges Verhalten der Funktion UpdateContext ist, dass Sie mehrere Variablen gleichzeitig deklarieren können. Dies ist mit der Set-Funktion nicht möglich. Setzen Sie ein Komma zwischen den Variablen, um mehrere Kontextvariablen mit einer einzigen Formel zu erstellen.
UpdateContext({varCount: 1, varActive: true, varName: User().FullName})
Note
Im vorherigen Modul haben wir erwähnt, dass die Verwendung der User()-Funktion inline Ihre App unnötig verlangsamt und aus diesem Grund eine globale Variable OnStart verwendet werden sollte. Wenn Sie eine kontextbezogene Variable zum Speichern von Benutzerinformationen verwenden, wird die Leistung gegenüber der Inlineverwendung der User()-Funktion verbessert, ist sie letztendlich weniger performativ als eine globale Variable, da Sie bei jedem Öffnen dieser Seite immer noch die Datenquelle aufrufen. Daher wird empfohlen, Benutzerinformationen in einer globalen Variablen zu speichern.
Verwenden Sie Folgendes, um dasselbe mit globalen Variablen zu erreichen.
Set(varCount, 1);Set(varActive, true);Set(varName, User().FullName)
In der nächsten Einheit erfahren Sie mehr über das Speichern von Datentabellen in einer Sammlungsvariable.