Funzione UpdateContext in PowerAppsUpdateContext function in PowerApps

Crea o aggiorna variabili di contesto della schermata corrente.Creates or updates context variables of the current screen.

PanoramicaOverview

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.Use the UpdateContext function to create a context variable, which temporarily holds a piece of information, such as the number of times the user has selected a button or the result of a data operation.

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.Context variables are scoped to a screen, which means that you can't build a formula that refers to a context variable on another screen. Se è stato usato un altro strumento di programmazione, è possibile considerare una variabile di contesto come variabile locale.If you've used another programming tool, you can think of a context variable as similar to a local variable. Usare la funzione Set per utilizzare le variabili globali disponibili in tutta l'app.Use the Set function to work with global variables that are available throughout your app.

Le app PowerApps sono basate su formule che eseguono calcoli automatici durante l'interazione con un'app.PowerApps are based on formulas that automatically recalculate as the user interacts with an app. Le variabili di contesto non offrono questo vantaggio e possono rendere la creazione e l'uso dell'app più difficili.Context variables don't offer this benefit and can make your app harder to create and understand. Prima di usare una variabile di contesto, rivedere Working with variables (Uso delle variabili).Before you use a context variable, review working with variables.

DescrizioneDescription

Per creare o aggiornare una variabile di contesto, passare un singolo record alla funzione UpdateContext.To create or update a context variable, pass a single record to the UpdateContext function. 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.In each record, specify the name of a column, which defines or matches the name of the variable, and the value to which you want to set that variable.

  • Se si specifica il nome di una variabile definito in precedenza, UpdateContext imposta il valore della variabile sul valore specificato.If you specify the name of a variable that you've previously defined, UpdateContext sets the value of the variable to the value that you specify.
  • 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.If you specify the name of a variable that doesn't yet exist, UpdateContext creates a variable with that name and sets the value of that variable to the value that you specify.
  • Se è stata definita in precedenza una variabile che non è specificata in questa particolare formula di UpdateContext, il relativo valore rimane invariato.If you've previously defined a variable but don't specify it in this particular UpdateContext formula, its value remains the same.

Le variabili di contesto vengono create in modo implicito usando la funzione UpdateContext o Navigate.Context variables are implicitly created by using the UpdateContext or Navigate function. Non è necessaria alcuna dichiarazione esplicita.There is no explicit declaration required. Se si rimuovono tutti i riferimenti UpdateContext e Navigate a una variabile di contesto, questa cesserà di esistere.If you remove all the UpdateContext and Navigate references to a context variable, then that context variable will cease to exist. Per cancellare una variabile, impostarne il valore sul risultato della funzione Blank.To clear a variable set its value to the result of the Blank function.

I valori, le definizioni e gli usi delle variabili sono disponibili nella visualizzazione Variabili del menu File nell'ambiente di creazione.You can see your variables' values, definitions, and uses with the Variables view under the File menu in the authoring environment.

In una formula si fa riferimento a una variabile di contesto usando il nome della colonna della variabile.You reference a context variable in a formula by using the variable's column name. Ad esempio, UpdateContext( { ShowLogo: true } ) crea una variabile di contesto denominata ShowLogo e ne imposta il valore su true.For example, UpdateContext( { ShowLogo: true } ) creates a context variable named ShowLogo and sets its value to true. È quindi possibile usare il valore di questa variabile di contesto usando il nome ShowLogo in una formula.You can then use the value of this context variable by using the name ShowLogo in a 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.You can write ShowLogo as the formula for the Visible property of an image control and show or hide that control based on whether the value of the context variable is true or false.

Come illustrano gli esempi più avanti in questo argomento, le variabili di contesto possono contenere diversi tipi di informazioni, quali:As the examples later in this topic show, context variables can hold several kinds of information, including these:

  • Un valore singoloa single value
  • Un recorda record
  • Una tabellaa table
  • Un riferimento a un oggettoan object reference
  • Qualsiasi risultato da una formulaany result from a formula

Una variabile di contesto conserva il suo valore fino a quando l'app non viene chiusa.A context variable holds its value until the app is closed. 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.If you define a context variable and set its value on a particular screen, that information remains intact even if the user switches to a different screen. Una volta chiusa, il valore della variabile di contesto verrà perso e dovrà essere creato di nuovo quando l'app verrà ricaricata.Once the app is closed, the context variable's value will be lost and must be recreated when the app is loaded again.

L'ambito di ogni variabile di contesto è limitato a una schermata.Every context variable is scoped to a screen. 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.If you want to define a context variable on one screen and modify that variable from another screen, you must build a formula that's based on the Navigate function. In alternativa, usare una variabile globale.Or use a global variable.

La funzione UpdateContext non restituisce alcun valore e può essere usata solo in una formula di comportamento.UpdateContext has no return value, and you can use it only within a behavior formula.

SintassiSyntax

