Informazioni sulle variabili nelle app canvas

Se hai ha usato altri strumenti di programmazione, come ad esempio Visual Basic o JavaScript, probabilmente ti stai chiedendo dove siano le variabili. Power Apps è uno strumento un po' diverso e richiede un altro tipo di approccio. Quando compili un'app canvas, anziché ricorrere a una variabile è opportuno chiedersi cosa farei in Excel.

In altri strumenti eseguiresti un calcolo in modo esplicito e archivieresti il risultato in una variabile. Tuttavia, sia Power Apps che Excel ricalcolano automaticamente le formule quando i dati di input vengono modificati, pertanto in genere non devi creare e aggiornare le variabili. Adottando questo approccio quando possibile, puoi creare, comprendere e gestire l'app molto più facilmente.

In alcuni casi dovrai usare le variabili in Power Apps, che estende il modello di Excel aggiungendo formule di comportamento. Queste formule vengono eseguite quando, ad esempio, un utente seleziona un pulsante. All'interno di una formula di comportamento è spesso utile impostare una variabile da usare in altre formule.

In generale è consigliabile evitare di usare le variabili. Ma a volte solo una variabile può attivare l'operazione che vuoi eseguire. Le variabili vengono create e digitate in modo implicito quando compaiono in funzioni che impostano i loro valori.

Tradurre Excel in Power Apps

Excel

Per prima cosa, vediamo il funzionamento di Excel. 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. Dopo che l'utente immette un valore diverso in una cella, Excel ricalcola automaticamente tutte le formule che dipendono dal nuovo valore. Non devi eseguire alcuna attività di programmazione per abilitare questo comportamento.

Nel seguente esempio, la cella A3 è impostata sulla formula A1+A2. Se A1 o A2 cambia, A3 viene ricalcolata automaticamente per riflettere la modifica. Questo comportamento non richiede codifica al di fuori della formula stessa.

Animazione del ricalcolo della somma di due numeri in Excel.

Excel non contiene variabili. Il valore di una cella che contiene una formula cambia a seconda del relativo input, ma non è possibile memorizzare il risultato di una formula e archiviarlo in una cella o in qualsiasi altro elemento. Se modifichi il valore di una cella, l'intero foglio di calcolo può variare e tutti i valori calcolati in precedenza vengono persi. 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.

Power Apps

Le applicazioni create in Power Apps si comportano in modo molto simile a Excel. Anziché aggiornare le celle, puoi aggiungere controlli ovunque vuoi in una schermata e denominarli per usarli nelle formule.

Ad esempio, puoi replicare il comportamento di Excel in un'app aggiungendo un controllo Etichetta denominato Label1 e due controlli Input di testo denominati TextInput1 e TextInput2. Se poi imposti la proprietà Text di Label1 su TextInput1 + TextInput2, la somma dei numeri contenuti in TextInput1 e TextInput2 verrà sempre visualizzata automaticamente.

Calcolo della somma di due numeri in Power Apps.

Nota che il controllo Label1 è selezionato, quindi la formula Text viene visualizzata nella barra delle formule nella parte superiore dello schermo. Qui troviamo la 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. Modifichiamo il valore di TextInput1:

Animazione del calcolo della somma di due numeri in Power Apps.

La formula per Label1 è stata ricalcolata automaticamente e visualizza il nuovo valore.

In Power Apps puoi usare le formule per determinare non solo il valore principale di un controllo, ma anche le proprietà, come ad esempio la formattazione. Nell'esempio seguente una formula per la proprietà Color dell'etichetta visualizzerà automaticamente i valori negativi in rosso. La funzione If dovrebbe risultare familiare dall'uso di Excel:

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

Animazione della formattazione condizionale.

