Informazioni sulle variabili delle app canvas in PowerAppsUnderstand canvas-app variables in PowerApps

Se hai usato un altro strumento di programmazione, ad esempio Visual Basic o JavaScript, potrebbe chiedere: Dove si trovano le variabili?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? PowerApps è uno strumento un po' diverso e richiede un altro tipo di approccio.PowerApps is a little different and requires a different approach. Invece di raggiungimento di una variabile quando si compila un'app canvas, è opportuno porsi: Cosa sarebbe? in ExcelInstead of reaching for a variable when you build a canvas app, ask yourself: What would I do in Excel?

In altri strumenti si eseguirebbe un calcolo in modo esplicito e si archivierebbe il risultato in una variabile.In other tools, you may have explicitly performed a calculation and stored the result in a variable. Tuttavia, sia PowerApps che Excel ricalcolano automaticamente le formule quando i dati di input vengono modificati, pertanto in genere non è necessario creare e aggiornare variabili.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. Adottando questo approccio quando possibile, è possibile creare, comprendere e gestire l'app molto più facilmente.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

In alcuni casi è necessario usare le variabili in PowerApps, che estende il modello di Excel aggiungendo formule di comportamento.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. Queste formule vengono eseguite quando, ad esempio, un utente seleziona un pulsante.These formulas run when, for example, a user selects a button. All'interno di una formula di comportamento è spesso utile impostare una variabile da usare in altre formule.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

In generale è consigliabile evitare di usare le variabili.In general, avoid using variables. Ma a volte solo una variabile può attivare l'operazione che si vuole eseguire.But sometimes only a variable can enable the experience you want. Le variabili in modo implicito vengono create e quando appaiono nelle funzioni che impostano i valori digitate.Variables are implicitly created and typed when they appear in functions that set their values.

Tradurre Excel in PowerAppsTranslate Excel into PowerApps

ExcelExcel

Per prima cosa, tenere presente il funzionamento di Excel.Let's review how Excel works. Una cella può contenere un valore, come ad esempio un numero o una stringa o una formula che si basa sui valori contenuti in altre celle.A cell can contain a value, such as a number or a string, or a formula that's based on the values of other cells. Dopo che l'utente immette un valore diverso in una cella, Excel ricalcola automaticamente tutte le formule che dipendono dal nuovo valore.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. Non è necessario eseguire alcuna attività di programmazione per abilitare questo comportamento.You don't have to do any programming to enable this behavior.

Nell'esempio seguente, la cella A3 è impostato per la formula A1 + A2.In the following example, cell A3 is set to the formula A1+A2. Se A1 oppure A2 modifiche A3 viene ricalcolata automaticamente per riflettere la modifica.If A1 or A2 changes, A3 automatically recalculates to reflect the change. Questo comportamento non richiede codice all'esterno della formula stessa.This behavior requires no coding outside of the formula itself.

Animazione di ricalcolare la somma dei due numeri in Excel

Excel non contiene variabili.Excel doesn't have variables. Il valore di una cella che contiene una formula cambia a seconda del relativo input, ma non è possibile ricordare il risultato di una formula e archiviarlo in una cella o in qualsiasi altro elemento.The value of a cell that contains a formula changes based on its input, but there's no way to remember the result of a formula and store it in a cell or anywhere else. Se si modifica il valore di una cella, l'intero foglio di calcolo può variare e tutti i valori calcolati in precedenza vengono persi.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. Un utente di Excel può copiare e incollare le celle, ma ciò si svolge sotto il controllo manuale dell'utente e non può verificarsi con le formule.An Excel user can copy and paste cells, but that's under the user's manual control and isn't possible with formulas.

PowerAppsPowerApps

Le applicazioni create in PowerApps si comportano in modo molto simile a Excel.Apps that you create in PowerApps behave very much like Excel. Anziché aggiornare le celle, è possibile aggiungere controlli ovunque si voglia in una schermata e denominarli per usarli nelle formule.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

Ad esempio, è possibile replicare il comportamento di Excel in un'app mediante l'aggiunta di un Label controllo denominato Label1e due l'immissioneditesto controlli, denominati TextInput1 e TextInput2.For example, you can replicate the Excel behavior in an app by adding a Label control, named Label1, and two Text input controls, named TextInput1 and TextInput2. Se si imposta quindi il testo proprietà di Label1 al TextInput1 + TextInput2, sempre mostrerà la somma dei numeri di qualsiasi si trovano in TextInput1 e TextInput2 automaticamente.If you then set the Text property of Label1 to TextInput1 + TextInput2, it will always show the sum of whatever numbers are in TextInput1 and TextInput2 automatically.

