Funktion „UpdateContext“
Gilt für: Canvas-Apps
Erstellt oder aktualisiert die Kontextvariablen des aktuellen Bildschirms.
Überblick
Verwenden Sie die UpdateContext-Funktion zum Erstellen einer Kontextvariablen, die vorübergehend eine Information enthält, wie z. B. wie oft ein Benutzer auf eine Schaltfläche geklickt hat oder das Ergebnis eines Datenvorgangs.
Kontextvariablen beziehen sich auf einem Bildschirm, was bedeutet, dass eine Formel, die auf eine Kontextvariable auf einem anderen Bildschirm verweist, nicht erstellt werden kann. Wenn Sie ein anderes Programmiertool verwendet haben, können Sie sich eine Kontextvariable wie eine lokale Variable vorstellen. Verwenden Sie die Set-Funktion, um mit globalen Variablen zu arbeiten, die in der App verfügbar sind.
Power Apps basiert auf Formeln, die automatisch neu berechnet werden, während der Benutzer mit einer App interagiert. Kontextvariablen haben nicht diesen Vorteil und können das Erstellen und Verstehen Ihrer App erschweren. Lesen Sie vor der Verwendung einer Kontextvariablen den Artikel Arbeiten mit Variablen.
Beschreibung
Übergeben Sie zum Erstellen oder Aktualisieren einer Kontextvariablen einen einzelnen Datensatz an die UpdateContext-Funktion. Geben Sie in jedem Datensatz den Namen einer Spalte an, die den Namen und den festzulegenden Wert der Variablen definiert oder diesem entspricht.
- Wenn Sie den Namen einer Variablen, die Sie zuvor festgelegt haben, angeben, legt UpdateContext den Wert der Variablen auf den Wert fest, den Sie angeben.
- Wenn Sie den Namen einer Variablen, die noch nicht vorhanden ist, angeben, erstellt UpdateContext eine Variable mit diesem Namen und legt den Wert dieser Variablen auf den Wert fest, den Sie angeben.
- Wenn Sie zuvor eine Variable definiert haben, aber diese nicht in dieser UpdateContext-Formel angeben haben, bleibt deren Wert unverändert.
Kontextvariablen werden implizit mithilfe der UpdateContext- oder der Navigate-Funktion erstellt. Eine explizite Deklaration ist nicht erforderlich. Wenn Sie sämtliche Verweise von UpdateContext und Navigate auf eine Kontextvariable entfernen, ist die betreffende Kontextvariable nicht mehr vorhanden. Legen Sie zum Leeren einer Variablen ihren Wert auf das Ergebnis der Blank-Funktion fest.
Sie können die Werte, Definitionen und Verwendungen Ihrer Variablen in der Ansicht „Variablen“ unter dem Menü „Datei“ in der Erstellungsumgebung anzeigen.
Sie verweisen anhand des Spaltennamens der Variablen auf eine Kontextvariable in einer Formel. UpdateContext( { ShowLogo: true } ) erstellt z. B. eine Kontextvariable mit dem Namen ShowLogo und legt deren Wert auf true fest. Anschließend können Sie den Wert dieser Kontextvariablen mit dem Namen ShowLogo in einer Formel verwenden. Sie können ShowLogo als Formel für die Eigenschaft Visible eines Bildsteuerelements schreiben und dieses Steuerelement anzeigen oder verbergen, abhängig davon, ob der Wert der Kontextvariable true oder false ist.
Wie in den Beispielen weiter unten in diesem Thema gezeigt, können Kontextvariablen verschiedene Arten von Informationen enthalten, u. a. folgende:
- einen einzelnen Wert
- einen Datensatz
- eine Tabelle
- einen Objektverweis
- jedes Ergebnis einer Formel
Eine Kontextvariable behält ihren Wert bei, bis die App geschlossen wird. Wenn Sie eine Kontextvariable definieren und Sie deren Wert auf einem bestimmten Bildschirm festlegen, bleibt diese Informationen erhalten, selbst wenn der Benutzer zu einem anderen Bildschirm wechselt. Sobald die App geschlossen wird, geht der Wert der Kontextvariablen verloren; er muss neu erstellt werden, wenn die App wieder geladen wird.
Jede Kontextvariable ist auf einen Bildschirm begrenzt. Wenn Sie eine Kontextvariable auf einem Bildschirm definieren und diese Variable auf einem anderen Bildschirm ändern möchten, müssen Sie eine Formel basierend auf der Navigate-Funktion erstellen. Sie können auch eine globale Variable verwenden.
UpdateContext hat keinen Rückgabewert und Sie können es nur innerhalb einer Verhaltensformel verwenden.
Syntax
Kontext aktualisieren( Datensatz aktualisieren )
- UpdateRecord – Erforderlich. Ein Datensatz, der den Namen von mindestens einer Spalte und einen Wert für diese Spalte enthält. Eine Kontextvariable wird für jede Spalte und den von Ihnen angegebenen Wert erstellt oder aktualisiert.
Kontext aktualisieren( { Kontextvariable1: Wert1 [, Kontextvariable2: Wert2 [, ... ] ] } )
- ContextVariable1 – Erforderlich. Der Name der zu erstellenden oder zu aktualisierenden Kontextvariablen.
- Value1 – Erforderlich. Der der Kontextvariablen zuzuweisende Wert.
- Kontextvariable2: Wert2, ... – Optional. Zusätzliche zu erstellende oder zu aktualisierende Kontextvariablen und deren Werte.
Beispiele
Formel | Beschreibung | Ergebnis |
---|---|---|
UpdateContext( { Zähler: 1 } ) | Erstellt oder ändert die Counter-Kontextvariable und legt deren Wert auf 1 fest. | Der Zähler hat den Wert 1. Mit dem Namen Counter können Sie in einer Formel auf diese Variable verweisen. |
UpdateContext( { Zähler: 2 } ) | Legt den Wert für die Counter-Kontextvariable aus dem vorherigen Beispiel auf 2 fest. | Der Zähler hat den Wert 2. |
UpdateContext( { Name: "Lily", Punktzahl: 10 } ) | Erstellt oder ändert die Kontextvariablen Name und Score und legt deren Werte auf Lily bzw. 10 fest. | Name hat den Wert Lily und Score hat den Wert 10. |
UpdateContext( { Person: { Name: "Milton", Adresse: "1 Main St" } } ) | Erstellt oder ändert die Kontextvariable Person und legt deren Wert auf einen Datensatz fest. Der Datensatz enthält zwei Spalten mit den Namen Name und Address. Der Wert der Name-Spalte ist Milton, und der Wert der Address-Spalte ist 1 Main St. | Person hat den Wert des Datensatzes { Name: „Milton“, Adresse: „1 Main St“ } }. Verweisen Sie mit dem Namen Person auf den kompletten Datensatz, oder verweisen Sie auf eine einzelne Spalte dieses Datensatzes mit Person.Name oder Person.Address. |
UpdateContext( { Person: Patch(Person, {Adresse: "2 Main St" } ) } ) | Arbeitet mit der Patch-Funktion zusammen, um die Person-Kontextvariable durch Festlegen des Werts von der Address-Spalte auf 2 Main St zu aktualisieren. | Die Person hat jetzt den Wert des Datensatzes { Name: „Milton“, Adresse: „2 Main St“ } }. |
Schritt-für-Schritt-Beispiel 1
Benennen Sie den Bildschirm Source, fügen Sie einen anderen Bildschirm hinzu, und nennen Sie diesen Target.
Fügen Sie auf dem Bildschirm Source zwei Schaltflächen hinzu, und legen Sie ihre Text-Eigenschaften so fest, dass eine English und die andere Spanish ist.
Legen Sie die OnSelect-Eigenschaft der Schaltfläche English auf folgenden Ausdruck fest:
Navigieren(Ziel, ScreenTransition.Fade, {Sprache:"Englisch"})Legen Sie die OnSelect-Eigenschaft der Schaltfläche Spanish auf folgenden Ausdruck fest:
Navigieren(Ziel, ScreenTransition.Fade, {Sprache:"Spanisch"})Fügen Sie auf dem Bildschirm Target eine Bezeichnung hinzu, und legen Sie deren Text-Eigenschaft auf folgenden Ausdruck fest:
Wenn (Sprache = "Englisch", "Hallo!", "Hola!")Wählen Sie auf dem Bildschirm Target auf der Registerkarte Einfügen die Option Shapes aus, und wählen Sie dann den Rückwärtspfeil aus.
Legen Sie die OnSelect-Eigenschaft des Rückwärtspfeils auf folgende Formel fest:
Navigieren (Quelle, ScreenTransition.Fade)Drücken Sie auf dem Bildschirm Source F5, und wählen Sie dann die Schaltfläche für eine der beiden Sprachen aus.
Auf dem Bildschirm Target wird eine Bezeichnung in der Sprache angezeigt, die mit der von Ihnen ausgewählten Schaltfläche übereinstimmt.
Wählen Sie den Rückwärtspfeil aus, um wieder zum Bildschirm Source zu gelangen, und wählen Sie dann die Schaltfläche für die andere Sprache aus.
Auf dem Bildschirm Target wird eine Bezeichnung in der Sprache angezeigt, die mit der von Ihnen ausgewählten Schaltfläche übereinstimmt.
Drücken Sie dann ESC, um zum Standardarbeitsbereich zurückzukehren.
Schritt-für-Schritt-Beispiel 2
- Öffnen Sie die Canvas-App, in der Sie diese Formel verwenden möchten.
- Fügen Sie über Neuer Bildschirm aus der Befehlsleiste einen neuen leeren Bildschirm hinzu.
- Fügen Sie eine Schaltfläche hinzu und legen Sie ihre OnSelect Eigenschaft auf diese Formel fest:
UpdateContext( { Name: "Lily", Punktzahl: 10 } )