Puoi usare le formule per un'ampia gamma di scenari:

  • Quando usi il GPS del tuo dispositivo, un controllo mappa può visualizzare la posizione corrente con una formula che usa Location.Latitude e Location.Longitude. A mano a mano che ti sposti, la mappa tiene traccia automaticamente della posizione.
  • Altri utenti possono aggiornare le origini dati. Ad esempio, altri membri del tuo team potrebbero aggiornare le voci di un elenco. Quando aggiorni un'origine dati, tutte le formule dipendenti vengono ricalcolate automaticamente per riflettere i dati aggiornati. Proseguendo con l'esempio, puoi impostare la proprietà Items di una raccolta con la formula Filter( SharePointList ), che visualizza automaticamente il set di record appena filtrato.

Indennità

L'uso di formule per compilare app offre numerosi vantaggi:

  • Se sai usare Excel, sai usare Power Apps. Il modello e il linguaggio delle formule sono gli stessi.
  • Se hai usato altri strumenti di programmazione, saprai quanto codice sarebbe stato necessario per eseguire questi esempi. In Visual Basic sarebbe stato necessario scrivere un gestore eventi per l'evento di modifica per ogni controllo Input di testo. 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. In Power Apps ottieni tutto ciò con una sola formula di una riga.
  • Per capire da dove arriva il testo di Label1, sai esattamente dove guardare: la formula nella proprietà Text. Non c'è altro modo per agire sul testo di questo controllo. In uno strumento di programmazione tradizionale qualsiasi gestore eventi o subroutine potrebbe modificare il valore dell'etichetta, da qualsiasi punto del programma. In questo modo è molto difficile tenere traccia di dove e quando una variabile è stata modificata.
  • Se l'utente modifica un dispositivo di scorrimento e poi cambia idea, può far tornare il dispositivo di scorrimento al valore originale. Ed è come se non fosse mai stato modificato nulla: l'app visualizza gli stessi valori del controllo, come in precedenza. Non vi sono sperimentazioni o congetture possibili, così come non ve ne sono in Excel.

In generale, se puoi ottenere un effetto usando una formula, è preferibile usarla. Sfruttare il motore di formule in Power Apps è l'approccio più utile.

Sapere quando usare le variabili

Modifichiamo un semplice addizionatore in modo che funzioni come una vecchia calcolatrice, con un totale parziale. Se selezioni un pulsante Aggiungi, verrà aggiunto un numero al totale parziale. Se selezioni un pulsante Cancella, il totale parziale verrà reimpostato a zero.

Schermo Descrizione
App con un controllo Input di testo, un'etichetta e due pulsanti. All'avvio dell'app, il totale parziale è 0.

Il punto rosso rappresenta il dito dell'utente nella casella di input di testo, in cui l'utente immette 77.
Il controllo Input di testo contiene 77 e viene premuto il pulsante Aggiungi. L'utente seleziona il pulsante Aggiungi.
Il totale è 77 e un altro 77 viene aggiunto ad esso. 77 viene aggiunto al totale parziale.

L'utente seleziona di nuovo il pulsante Aggiungi.
Il totale è 154 prima di essere eliminato. 77 viene nuovamente aggiunto al totale parziale, con il risultato di 154.

L'utente seleziona il pulsante Cancella.
Il totale viene cancellato. Il totale parziale viene reimpostato a 0.

La calcolatrice usa una cosa che non esiste in Excel: un pulsante. In questa app non puoi usare solo le formule per calcolare il totale parziale perché il suo valore dipende da una serie di azioni eseguite dall'utente. Al contrario, il totale parziale deve essere registrato e aggiornato manualmente. La maggior parte degli strumenti di programmazione archivia queste informazioni in una variabile.

Talvolta è necessaria una variabile perché l'app si comporti nel modo voluto. Tuttavia, è bene tenere presente alcune precisazioni:

  • Devi aggiornare manualmente il totale parziale. Il ricalcolo automatico non è utilizzabile.
  • Il totale parziale non può essere calcolato in base ai valori di altri controlli. Dipende da quante volte l'utente ha selezionato il pulsante Aggiungi e dal valore del controllo Input di testo presente ogni volta. L'utente ha immesso 77 e ha selezionato Aggiungi due volte o ha specificato 24 e 130 per ognuna delle addizioni? Non puoi dirlo una volta che il totale ha raggiunto 154.
  • Le modifiche al totale possono provenire da percorsi diversi. In questo esempio sia il pulsante Aggiungi che Cancella possono aggiornare il totale. Se l'app non si comporta come ti aspetti, qual è il pulsante che crea il problema?

