Crea o aggiorna variabili di contesto della schermata corrente.

Panoramica

Usare la funzione UpdateContext per creare una variabile di contesto, che usa un'informazione temporaneamente, ad esempio il numero di volte in cui l'utente ha selezionato un pulsante o il risultato di un'operazione di dati.

Le variabili di contesto sono limitate a una schermata, il che significa che non è possibile compilare una formula che fa riferimento a una variabile di contesto in un'altra schermata. Se è stato usato un altro strumento di programmazione, è possibile considerare una variabile di contesto come variabile locale. Se si vuole l'equivalente di una variabile globale, creare una raccolta usando la funzione Collect o ClearCollect.

Le app PowerApps sono basate su formule che eseguono calcoli automatici durante l'interazione con un'app. Le variabili di contesto non offrono questo vantaggio e possono rendere la creazione e l'uso dell'app più difficili. Prima di usare una variabile di contesto, rivedere Working with variables (Uso delle variabili).

Descrizione

Per creare o aggiornare una variabile di contesto, passare un singolo record alla funzione UpdateContext. In ogni record, specificare il nome di una colonna, che definisce o corrisponde al nome della variabile e il valore a cui si vuole impostare la variabile.

  • Se si specifica il nome di una variabile definito in precedenza, UpdateContext imposta il valore della variabile sul valore specificato.
  • Se si specifica il nome di una variabile che non esiste ancora, UpdateContext crea una variabile con tale nome e imposta il valore della variabile sul valore specificato.
  • Se è stata definita in precedenza una variabile che non è specificata in questa particolare formula di UpdateContext, il relativo valore rimane invariato.

Non è possibile rimuovere una variabile di contesto dopo averla definita.

In una formula si fa riferimento a una variabile di contesto usando il nome della colonna della variabile. Ad esempio, UpdateContext( { ShowLogo: true } ) crea una variabile di contesto denominata ShowLogo e ne imposta il valore su true. È quindi possibile usare il valore di questa variabile di contesto usando il nome ShowLogo in una formula. È possibile scrivere ShowLogo perché la formula per la proprietà Visible di un controllo immagine visualizza o nasconde tale controllo in base al valore della variabile di contesto che è true o false.

Come illustrano gli esempi più avanti in questo argomento, le variabili di contesto possono contenere diversi tipi di informazioni, quali:

  • Un valore singolo
  • Un record
  • Una raccolta
  • Un riferimento a un oggetto
  • Qualsiasi risultato da una formula

Una variabile di contesto conserva il valore fino a quando l'utente non chiude l'applicazione. Se si definisce una variabile di contesto e si imposta il valore in una determinata schermata, tali informazioni rimangono invariate anche se l'utente passa a un'altra schermata.

L'ambito di ogni variabile di contesto è limitato a una schermata. Se si vuole definire una variabile di contesto in una schermata e modificare la variabile da un'altra schermata, è necessario compilare una formula basata sulla funzione Navigate.

La funzione UpdateContext non restituisce alcun valore e può essere usata solo in una formula di comportamento.

Sintassi

UpdateContext( RecordAggiornamento )

  • RecordAggiornamento: obbligatorio. Un record che contiene il nome di almeno una colonna e un valore per la colonna. Una variabile di contesto viene creata o aggiornata per ogni colonna e valore specificati.

UpdateContext( { VariabileContesto1: Valore1 [, VariabileContesto2: Valore2 [, ... ] ] } )

  • VariabileContesto1: obbligatorio. Il nome di una variabile di contesto da creare o aggiornare.
  • Valore1: obbligatorio. Il valore da assegnare alla variabile di contesto.
  • VariabileContesto2: Valore2, ...: facoltativo. Le variabili di contesto aggiuntive da creare o aggiornare e i relativi valori.

Esempi

Formula Descrizione Risultato
UpdateContext( { Counter: 1 } ) Crea o modifica la variabile di contesto Counter, impostandone il valore su 1. Counter ha il valore 1. È possibile fare riferimento a tale variabile usando il nome Counter in una formula.
UpdateContext( { Counter: 2 } ) Imposta il valore della variabile di contesto Counter dell'esempio precedente su 2. Counter ha il valore 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Crea o modifica le variabili di contesto Name e Score, impostando i relativi valori su Lily e 10 rispettivamente. Name ha il valore Lily e Score ha il valore 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Crea o modifica la variabile di contesto Person, impostandone il valore su un record. Il record contiene due colonne, denominate Name e Address. Il valore della colonna Name è Milton e il valore della colonna Address è 1 Main St. Person ha il valore di record { Name: "Milton", Address: "1 Main St" } }.

Fare riferimento a questo record come intero con il nome Person o fare riferimento a una colonna individuale di questo record con Person.Name o Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Si usa con la funzione Patch per aggiornare la variabile di contesto Person impostando il valore della colonna Address su 2 Main St. Person ha ora il valore di record { Name: "Milton", Address: "2 Main St" } }.

Esempio dettagliato

  1. Denominare la schermata predefinita Source, aggiungere un'altra schermata e denominarla Target.

  2. Nella schermata Source aggiungere due pulsanti e impostare le relative proprietà Text in modo che una visualizzi English e l'altra Spanish.

  3. Impostare la proprietà OnSelect del pulsante English con questa espressione:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Impostare la proprietà OnSelect del pulsante Spanish con questa espressione:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. Nella schermata Target aggiungere un'etichetta e impostare la relativa proprietà Text con questa espressione:
    If(Language="English", "Hello!", "Hola!")

  6. Nella schermata Target selezionare Shapes nella scheda Insert e quindi selezionare Freccia indietro.

  7. Impostare la proprietà OnSelect della Freccia indietro con questa formula:
    Navigate(Source, ScreenTransition.Fade)

  8. Nella schermata Source premere F5 e quindi selezionare il pulsante di una delle lingue.

    Nella schermata Target l'etichetta viene visualizzata nella lingua corrispondente al pulsante selezionato.

  9. Selezionare la Freccia indietro per tornare alla schermata Source e quindi selezionare il pulsante per l'altra lingua.

    Nella schermata Target l'etichetta viene visualizzata nella lingua corrispondente al pulsante selezionato.

  10. Premere ESC per tornare all'area di lavoro predefinita.

Un altro esempio