Calcolando la somma dei due numeri in PowerApps

Si noti che il Label1 controllo è selezionato, che mostra le testo formula nella barra della formula nella parte superiore della schermata.Notice that the Label1 control is selected, showing its Text formula in the formula bar at the top of the screen. Qui troviamo la formula TextInput1 + TextInput2.Here we find the formula TextInput1 + TextInput2. Questa formula crea una dipendenza tra questi controlli,così come si creano dipendenze tra le celle di una cartella di lavoro di Excel.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. È possibile modificare il valore della TextInput1:Let's change the value of TextInput1:

Animazione di calcolando la somma dei due numeri in PowerApps

La formula per Label1 è stata ricalcolata automaticamente, che mostra il nuovo valore.The formula for Label1 has been automatically recalculated, showing the new value.

In PowerApps è possibile usare le formule per determinare non solo il valore principale di un controllo, ma anche le proprietà, come ad esempio la formattazione.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. Nell'esempio seguente una formula per la proprietà Color dell'etichetta visualizzerà automaticamente i valori negativi in rosso.In the next example, a formula for the Color property of the label will automatically show negative values in red. La funzione If dovrebbe risultare familiare dall'uso di Excel:The If function should look very familiar from Excel:

If( Value(Label1.Text) < 0; Red; Black )

Animazione della formattazione condizionale

È possibile usare le formule per un'ampia gamma di scenari:You can use formulas for a wide variety of scenarios:

  • Quando si usa il GPS del proprio dispositivo, un controllo mappa può visualizzare la posizione corrente con una formula che usa Location.Latitude e Location.Longitude.By using your device's GPS, a map control can display your current location with a formula that uses Location.Latitude and Location.Longitude. A mano a mano che ci si sposta, la mappa tiene traccia automaticamente della posizione.As you move, the map will automatically track your location.
  • Altri utenti possono aggiornare le origini dati.Other users can update data sources. Ad esempio, altri membri del team potrebbero aggiornare le voci di un elenco di SharePoint.For example, others on your team might update items in a SharePoint list. Quando si aggiorna un'origine dati, tutte le formule dipendenti vengono ricalcolate automaticamente per riflettere i dati aggiornati.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. Proseguendo con l'esempio, è possibile impostare la proprietà Items di una raccolta con la formula Filter( SharePointList ) , che visualizzerà automaticamente il set di record appena filtrato.Furthering the example, you might set a gallery's Items property to the formula Filter( SharePointList ), which will automatically display the newly filtered set of records.

VantaggiBenefits

L'uso di formule per compilare applicazioni offre numerosi vantaggi:Using formulas to build apps has many advantages:

  • Se si sa usare Excel, si sa usare PowerApps.If you know Excel, you know PowerApps. Il modello e il linguaggio delle formule sono gli stessi.The model and formula language are the same.
  • Se l'utente ha usato altri strumenti di programmazione, saprà quanto codice sarebbe stato necessario per eseguire questi esempi.If you've used other programming tools, think about how much code would be required to accomplish these examples. In Visual Basic sarebbe stato necessario scrivere un gestore eventi per l'evento di modifica per ogni controllo di input di testo.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. Il codice per eseguire il calcolo in ognuna di queste caselle è ridondante e potrebbe risultare non sincronizzato o potrebbe essere necessario scrivere una subroutine comune.The code to perform the calculation in each of these is redundant and could get out of sync, or you'd need to write a common subroutine. In PowerApps tutto ciò si ottiene con una sola formula di una riga.In PowerApps, you accomplished all of that with a single, one-line formula.
  • Per conoscere la destinazione Label1del testo proviene da, si sa esattamente dove guardare: la formula nella testo proprietà.To understand where Label1's text is coming from, you know exactly where to look: the formula in the Text property. Non c'è altro modo per agire sul testo di questo controllo.There's no other way to affect the text of this control. In uno strumento di programmazione tradizionale qualsiasi gestore eventi o subroutine potrebbe modificare il valore dell'etichetta, da qualsiasi punto del programma.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. In questo modo è molto difficile tenere traccia di dove e quando una variabile è stata modificata.This can make it hard to track down when and where a variable was changed.
  • Se l'utente modifica un dispositivo di scorrimento e poi cambia idea, può far tornare il dispositivo di scorrimento al valore originale.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. Ed è come se non fosse mai stato modificato nulla: l'app visualizza gli stessi valori del controllo, come in precedenza.And it's as if nothing had ever changed: the app shows the same control values as it did before. Non vi sono sperimentazioni o congetture possibili, così come non ve ne sono in Excel.There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