Usare una variabile globale

Per creare la calcolatrice, è necessaria una variabile che mantenga il totale parziale. Le variabili più semplici da utilizzare in Power Apps sono le variabili globali.

Come funzionano le variabili globali:

  • Imposti il valore della variabile globale con la funzione Set. Set( MyVar, 1 ) imposta la variabile globale MyVar su un valore pari a 1.
  • Usi la variabile globale facendo riferimento al nome usato con la funzione Set. In questo caso, MyVar restituirà 1.
  • Le variabili globali possono contenere qualsiasi valore, incluse stringhe, numeri, record, e tabelle.

Ricompila ora la calcolatrice usata in precedenza con una variabile globale:

  1. Aggiungi un controllo Input di testo denominato TextInput1 e due pulsanti, denominati Button1 e Button2.

  2. Imposta la proprietà Text di Button1 su "Aggiungi" e la proprietà Text di Button2 su "Cancella".

  3. Per aggiornare il totale parziale ogni volta che un utente seleziona il pulsante Aggiungi, impostane la proprietà OnSelect su questa formula:

    Set( RunningTotal, RunningTotal + TextInput1 )

    La semplice esistenza di questa formula stabilisce RunningTotal come variabile globale che contiene un numero a causa dell'operatore +. Puoi fare riferimento a RunningTotal ovunque nell'app. Ogni volta che l'utente apre questa app, RunningTotal ha il valore iniziale vuoto.

    La prima volta che un utente seleziona il pulsante Aggiungi e viene eseguita la funzione Set, RunningTotal viene impostato sul valore RunningTotal + TextInput1.

    La proprietà OnSelect del pulsante Aggiungi è impostata sulla funzione Set.

  4. Per impostare il totale parziale su 0 ogni volta che l'utente seleziona il pulsante Cancella, impostane la proprietà OnSelect su questa formula:

    Set( RunningTotal, 0 )

    La proprietà OnSelect del pulsante Cancella è impostata sulla funzione Set.

  5. Aggiungi un controllo Etichetta e impostane la proprietà Text su RunningTotal.

    Questa formula verrà ricalcolata automaticamente e visualizzerà il valore di RunningTotal in base ai cambiamenti, a seconda dei pulsanti che l'utente seleziona.

    La proprietà Text dell'etichetta è impostata sul nome della variabile.

  6. Visualizza in anteprima l'app: la calcolatrice funziona come descritto in precedenza. Immetti un numero nella casella di testo e premi il pulsante Aggiungi più volte. Al termine, torna alla creazione premendo il tasto ESC.

    Il controllo Input di testo contiene un valore e l'etichetta contiene il totale parziale.

  7. Per mostrare il valore della variabile globale, esegui una delle seguenti operazioni:

    • Se utilizzi la versione di anteprima di Power Apps Studio, seleziona Variabili nel menu di creazione dell'app.

      Menu Variabili e raccolte.

    • Se utilizzi la versione classica di Power Apps Studio, seleziona il menu File e quindi Variabili nel riquadro a sinistra.

  8. Seleziona la variabile per vedere tutte le posizioni in cui è definita e usata in Variabili globali.

    Elenco di posizioni in cui viene utilizzata la variabile.

Tipi di variabili

Power Apps ha tre tipi di variabili:

