Funzione UpdateContext

Si applica a: App canvas

Crea o aggiorna variabili di contesto della schermata corrente.

Panoramica

Usa 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 hai usato un altro strumento di programmazione, puoi considerare una variabile di contesto come variabile locale. Usa la funzione Set per utilizzare le variabili globali disponibili in tutta l'app.

Le app Power Apps 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, rivedi Utilizzo delle variabili.

Descrizione

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

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

Le variabili di contesto vengono create in modo implicito usando la funzione UpdateContext o Navigate. Non è necessaria alcuna dichiarazione esplicita. Se rimuovi tutti i riferimenti UpdateContext e Navigate a una variabile di contesto, questa cesserà di esistere. Per cancellare una variabile, impostane il valore sul risultato della funzione Blank.

I valori, le definizioni e gli usi delle variabili sono disponibili nella visualizzazione Variabili del menu File nell'ambiente di creazione.

In una formula fai 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. Puoi quindi usare il valore di questa variabile di contesto usando il nome ShowLogo in una formula. Puoi scrivere ShowLogo perché la formula per la proprietà Visible di un controllo image 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 tabella
  • un riferimento a un oggetto
  • qualsiasi risultato da una formula

Una variabile di contesto conserva il suo valore fino a quando l'app non viene chiusa. Se definisci una variabile di contesto e imposti il valore in una determinata schermata, tali informazioni rimangono invariate anche se l'utente passa a un'altra schermata. Una volta chiusa, il valore della variabile di contesto verrà perso e dovrà essere creato di nuovo quando l'app verrà ricaricata.

L'ambito di ogni variabile di contesto è limitato a una schermata. Se vuoi definire una variabile di contesto in una schermata e modificare la variabile da un'altra schermata, devi compilare una formula basata sulla funzione Navigate. In alternativa, usa una variabile globale.

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

Sintassi

UpdateContext( RecordAggiornamento )

  • UpdateRecord: 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( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1: obbligatorio. Il nome di una variabile di contesto da creare o aggiornare.
  • Value1: obbligatorio. Il valore da assegnare alla variabile di contesto.
  • ContextVariable2: Value2, ...: 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. Puoi 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" } }.

Fai riferimento a questo record come intero con il nome Person o fai 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

  1. Denomina la schermata predefinita Source, aggiungi un'altra schermata e denominala Target.

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

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

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

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

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

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

  8. Nella schermata Source premi F5 e quindi seleziona il pulsante di una delle lingue.

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

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

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

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

Esempio dettagliato 2

  1. Apri l'app canvas in cui desideri utilizzare questa formula.
  2. Aggiungi una nuova schermata vuota selezionando Nuova schermata dalla barra dei comandi.
  3. Aggiungi un pulsante e impostane la proprietà OnSelect su questa formula:
    UpdateContext( { Name: "Lily", Score: 10 } )