In generale, se è possibile ottenere un effetto usando una formula, sarà preferibile usarla.In general, if you can achieve an effect by using a formula, you'll be better off. Sfruttare il motore di formule in PowerApps è l'approccio più utile.Let the formula engine in PowerApps work for you.

Sapere quando usare le variabiliKnow when to use variables

Modifichiamo un semplice addizionatore in modo che funzioni come una vecchia calcolatrice, con un totale parziale.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. Se si seleziona un pulsante Aggiungi, verrà aggiunto un numero al totale parziale.If you select an Add button, you'll add a number to the running total. Se si seleziona un pulsante Cancella, il totale parziale verrà reimpostato a zero.If you select a Clear button, you'll reset the running total to zero.

DisplayDisplay DescrizioneDescription
App con un testo di controllo, un'etichetta e due pulsanti di input App with a Text input control, a label, and two buttons All'avvio dell'app, il totale parziale è 0.When the app starts, the running total is 0.

Punto rosso rappresenta il dito dell'utente nella casella di input di testo, in cui l'utente immette 77.The red dot represents the user's finger in the text-input box, where the user enters 77.
Controllo input di testo contiene 77 e viene premuto il pulsante Aggiungi L'utente seleziona il Add pulsante.The user selects the Add button.
Il totale è 77, e viene aggiunto un altro 77 a esso 77 viene aggiunto per il totale parziale.77 is added to the running total.

L'utente seleziona il Add nuovamente clic sul pulsante.The user selects the Add button again.
Il totale è 154 prima viene cancellata. 77 viene nuovamente aggiunto per il totale parziale, con conseguente 154.77 is again added to the running total, resulting in 154.

L'utente seleziona il chiaro pulsante.The user selects the Clear button.
Il totale viene cancellato. Il totale parziale viene reimpostato su 0.The running total is reset to 0.

La calcolatrice usa una cosa che non esiste in Excel: un pulsante.Our adding machine uses something that doesn't exist in Excel: a button. In questa applicazione non è possibile usare solo le formule per calcolare il totale parziale perché il suo valore dipende da una serie di azioni eseguite dall'utente.In this app, you can't use only formulas to calculate the running total because its value depends on a series of actions that the user takes. Al contrario, il totale parziale deve essere registrato e aggiornato manualmente.Instead, our running total must be recorded and updated manually. La maggior parte degli strumenti di programmazione archivia queste informazioni in una variabile.Most programming tools store this information in a variable.

Talvolta è necessaria una variabile perché l'applicazione si comporti nel modo voluto.You'll sometimes need a variable for your app to behave the way you want. Tuttavia, è bene tenere presente alcune precisazioni:But the approach comes with caveats:

  • È necessario aggiornare manualmente il totale parziale.You must manually update the running total. Il ricalcolo automatico non è utilizzabile.Automatic recalculation won't do it for you.
  • Il totale parziale non può essere calcolato in base ai valori di altri controlli.The running total can no longer be calculated based on the values of other controls. Dipende da quante volte l'utente ha selezionato il pulsante Aggiungi e dal valore del controllo di input di testo presente ogni volta.It depends on how many times the user selected the Add button and what value was in the text-input control each time. L'utente ha immesso 77 e ha selezionato Aggiungi due volte, o ha specificato 24 e 130 per ognuna delle addizioni?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? Non è possibile dirlo, una volta che il totale ha raggiunto 154.You can't tell the difference after the total has reached 154.
  • Le modifiche al totale possono provenire da percorsi diversi.Changes to the total can come from different paths. In questo esempio sia il pulsante Aggiungi che Cancella possono aggiornare il totale.In this example, both the Add and Clear buttons can update the total. Se l'applicazione non si comporta come ci si aspetta, qual è il pulsante che crea il problema?If the app doesn't behave the way you expect, which button is causing the problem?

Usare una variabile globaleUse a global variable