Tipo di variabile Scope Descrizione Funzioni stabilite
Variabili globali App La più semplice da usare. 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. Imposta
Variabili del contesto Schermata Eccellente per passare valori a una schermata, proprio come i parametri a una procedura in altri linguaggi. Vi si può fare riferimento solo da una schermata. UpdateContext
Navigate
Raccolte App Contiene una tabella a cui si può fare riferimento da un punto qualsiasi nell'app. Consente di modificare il contenuto della tabella piuttosto che impostarla interamente. Può essere salvata nel dispositivo locale per un uso successivo. Collect
ClearCollect

Creare e rimuovere le variabili

Tutte le variabili vengono create implicitamente quando sono presenti in una funzione Set, UpdateContext, Navigate, Collect o ClearCollect. Per dichiarare una variabile e il suo tipo, è necessario includerla solo in una di queste funzioni ovunque nell'app. Nessuna di queste funzioni crea variabili, i valori vengono inseriti nelle variabili. Non dichiari mai le variabili in modo esplicito come faresti in un altro strumento di programmazione e tutta la digitazione è implicita dall'uso.

Ad esempio, potresti avere un controllo Pulsante con una formula OnSelect pari a Set( X, 1 ). Questa formula stabilisce X come variabile con un tipo di numero. Puoi usare X nelle formule come numero e quella variabile ha il valore vuoto dopo aver aperto l'app ma prima di selezionare il pulsante. Quando selezioni il pulsante, assegni a X il valore 1.

Se hai aggiunto un altro pulsante e hai impostato la sua proprietà OnSelect su Set( X, "Hello" ), si verifica un errore perché il tipo (stringa di testo) non corrisponde al tipo nella precedente funzione Set (numero). Tutte le definizioni implicite della variabile devono corrispondere per tipo. Ancora una volta, tutto questo è successo perché hai menzionato X nelle formule e non perché le formule sono state effettivamente eseguite.

Rimuovi una variabile rimuovendo tutte le funzioni Set, UpdateContext, Navigate, Collect o ClearCollect che implicitamente stabiliscono la variabile. Senza queste funzioni, la variabile non esiste. Devi inoltre rimuovere eventuali riferimenti alla variabile perché causerebbero un errore.

Durata della variabile e valore iniziale

Tutte le variabili vengono mantenute in memoria durante l'esecuzione dell'app. Dopo aver chiuso l'app, i valori contenuti nelle variabili vengono persi.

Puoi memorizzare il contenuto di una variabile in un'origine dati usando le funzioni Patch o Collect. Puoi inoltre archiviare i valori nelle raccolte sul dispositivo locale utilizzando la funzione SaveData.

Quando l'utente apre l'app, tutte le variabili hanno il valore iniziale vuoto.

Lettura delle variabili

Usa il nome della variabile per leggerne il valore. Ad esempio, puoi definire una variabile con questa formula:

Set( Radius, 12 )

Quindi puoi semplicemente usare Radius ovunque sia possibile utilizzare un numero e verrà sostituito con 12:

Pi() * Power( Radius, 2 )

Se assegni a una variabile di contesto lo stesso nome di una variabile globale o di una raccolta, la variabile di contesto ha la precedenza. Tuttavia puoi comunque fare riferimento alla variabile globale o alla raccolta usando l'operatore di risoluzione ambiguità [@Radius].

Usare una variabile di contesto

Esaminiamo ora in che modo si potrebbe creare una calcolatrice usando una variabile di contesto anziché una variabile globale.

Come funzionano le variabili di contesto:

  • Le variabili di contesto vengono stabilite e impostate in modo implicito usando la funzione UpdateContext o Navigate. All'avvio dell'app, tutte le variabili di contesto hanno il valore iniziale vuoto.
  • Le variabili di contesto vengono aggiornate con i record. In altri strumenti di programmazione usi generalmente "=" per l'assegnazione, come in "x = 1". Per le variabili di contesto, usi invece { x: 1 }. Quando usi una variabile di contesto, utilizza il suo nome direttamente senza la sintassi del record.
  • Puoi anche impostare una variabile di contesto quando usi la funzione Navigate per visualizzare una schermata. Se consideri una schermata come un tipo di procedura o di subroutine, questo approccio è simile al passaggio dei parametri in altri strumenti di programmazione.
  • Ad eccezione di Navigate, le variabili di contesto sono limitate al contesto di una singola schermata, da cui prendono il nome. Non è possibile usarle o impostarle al di fuori di tale contesto.
  • Le variabili di contesto possono contenere qualsiasi valore, incluse stringhe, numeri, record, e tabelle.