UpdateContext( RecordAggiornamento )UpdateContext( UpdateRecord )

  • RecordAggiornamento: obbligatorio.UpdateRecord – Required. Un record che contiene il nome di almeno una colonna e un valore per la colonna.A record that contains the name of at least one column and a value for that column. Una variabile di contesto viene creata o aggiornata per ogni colonna e valore specificati.A context variable is created or updated for each column and value that you specify.

UpdateContext( { VariabileContesto1: Valore1 [, VariabileContesto2: Valore2 [, ... ] ] } )UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • VariabileContesto1: obbligatorio.ContextVariable1 - Required. Il nome di una variabile di contesto da creare o aggiornare.The name of a context variable to create or update.
  • Valore1: obbligatorio.Value1 - Required. Il valore da assegnare alla variabile di contesto.The value to assign to the context variable.
  • VariabileContesto2: Valore2, ...: facoltativo.ContextVariable2: Value2, ... - Optional. Le variabili di contesto aggiuntive da creare o aggiornare e i relativi valori.Additional context variables to create or update and their values.

EsempiExamples

FormulaFormula DescrizioneDescription RisultatoResult
UpdateContext( { Counter: 1 } )UpdateContext( { Counter: 1 } ) Crea o modifica la variabile di contesto Counter, impostandone il valore su 1.Creates or modifies the context variable Counter, setting its value to 1. Counter ha il valore 1.Counter has the value 1. È possibile fare riferimento a tale variabile usando il nome Counter in una formula.You can reference that variable by using the name Counter in a formula.
UpdateContext( { Counter: 2 } )UpdateContext( { Counter: 2 } ) Imposta il valore della variabile di contesto Counter dell'esempio precedente su 2.Sets the value of the Counter context variable from the previous example to 2. Counter ha il valore 2.Counter has the value 2.
UpdateContext( { Name: "Lily", Score: 10 } )UpdateContext( { Name: "Lily", Score: 10 } ) Crea o modifica le variabili di contesto Name e Score, impostando i relativi valori su Lily e 10 rispettivamente.Creates or modifies the context variables Name and Score, setting their values to Lily and 10 respectively. Name ha il valore Lily e Score ha il valore 10.Name has the value Lily, and Score has the value 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } )UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Crea o modifica la variabile di contesto Person, impostandone il valore su un record.Creates or modifies the context variable Person, setting its value to a record. Il record contiene due colonne, denominate Name e Address.The record contains two columns, named Name and Address. Il valore della colonna Name è Milton e il valore della colonna Address è 1 Main St.The value of the Name column is Milton, and the value of the Address column is 1 Main St. Person ha il valore di record { Name: "Milton", Address: "1 Main St" } }.Person has the value of 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.Reference this record as a whole with the name Person, or reference an individual column of this record with Person.Name or Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } )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.Works with the Patch function to update the Person context variable by setting the value of the Address column to 2 Main St. Person ha ora il valore di record { Name: "Milton", Address: "2 Main St" } }.Person now has the value of record { Name: "Milton", Address: "2 Main St" } }.

Esempio dettagliatoStep-by-step example

  1. Denominare la schermata predefinita Source, aggiungere un'altra schermata e denominarla Target.Name the default screen Source, add another screen, and name it Target.
  2. Nella schermata Source aggiungere due pulsanti e impostare le relative proprietà Text in modo che una visualizzi English e l'altra Spanish.On the Source screen, add two buttons, and set their Text properties so that one says English and the other says Spanish.
  3. Impostare la proprietà OnSelect del pulsante English con questa espressione:Set the OnSelect property of the English button to this expression:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})Navigate(Target, ScreenTransition.Fade, {Language:"English"})
  4. Impostare la proprietà OnSelect del pulsante Spanish con questa espressione:Set the OnSelect property of the Spanish button to this expression:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})
  5. Nella schermata Target aggiungere un'etichetta e impostare la relativa proprietà Text con questa espressione:On the Target screen, add a label, and set its Text property to this expression:
    If(Language="English", "Hello!", "Hola!")If(Language="English", "Hello!", "Hola!")
  6. Nella schermata Target selezionare Shapes nella scheda Insert e quindi selezionare Freccia indietro.On the Target screen, select Shapes on the Insert tab, and then select the Back arrow.
  7. Impostare la proprietà OnSelect della Freccia indietro con questa formula:Set the Back arrow's OnSelect property to this formula:
    Navigate(Source, ScreenTransition.Fade)Navigate(Source, ScreenTransition.Fade)
  8. Nella schermata Source premere F5 e quindi selezionare il pulsante di una delle lingue.From the Source screen, press F5, and then select the button for either language.

    Nella schermata Target l'etichetta viene visualizzata nella lingua corrispondente al pulsante selezionato.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  9. Selezionare la Freccia indietro per tornare alla schermata Source e quindi selezionare il pulsante per l'altra lingua.Select the Back arrow to return to the Source screen, and then select the button for the other language.

    Nella schermata Target l'etichetta viene visualizzata nella lingua corrispondente al pulsante selezionato.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  10. Premere ESC per tornare all'area di lavoro predefinita.Press Esc to return to the default workspace.

Un altro esempioAnother example