Per creare la calcolatrice, è necessaria una variabile per mantenga il totale parziale.To create our adding machine, we require a variable to hold the running total. Le variabili più semplici da utilizzare in PowerApps sono le variabili globali.The simplest variables to work with in PowerApps are global variables.

Come funzionano le variabili globali:How global variables work:

  • Il valore della variabile globale si imposta con la funzione Set .You set the value of the global variable with the Set function. Set( MyVar; 1 ) imposta la variabile globale MyVar su un valore pari a 1.Set( MyVar; 1 ) sets the global variable MyVar to a value of 1.
  • La variabile globale viene usata facendo riferimento al nome usato con la funzione Set.You use the global variable by referencing the name used with the Set function. In questo caso, MyVar restituirà 1.In this case, MyVar will return 1.
  • Le variabili globali possono contenere qualsiasi valore, incluse stringhe, numeri, record, e tabelle.Global variables can hold any value, including strings, numbers, records, and tables.

Ricompilare ora la calcolatrice usata in precedenza con una variabile globale:Let's rebuild our adding machine by using a global variable:

  1. Aggiungere un controllo di input di testo denominato TextInput1 e due pulsanti, denominati Button1 e Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Impostare la proprietà Text di Button1 su "Aggiungi" e la proprietà Text di Button2 su "Cancella" .Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Per aggiornare il totale parziale ogni volta che un utente seleziona il pulsante Aggiungi, impostarne la proprietà OnSelect su questa formula:To update the running total whenever a user selects the Add button, set its OnSelect property to this formula:

    Set( RunningTotal; RunningTotal + TextInput1 )Set( RunningTotal; RunningTotal + TextInput1 )

    Stabilisce l'esistenza della semplice di questa formula RunningTotal come una variabile globale che contiene un numero perché il + operatore.The mere existence of this formula establishes RunningTotal as a global variable that holds a number because of the + operator. È possibile fare riferimento RunningTotal ovunque nell'app.You can reference RunningTotal anywhere in the app. Ogni volta che l'utente apre l'app RunningTotal ha un valore iniziale pari vuota.Whenever the user opens this app, RunningTotal has an initial value of blank.

    La prima volta che un utente seleziona il Add pulsante e impostare viene eseguito, RunningTotal viene impostato sul valore TextInput1 + RunningTotal.The first time that a user selects the Add button and Set runs, RunningTotal is set to the value RunningTotal + TextInput1.

    Proprietà OnSelect del pulsante Aggiungi è impostata su Set, funzione

  4. Per impostare il totale parziale su 0 ogni volta che l'utente seleziona il pulsante Cancella, impostarne la proprietà OnSelect su questa formula:To set the running total to 0 whenever the user selects the Clear button, set its OnSelect property to this formula:

    Set( RunningTotal; 0 )Set( RunningTotal; 0 )

    Proprietà OnSelect del pulsante cancellato è impostata su Set, funzione

  5. Aggiungere un controllo Etichetta e impostarne la proprietà Text su RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Questa formula verrà ricalcolata automaticamente e visualizzerà il valore di RunningTotal in base ai cambiamenti, a seconda dei pulsanti che l'utente seleziona.This formula will automatically be recalculated and show the user the value of RunningTotal as it changes based on the buttons that the user selects.

    Proprietà di testo dell'etichetta è impostata per il nome della variabile

  6. Visualizzare in anteprima l'app: la calcolatrice funziona come descritto in precedenza.Preview the app, and we have our adding machine as described above. Immettere un numero nella casella di testo e premere il pulsante Aggiungi più volte.Enter a number in the text box and press the Add button a few times. Al termine, tornare alla creazione premendo il tasto ESC.When ready, return to the authoring experience using the Esc key.

    Controllo input di testo contiene un valore e l'etichetta contiene il totale parziale

  7. Per visualizzare il valore della variabile globale, selezionare la File menu e selezionare variabili nel riquadro sinistro.To show the global variable's value, select the File menu, and select Variables in the left-hand pane.

    Opzione di variabili nel menu File

  8. Per visualizzare tutte le posizioni in cui la variabile viene definita e usata, selezionarlo.To show all the places where the variable is defined and used, select it.

    Elenco delle località in cui viene utilizzata variabile

Tipi di variabiliTypes of variables

PowerApps ha tre tipi di variabili:PowerApps has three types of variables:

