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.
Manchmal verfügen Sie über Funktionen, die Sie auf mehreren Bildschirmen verwenden möchten, die variabel gesteuert sind. Viele Apps verwenden z. B. Popupdialogfelder, um z. B. das Löschen eines Datensatzes zu bestätigen. Eine gängige Möglichkeit zum Implementieren 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 auf Folgendes fest.
UpdateContext({varShowPopUp: true})
Anschließend legen Sie die Visible-Eigenschaft der Popupsteuerelemente auf varShowPopUp fest. Dies ähnelt dem Beispiel aus den globalen Variablen. Der hauptunterschied besteht 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 haben. 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 zweifeln, ob Sie globale oder kontextbezogene Variablen verwenden sollten, sind in der Regel globale Variablen die Standardantwort. Globale Variablen sind überall verfügbar, wodurch sie flexibel sind.
Ein einzigartiges Verhalten der UpdateContext-Funktion besteht darin, dass Sie mehrere Variablen gleichzeitig deklarieren können. Dies ist mit der Set-Funktion nicht möglich. Wenn Sie mehrere Kontextvariablen mit einer einzelnen Formel erstellen möchten, verwenden Sie ein Komma zwischen den Variablen.
UpdateContext({varCount: 1, varActive: true, varName: User().FullName})
Hinweis
Im vorherigen Modul haben wir erwähnt, dass die Verwendung der Inlinefunktion "User()" ihre App unnötig verlangsamt und daher 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.
Um dasselbe mit globalen Variablen zu tun, würden Sie Folgendes verwenden.
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.