Ricompila ora la calcolatrice usata in precedenza tramite una variabile di contesto:

  1. Aggiungi un controllo Input di testo denominato TextInput1 e due pulsanti, denominati Button1 e Button2.

  2. Imposta la proprietà Text di Button1 su "Aggiungi" e la proprietà Text di Button2 su "Cancella".

  3. Per aggiornare il totale parziale ogni volta che un utente seleziona il pulsante Aggiungi, impostane la proprietà OnSelect su questa formula:

    UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )

    La semplice esistenza di questa formula stabilisce RunningTotal come variabile di contesto che contiene un numero a causa dell'operatore +. Puoi fare riferimento a RunningTotal ovunque nella schermata. Ogni volta che l'utente apre questa app, RunningTotal ha il valore iniziale vuoto.

    La prima volta che l'utente seleziona il pulsante Aggiungi e viene eseguita la funzione UpdateContext, RunningTotal viene impostato sul valore RunningTotal + TextInput1.

    Proprietà OnSelect del pulsante Aggiungi con updatecontext.

  4. Per impostare il totale parziale su 0 ogni volta che l'utente seleziona il pulsante Cancella, impostane la proprietà OnSelect su questa formula:

    UpdateContext( { RunningTotal: 0 } )

    Ancora una volta UpdateContext viene usato con la formula UpdateContext( { RunningTotal: 0 } ).

    Proprietà OnSelect del pulsante Cancella con updatecontext.

  5. Aggiungi un controllo Etichetta e impostane la proprietà Text su RunningTotal.

    Questa formula verrà ricalcolata automaticamente e visualizzerà il valore di RunningTotal in base ai cambiamenti, a seconda dei pulsanti che l'utente seleziona.

    Proprietà Text dell'etichetta.

  6. Visualizza in anteprima l'app, la calcolatrice funziona come descritto in precedenza. Immetti un numero nella casella di testo e premi il pulsante Aggiungi più volte. Al termine, torna alla creazione premendo il tasto ESC.

    Il controllo Input di testo mostra un valore e l'etichetta mostra il totale parziale.

  7. Puoi impostare il valore di una variabile di contesto durante l'esplorazione di una schermata. Ciò è utile per il passaggio di "contesto" o "parametri" da una schermata a un'altra. Per dimostrare questa tecnica, inserisci una schermata, inserisci un pulsante e impostane la proprietà OnSelect su questa formula:

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

    Proprietà OnSelect di un pulsante.

    Tieni premuto il tasto ALT mentre selezioni questo pulsante per mostrare Screen1 e impostare la variabile di contesto RunningTotal su -1000.

    Screen1 è aperta.

  8. Per mostrare il valore della variabile di contesto, esegui una delle seguenti operazioni:

    • Se utilizzi la versione di anteprima di Power Apps Studio, seleziona Variabili nel menu di creazione dell'app.

    • Se utilizzi la versione classica di Power Apps Studio, seleziona il menu File e quindi Variabili nel riquadro a sinistra.

  9. Seleziona la variabile di contesto per mostrare dove viene definita e usata in Variabili di contesto.

Usare una raccolta

Infine, esaminiamo la creazione della calcolatrice con una raccolta. Dato che una raccolta contiene una tabella facile da modificare, la calcolatrice conserverà un "nastro perforato" di ogni valore al momento dell'immissione.