Tipo di variabileVariables type AmbitoScope DescrizioneDescription Funzioni che stabilisconoFunctions that establish
Variabili globaliGlobal variables AppApp La più semplice da usare.Simplest to use. Contiene un numero, una stringa di testo, un valore booleano, un record, una tabella e così via a cui si può fare riferimento da un punto qualsiasi nell'app.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
Variabili di contestoContext variables SchermataScreen Eccellente per passare valori a una schermata, proprio come i parametri a una procedura in altri linguaggi.Great for passing values to a screen, much like parameters to a procedure in other languages. Può fare riferimento solo una schermata.Can be referenced from only one screen. UpdateContextUpdateContext
NavigateNavigate
RaccolteCollections AppApp Contiene una tabella in cui è possibile fare riferimento da un punto qualsiasi nell'app.Holds a table that can be referenced from anywhere in the app. Consente di modificare il contenuto della tabella piuttosto che impostarla interamente.Allows the contents of the table to be modified rather than being set as a whole. Può essere salvata nel dispositivo locale per un uso successivo.Can be saved to the local device for later use. CollectCollect
ClearCollectClearCollect

Creare e rimuovere le variabiliCreate and remove variables

Tutte le variabili vengono create in modo implicito quando vengono visualizzate una impostata, UpdateContext, Navigate, raccogliere, o ClearCollect (funzione).All variables are created implicitly when they appear in a Set, UpdateContext, Navigate, Collect, or ClearCollect function. Per dichiarare una variabile e il relativo tipo, è necessario solo includerla in una qualsiasi di queste funzioni in un punto qualsiasi nell'app.To declare a variable and its type, you need only include it in any of these functions anywhere in your app. Nessuna di queste funzioni crea variabili. sono solo inserire nelle variabili con i valori.None of these functions create variables; they only fill variables with values. È mai dichiarare le variabili in modo esplicito come si farebbe in un altro strumento di programmazione e digitando tutti è implicita dall'utilizzo.You never declare variables explicitly as you might in another programming tool, and all typing is implicit from usage.

Ad esempio, potrebbe essere un controllo pulsante con un' OnSelect formula uguale a Set (X, 1) .For example, you might have a button control with an OnSelect formula equal to Set( X; 1 ). Questa formula stabilisce X come una variabile con un tipo di numero.This formula establishes X as a variable with a type of number. È possibile usare X nelle formule come un numero e la variabile ha il valore vuota dopo aver aperto l'app, ma prima di selezionare il pulsante.You can use X in formulas as a number, and that variable has a value of blank after you open the app but before you select the button. Quando si seleziona il pulsante, si concede X hodnotou 1.When you select the button, you give X the value of 1.

Se è stato aggiunto un altro pulsante e impostare relativi OnSelect proprietà Set (X, "Hello") , potrebbe verificarsi un errore perché il tipo (stringa di testo) non corrisponde al tipo nella precedente impostare(numero).If you added another button and set its OnSelect property to Set( X; "Hello" ), an error would occur because the type (text string) doesn't match the type in the previous Set (number). Tutte le definizioni implicite della variabile devono essere conformi al tipo.All implicit definitions of the variable must agree on type. Anche in questo caso, tutto questo si è verificato perché hai accennato X nelle formule, non perché fosse effettivamente eseguire qualsiasi di tali formule.Again, all this happened because you mentioned X in formulas, not because any of those formulas had actually run.

Si rimuove una variabile tramite la rimozione di tutti i impostata, UpdateContext, Navigate, raccogliere, o ClearCollect funzioni che stabilire in modo implicito la variabile.You remove a variable by removing all the Set, UpdateContext, Navigate, Collect, or ClearCollect functions that implicitly establish the variable. Senza queste funzioni, la variabile non esiste.Without these functions, the variable doesn't exist. È anche necessario rimuovere tutti i riferimenti alla variabile perché causano un errore.You must also remove any references to the variable because they will cause an error.

La durata delle variabili e il valore inizialeVariable lifetime and initial value

Tutte le variabili vengono mantenute in memoria mentre è in esecuzione l'app.All variables are held in memory while the app runs. Quando si chiude l'app, i valori che conteneva le variabili vengono persi.After the app closes, the values that the variables held are lost.

È possibile archiviare il contenuto di una variabile in un'origine dati usando il Patch oppure raccogliere funzioni.You can store the contents of a variable in a data source by using the Patch or Collect functions. È anche possibile archiviare valori nelle raccolte nel dispositivo locale usando il SaveData (funzione).You can also store values in collections on the local device by using the SaveData function.

Quando l'utente apre l'app, tutte le variabili hanno un valore iniziale pari vuoto.When the user opens the app, all variables have an initial value of blank.

Lettura variabiliReading variables

Il nome della variabile è possibile per leggere il relativo valore.You use the variable's name to read its value. Ad esempio, è possibile definire una variabile con questa formula:For example, you can define a variable with this formula:

Set( Radius; 12 )

È possibile usare semplicemente Radius remoto via Internet che è possibile usare un numero e verrà sostituito con 12:Then you can simply use Radius anywhere that you can use a number, and it will be replaced with 12:

Pi() * Power( Radius; 2 )

Se si assegna una variabile di contesto lo stesso nome di una variabile globale o una raccolta, la variabile di contesto ha la precedenza.If you give a context variable the same name as a global variable or a collection, the context variable takes precedence. Tuttavia, è possibile comunque fare riferimento alla variabile globale o una raccolta se si usa la operatore di risoluzione ambiguità @[raggio] .However, you can still reference the global variable or collection if you use the disambiguation operator @[Radius].

Usare una variabile di contestoUse a context variable

Si esaminerà ora in che modo si potrebbe creare una calcolatrice usando una variabile di contesto anziché una variabile globale.Let's look at how our adding machine would be created using a context variable instead of a global variable.

Come funzionano le variabili di contesto:How context variables work:

  • Stabilire in modo implicito e impostare le variabili di contesto usando il UpdateContext oppure Navigate (funzione).You implicitly establish and set context variables by using the UpdateContext or Navigate function. All'avvio dell'app, è il valore iniziale di tutte le variabili di contesto vuoto.When the app starts, the initial value of all context variables is blank.
  • Aggiornare le variabili di contesto con i record.You update context variables with records. In altri strumenti di programmazione si usa generalmente "=" per l'assegnazione, come in "x = 1".In other programming tools, you commonly use "=" for assignment, as in "x = 1". Per le variabili di contesto, usare {x: 1} invece.For context variables, use { x: 1 } instead. Quando si usa una variabile di contesto, usare il nome direttamente senza la sintassi di record.When you use a context variable, use its name directly without the record syntax.
  • È anche possibile impostare una variabile di contesto quando si usa la Navigate funzione per visualizzare una schermata.You can also set a context variable when you use the Navigate function to show a screen. Se considera una schermata come una specie di routine o subroutine, questo approccio è simile al passaggio dei parametri in altri strumenti di programmazione.If you think of a screen as a kind of procedure or subroutine, this approach resembles parameter passing in other programming tools.
  • Ad eccezione di Navigate , le variabili di contesto sono limitate al contesto di una singola schermata, da cui prendono il nome.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. Non è possibile usarle o impostarle al di fuori di tale contesto.You can't use or set them outside of this context.
  • Le variabili di contesto possono contenere qualsiasi valore, incluse stringhe, numeri, record, e tabelle.Context variables can hold any value, including strings, numbers, records, and tables.