Come funzionano le raccolte:

  • Crea e imposta le raccolte usando la funzione ClearCollect. In alternativa puoi usare la funzione Collect, ma questa richiederà un'altra variabile anziché sostituire quella vecchia.
  • Una raccolta è una sorta di origine dati e, quindi, una tabella. Per accedere a un singolo valore in una raccolta, usa la funzione First ed estrai un campo dal record risultante. Se hai usato un valore singolo con ClearCollect, questo sarà il campo Value, come nell'esempio seguente:
    First( VariableName ).Value

Ricrea ora la calcolatrice tramite una raccolta:

  1. Aggiungi un controllo di input di testo denominato TextInput1 e due pulsanti, denominati Button1 e Button2.

  2. Imposta la proprietà Text di Button1 su "Aggiungi" e la proprietà Text di Button2 su "Cancella".

  3. Per aggiornare il totale parziale ogni volta che un utente seleziona il pulsante Aggiungi, impostane la proprietà OnSelect su questa formula:

    Collect( PaperTape, TextInput1.Text )

    La semplice esistenza di questa formula stabilisce PaperTape come una raccolta che contiene una tabella di stringhe di testo a colonna singola. Puoi fare riferimento a PaperTape ovunque nell'app. Ogni volta che un utente apre questa app, PaperTape è una tabella vuota.

    Quando questa formula viene eseguita, aggiunge il nuovo valore alla fine della raccolta. Dato che stai aggiungendo un singolo valore, Collect lo inserisce automaticamente in una tabella a colonna singola con il nome colonna Value che verrà usato in un secondo momento.

    Proprietà OnSelect del pulsante Aggiungi con collect.

  4. Per eliminare il nastro perforato quando l'utente seleziona il pulsante Cancella, impostane la proprietà OnSelect su questa formula:

    Clear( PaperTape )

    Proprietà OnSelect del pulsante Cancella con clear.

  5. Per visualizzare il totale parziale, aggiungi un'etichetta e impostane la proprietà Text sulla formula seguente:

    Sum( PaperTape, Value )

    Proprietà Text dell'etichetta.

  6. Per eseguire la calcolatrice, premi F5 per visualizzare l'anteprima, immetti i numeri nel controllo Input di testo e seleziona i pulsanti.

    Il controllo Input di testo mostra un valore e l'etichetta mostra il totale parziale.

  7. Per tornare all'area di lavoro predefinita, premi il tasto ESC.

  8. Per visualizzare il nastro perforato, aggiungi un controllo Tabella dati e impostane la proprietà Items su questa formula seguente:

    PaperTape

    Nel riquadro di destra seleziona Modifica campi quindi Aggiungi campo, seleziona la colonna Valore e quindi seleziona Aggiungi per mostrarlo.

    Tabella di dati che mostra i valori aggiunti alla raccolta.

  9. Per visualizzare i valori nella tua raccolta, esegui una delle seguenti operazioni:

    • Se utilizzi la versione di anteprima di Power Apps Studio, seleziona Variabili nel menu di creazione dell'app e quindi Raccolte.

    • Se utilizzi la versione classica di Power Apps Studio, nel menu File, seleziona Raccolte.

  10. Per archiviare e recuperare la raccolta, aggiungi due controlli pulsanti supplementari e impostane la proprietà Text su Load e Save. Imposta la proprietà OnSelect del pulsante Load su questa formula:

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

    È necessario prima cancellare la raccolta perché LoadData aggiungerà i valori archiviati alla fine della raccolta.

    Proprietà OnSelect del pulsante Load.

  11. Imposta la proprietà OnSelect del pulsante Save sulla formula seguente:

    SaveData( PaperTape, "StoredPaperTape" )

    Proprietà OnSelect* del pulsante Save.

  12. Per visualizzare di nuovo l'anteprima, premi il tasto F5, immetti i numeri nel controllo Input di testo e seleziona i pulsanti. Seleziona il pulsante Salva. Chiudi e ricarica l'app e seleziona il pulsante Load per ricaricare la raccolta.

Nota

Le funzioni SaveData e LoadData sono utilizzabili in Power Apps Mobile ma non in Power Apps Studio o nel lettore web for Power Apps.

Nota

Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)

Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).