Ricompilare ora la calcolatrice usata in precedenza tramite una variabile di contesto:Let's rebuild our adding machine by using a context variable:

  1. Aggiungere un controllo di input di testo denominato TextInput1 e due pulsanti, denominati Button1 e Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Impostare la proprietà Text di Button1 su "Aggiungi" e la proprietà Text di Button2 su "Cancella" .Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Per aggiornare il totale parziale ogni volta che un utente seleziona il pulsante Aggiungi, impostarne la proprietà OnSelect su questa formula:To update the running total whenever a user selects the Add button, set its OnSelect property to this formula:

    UpdateContext ({RunningTotal: RunningTotal + TextInput1 } )UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )

    Stabilisce l'esistenza della semplice di questa formula RunningTotal come una variabile di contesto che contiene un numero perché il + operatore.The mere existence of this formula establishes RunningTotal as a context variable that holds a number because of the + operator. È possibile fare riferimento RunningTotal ovunque in questa schermata.You can reference RunningTotal anywhere in this screen. Ogni volta che l'utente apre l'app RunningTotal ha un valore iniziale pari vuota.Whenever the user opens this app, RunningTotal has an initial value of blank.

    La prima volta che l'utente seleziona il Add pulsante e UpdateContext viene eseguito, RunningTotal è impostata sul valore TextInput1 + RunningTotal.The first time that the user selects the Add button and UpdateContext runs, RunningTotal is set to the value RunningTotal + TextInput1.

    Proprietà OnSelect del pulsante Aggiungi

  4. Per impostare il totale parziale su 0 ogni volta che l'utente seleziona il pulsante Cancella, impostarne la proprietà OnSelect su questa formula:To set the running total to 0 whenever the user selects the Clear button, set its OnSelect property to this formula:

    UpdateContext ({RunningTotal: 0 } )UpdateContext( { RunningTotal: 0 } )

    Anche in questo caso UpdateContext viene usato con la formula UpdateContext ({RunningTotal: 0 } ) .Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

    Proprietà OnSelect del pulsante cancellato

  5. Aggiungere un controllo Etichetta e impostarne la proprietà Text su RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Questa formula verrà ricalcolata automaticamente e visualizzerà il valore di RunningTotal in base ai cambiamenti, a seconda dei pulsanti che l'utente seleziona.This formula will automatically be recalculated and show the user the value of RunningTotal as it changes based on the buttons that the user selects.

    Proprietà di testo dell'etichetta

  6. Visualizzare in anteprima l'app: la calcolatrice funziona come descritto in precedenza.Preview the app and we have our adding machine as described above. Immettere un numero nella casella di testo e premere il pulsante Aggiungi più volte.Enter a number in the text box and press the Add button a few times. Al termine, tornare alla creazione premendo il tasto ESC.When ready, return to the authoring experience using the Esc key.

    Controllo input di testo viene visualizzato il valore ed etichetta appare in esecuzione totale

  7. È possibile impostare il valore di una variabile di contesto durante l'esplorazione di una schermata.You can set the value of a context variable while navigating to a screen. Ciò è utile per il passaggio di "contesto" o "parametri" da una schermata a un'altra.This is useful for passing "context" or "parameters" from one screen to another. Per illustrare questa tecnica, Inserisci una schermata, inserire un pulsante e impostare relativi OnSelect su questa formula:To demonstrate this technique, insert a screen, insert a button, and set its OnSelect property to this formula:

    Navigate( Screen1; None; { RunningTotal: -1000 } )Navigate( Screen1; None; { RunningTotal: -1000 } )

    Proprietà OnSelect del pulsante

    Tenere premuto il tasto Alt mentre si seleziona questo pulsante per entrambi show Screen1 e impostare la variabile di contesto RunningTotal su -1000.Hold down the Alt key while you select this button to both show Screen1 and set the context variable RunningTotal to -1000.

    Screen1 è aperto

  8. Per visualizzare il valore della variabile di contesto, selezionare la File dal menu e quindi selezionare variabili nel riquadro sinistro.To show the value of the context variable, select the File menu, and then select Variables in the left-hand pane.

    Opzione di variabili nel menu File

  9. Per mostrare dove la variabile di contesto è definita e usata, selezionarlo.To show where the context variable is defined and used, select it.

    Elenco di in cui viene utilizzata una variabile

Usare una raccoltaUse a collection

Infine, si esaminerà la creazione della calcolatrice con una raccolta.Finally, let's look at creating our adding machine with a collection. Dato che una raccolta contiene una tabella facile da modificare, la calcolatrice conserverà un "nastro perforato" di ogni valore al momento dell'immissione.Since a collection holds a table that is easy to modify, we will make this adding machine keep a "paper tape" of each value as they are entered.

Come funzionano le raccolte:How collections work:

  • Creare e impostare le raccolte usando la funzione ClearCollect .Create and set collections by using the ClearCollect function. In alternativa è possibile usare la funzione Collect , ma questa richiederà un'altra variabile anziché sostituire quella vecchia.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • Una raccolta è una sorta di origine dati e, quindi, una tabella.A collection is a kind of data source and, therefore, a table. Per accedere a un singolo valore in una raccolta, usare la funzione First ed estrarre un campo dal record risultante.To access a single value in a collection, use the First function, and extract one field from the resulting record. Se è stato usato un valore singolo con ClearCollect , questo sarà il campo Value, come nell'esempio seguente:If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( VariableName ).ValueFirst( VariableName ).Value

Ricreare ora la calcolatrice tramite una raccolta:Let's recreate our adding machine by using a collection:

  1. Aggiungere un controllo Input di testo denominato TextInput1 e due pulsanti, denominati Button1 e Button2.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Impostare la proprietà Text di Button1 su "Aggiungi" e la proprietà Text di Button2 su "Cancella" .Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Per aggiornare il totale parziale ogni volta che un utente seleziona il pulsante Aggiungi, impostarne la proprietà OnSelect su questa formula:To update the running total whenever a user selects the Add button, set its OnSelect property to this formula:

    Collect( PaperTape; TextInput1.Text )Collect( PaperTape; TextInput1.Text )

    L'esistenza di questa formula semplice stabilisce PaperTape come una raccolta che contiene una tabella a colonna singola di stringhe di testo.The mere existence of this formula establishes PaperTape as a collection that holds a single-column table of text strings. È possibile fare riferimento PaperTape ovunque in questa app.You can reference PaperTape anywhere in this app. Ogni volta che un utente apre l'app PaperTape è una tabella vuota.Whenever a user opens this app, PaperTape is an empty table.

    Quando viene eseguita questa formula, aggiunge il nuovo valore alla fine della raccolta.When this formula runs, it adds the new value to the end of the collection. Poiché stiamo aggiungendo un singolo valore, raccogliere posiziona automaticamente in una tabella a colonna singola, ed è il nome della colonna valore, che verrà usato in un secondo momento.Because we're adding a single value, Collect automatically places it in a single-column table, and the column's name is Value, which you'll use later.

    Proprietà OnSelect del pulsante Aggiungi

  4. Per cancellare il nastro perforato quando l'utente seleziona il cancellare pulsante, impostare relativo OnSelect su questa formula:To clear the paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

    Proprietà OnSelect del pulsante cancellato

  5. Per visualizzare il totale parziale, aggiungere un'etichetta e impostarne la proprietà Text sulla formula seguente:To display the running total, add a label, and set its Text property to this formula:

    Sum( PaperTape; Value )Sum( PaperTape; Value )

    Proprietà di testo dell'etichetta

  6. Per eseguire la calcolatrice, premere F5 per visualizzare l'anteprima, immettere i numeri nel controllo di input di testo e selezionare i pulsanti.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

    Controllo input di testo Mostra un valore e mostrare l'etichetta il totale parziale

  7. Per tornare all'area di lavoro predefinita, premere il tasto ESC.To return to the default workspace, press the Esc key.

  8. Per visualizzare il nastro perforato, aggiungere un controllo Tabella di dati e impostarne la proprietà Items su questa formula seguente:To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    Nel riquadro di destra, selezionare la valore colonna per visualizzarla.In the right-hand pane, select the Value column to show it.

    Tabella di dati che mostra i valori aggiunti alla raccolta

  9. Per visualizzare i valori nella raccolta, selezionare Raccolte dal menu File.To see the values in your collection, select Collections on the File menu.

    Anteprima della raccolta PaperTape

  10. Per archiviare e recuperare la raccolta, aggiungere due pulsanti supplementari e impostarne i testo delle proprietà per Load e Salva.To store and retrieve your collection, add two additional button controls, and set their Text properties to Load and Save. Impostare il OnSelect proprietà delle carico pulsante su questa formula:Set the OnSelect property of the Load button to this formula:

    Clear( PaperTape );; LoadData( PaperTape; "StoredPaperTape"; true )Clear( PaperTape );; LoadData( PaperTape; "StoredPaperTape"; true )

    È necessario cancellare prima di tutto la raccolta perché LoadData posizione+1, verranno aggiunti i valori archiviati alla fine della raccolta.You need to clear the collection first because LoadData will append the stored values to the end of the collection.

    Proprietà OnSelect del pulsante Carica

  11. Impostare il OnSelect proprietà del salvare pulsante su questa formula:Set the OnSelect property of the Save button to this formula:

    SaveData( PaperTape; "StoredPaperTape" )SaveData( PaperTape; "StoredPaperTape" )

    Proprietà OnSelect * del pulsante Salva

  12. Per visualizzare di nuovo l'anteprima, premere il tasto F5, immettere i numeri nel controllo di input di testo e selezionare i pulsanti.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. Selezionare il pulsante Salva.Select the Save button. Chiudere e ricaricare l'app e selezionare il carico pulsante per ricaricare la raccolta.Close and reload the app, and select the Load button to reload your collection.

Nota

SaveData e LoadData funzioni in PowerApps Mobile, ma non di PowerApps Studio o il lettore web per PowerApps.SaveData and LoadData function in PowerApps Mobile but not PowerApps Studio or the web player for PowerApps.