Variabili Power Fx

Nota

Microsoft Power Fx è il nuovo nome per il linguaggio delle formule delle app canvas. Questi articoli sono in corso man mano che Microsoft estrae il linguaggio dalle app canvas, lo integra con altri prodotti Microsoft Power Platform e lo rende disponibile come open source. Inizia con la Panoramica di Microsoft Power Fx per un'introduzione al linguaggio.

Informazioni su come le variabili Power Fx differiscono dalle variabili negli strumenti, ad esempio Visual Basic o JavaScript, e quando le formule sono una scelta migliore. Questo articolo illustra come scegliere variabili globali, variabili di contesto o raccolte per gestire i valori e lo stato dell'app.

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

In alcuni casi, è necessario usare le variabili in Power Fx. Power Fx 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 di tipo e vengono create in modo implicito quando vengono visualizzate nelle funzioni che impostano i valori.

Tradurre Excel in Power Fx

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.

Screenshot di una formula Excel ricalcolare la somma dopo la modifica di un valore di input.

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 si modifica il valore di una cella, l'intero foglio di calcolo potrebbe cambiare e i valori calcolati in precedenza andranno 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 Fx

La logica creata in Power Fx si comporta 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, in Power Apps, puoi replicare il comportamento di Excel in un'app aggiungendo un comando etichetta denominato Label1 e due comandi input di testo denominati TextInput1 e TextInput2. Se quindi si imposta la proprietà Text di Label1 su TextInput1.Text + TextInput2.Text, viene sempre visualizzata la somma di tutti i numeri presenti in TextInput1 e TextInput2 automaticamente.

Screenshot di due input di testo e di un'etichetta che calcola una somma con una formula di Power Fx.

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

Screenshot di una formula di Power Fx che ricalcola automaticamente una somma quando viene modificato un input.

La formula per Label1 viene ricalcolata automaticamente, con il nuovo valore.

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

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

Screenshot di una formula di Power Fx che modifica il colore di un'etichetta quando il valore calcolato è negativo.

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. Quando ti sposti la mappa tiene traccia automaticamente della tua posizione.
  • Altri utenti possono aggiornare le origini dati. Ad esempio, altri membri del tuo team potrebbero aggiornare le voci di un elenco SharePoint. Quando si aggiorna un'origine dati, le formule dipendenti vengono ricalcolate automaticamente in modo da riflettere i dati aggiornati. Per altre informazioni, è possibile impostare la proprietà Items di una raccolta sulla formula Filter( SharePointList ), che visualizza automaticamente il set di record appena filtrato.

Vantaggi delle formule Power Fx

L'uso delle formule per creare app offre molti vantaggi:

  • Se sai usare Excel, sai usare Power Fx. Il modello e il linguaggio delle formule sono gli stessi.
  • Se si usano altri strumenti di programmazione, valutare la quantità di codice necessario per eseguire questi esempi. In Visual Basic sarebbe stato necessario scrivere un gestore eventi per l'evento di modifica per ogni controllo di input di testo. Il codice per eseguire il calcolo in ognuno di questi gestori eventi è ridondante e potrebbe non essere sincronizzato oppure è necessario scrivere una subroutine comune. In Power Fx è possibile eseguire tutte queste operazioni con una singola formula a riga singola.
  • Per capire da dove proviene il testo di Label1, si sa esattamente da dove cercare: 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. Questo approccio può rendere difficile rilevare quando e dove è stata modificata una variabile.
  • Se l'utente modifica un dispositivo di scorrimento e poi cambia idea, può far tornare il dispositivo di scorrimento al valore originale. È come se non fosse mai cambiato nulla: l'app mostra gli stessi valori di controllo usati in precedenza.It's as if nothing 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.

In generale, se è possibile ottenere un effetto usando una formula, si è meglio. Sfrutta il motore di formule in Power Fx è 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 si seleziona un pulsante Aggiungi , aggiungere un numero al totale in esecuzione. Se si seleziona un pulsante Cancella , si reimposta il totale in esecuzione su zero.

Schermo Descrizione
Screenshot di un'app per l'aggiunta di un computer con un totale pari a zero e 77 immessi nell'input di testo. 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.
Screenshot del computer di aggiunta con 77 nell'input di testo quando l'utente seleziona Aggiungi. L'utente seleziona il pulsante Aggiungi.
Screenshot del computer di aggiunta che mostra un totale di 77 prima dell'aggiunta di altri 77. 77 viene aggiunto al totale parziale.

L'utente seleziona di nuovo il pulsante Aggiungi.
Screenshot del computer che mostra un totale di esecuzione pari a 154 prima che l'utente selezioni Cancella. 77 viene nuovamente aggiunto al totale parziale, con il risultato di 154.

L'utente seleziona il pulsante Cancella.
Screenshot del computer di aggiunta dopo che il totale in esecuzione è stato reimpostato su zero. 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. È invece necessario registrare e aggiornare manualmente il totale in esecuzione. 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.
  • Non è possibile calcolare il totale in esecuzione 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 è possibile indicare la differenza dopo che il totale raggiunge 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 il computer di aggiunta, è necessaria una variabile per contenere il totale in esecuzione. Le variabili più semplici da utilizzare in Power Fx sono le variabili globali.

Come funzionano le variabili globali:

  • Usare la funzione Set per impostare il valore della variabile globale. Set( MyVar, 1 ) imposta la variabile globale MyVar su un valore pari a 1.
  • Usare la variabile globale facendo riferimento al nome usato con la funzione Set . In questo caso, MyVar restituisce 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 imposta 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.Text )

    La semplice esistenza di questa formula definisce 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.

    Screenshot della proprietà Aggiungi pulsante OnSelect usando Set per aggiornare una variabile globale di Power Fx.

  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 )

    Screenshot della proprietà OnSelect del pulsante Cancella usando Imposta per reimpostare una variabile globale di Power Fx.

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

    Questa formula ricalcola automaticamente e mostra all'utente il valore di RunningTotal quando cambia in base ai pulsanti selezionati dall'utente.

    Screenshot di una proprietà Text dell'etichetta che mostra il valore della variabile globale RunningTotal.

  6. Visualizzare in anteprima l'app e si ha il computer da aggiungere come descritto in precedenza. Immetti un numero nella casella di testo e premi il pulsante Aggiungi più volte. Quando si è pronti, tornare all'esperienza di creazione usando il tasto ESC .

    Screenshot dell'anteprima del computer di aggiunta con un valore di input e il totale dell'esecuzione calcolata.

  7. Per vedere il valore della variabile globale, seleziona il menu File e quindi Variabili nel riquadro a sinistra.

    Screenshot dell'opzione Variabili globali selezionata dal menu File nell'editor dell'app.

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

    Screenshot delle posizioni in cui viene definita e usata una variabile globale nell'app.

Tipi di variabili

Power Fx ha due tipi di variabili:

Tipo di variabile Ambito 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 altro ancora. È possibile farvi riferimento da qualsiasi punto dell'app. Set
Raccolte App Contiene una tabella a cui è possibile fare riferimento ovunque nell'app. È possibile modificare il contenuto della tabella anziché impostarlo nel suo complesso. È possibile salvarlo nel dispositivo locale per usarlo in un secondo momento. Collect
ClearCollect

Quando si usa Power Apps, viene visualizzato un terzo tipo di variabile:

Tipo di variabile Ambito Descrizione Funzioni stabilite
Variabili del contesto Schermo Eccellente per passare valori a una schermata, proprio come i parametri a una procedura in altri linguaggi. È possibile farvi riferimento da una sola schermata. UpdateContext
Navigate

Creare e rimuovere le variabili

Tutte le variabili vengono create in modo implicito quando vengono visualizzate in una funzione Set, UpdateContext, Navigate, Collect o ClearCollect . Per dichiarare una variabile e il relativo tipo, è sufficiente includerla in una di queste funzioni in qualsiasi punto dell'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 Seleziona il pulsante. Quando selezioni il pulsante, assegni a X il valore 1.

Se si aggiunge un altro pulsante e si imposta la relativa proprietà OnSelectsu Set( X, "Hello", ), si verifica un errore perché il tipo (stringa di testo) non corrisponde al tipo nel set precedente (numero). Tutte le definizioni implicite della variabile devono corrispondere per tipo. Anche in questo caso, tutto questo è successo perché hai menzionato X nelle formule, non perché una di queste formule è stata effettivamente eseguita.

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. È inoltre necessario rimuovere tutti i riferimenti alla variabile perché generano un errore.

Durata della variabile e valore iniziale

L'app contiene tutte le variabili in memoria durante l'esecuzione. 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.

Leggere le variabili

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

Set( Radius, 12 )

È quindi possibile usare radius ovunque sia possibile usare un numero e sostituire 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 se usi l'operatore di disambiguazione[@Radius].

Usare una variabile di contesto (solo Power Apps)

Ecco come creare il computer di aggiunta 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 usare invece { x: 1 } instead. 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 Naviga 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 Naviga, 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 imposta 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.Text } )

    La semplice esistenza di questa formula definisce 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.

    Screenshot della proprietà Aggiungi pulsante OnSelect che aggiorna la variabile di contesto RunningTotal.

  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 usata con la formula UpdateContext( { RunningTotal: 0 } ).

    Screenshot della proprietà OnSelect del pulsante Cancella reimpostando la variabile di contesto RunningTotal.

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

    Questa formula ricalcola automaticamente e mostra all'utente il valore di RunningTotal quando cambia in base ai pulsanti selezionati dall'utente.

    Screenshot di una proprietà Text dell'etichetta che mostra il valore della variabile di contesto RunningTotal.

  6. Visualizzare l'anteprima dell'app e aggiungere il computer come descritto in precedenza. Immetti un numero nella casella di testo e premi il pulsante Aggiungi più volte. Quando si è pronti, tornare all'esperienza di creazione usando il tasto ESC .

    Screenshot dell'anteprima dell'app con un valore di input di testo e un totale in esecuzione di una variabile di contesto.

  7. Puoi impostare il valore di una variabile di contesto durante l'esplorazione di una schermata. Questa tecnica è utile per passare "context" o "parameters" 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 } )

    Screenshot di una proprietà OnSelect del pulsante che usa Navigate per passare una variabile di contesto a Screen1.

    Tenere premuto ALT mentre si seleziona questo pulsante per visualizzare Screen1 e impostare la variabile di contesto RunningTotal su -1000.

    Screenshot di Screen1 dopo la navigazione imposta la variabile di contesto RunningTotal su negativo 1000.

  8. Per vedere il valore della variabile di contesto, seleziona il menu File e quindi Variabili nel riquadro a sinistra.

    Screenshot dell'opzione Variabili di scelta rapida selezionata dal menu File nell'editor dell'app.

  9. Selezionare la variabile di contesto per vedere dove viene definita e usata.

    Screenshot delle posizioni in cui viene definita una variabile di contesto e usata nell'app.

Usare una raccolta

Infine, esaminiamo la creazione della calcolatrice con una raccolta. Poiché una raccolta contiene una tabella che è possibile modificare facilmente, questa macchina aggiungendo mantiene un "nastro di carta" di ogni valore durante l'immissione.

Come funzionano le raccolte:

  • Usare la funzione ClearCollect per creare e impostare raccolte. È invece possibile usare la funzione Collect , ma richiede in modo efficace un'altra variabile anziché sostituire quella precedente.
  • 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 si usa un singolo valore con ClearCollect, questo valore è 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 imposta 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. Poiché si aggiunge un singolo valore, Collect lo inserisce automaticamente in una tabella a colonna singola e il nome della colonna è Value, che verrà usato in un secondo momento.

    Screenshot della proprietà Aggiungi pulsante OnSelect che raccoglie un valore di input in PaperTape.

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

    Clear( PaperTape )

    Screenshot della proprietà OnSelect del pulsante Cancella cancella tutti i valori da PaperTape.

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

    Sum( PaperTape, Value )

    Screenshot di una proprietà Text dell'etichetta che usa Sum per calcolare il totale dell'esecuzione di PaperTape.

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

    Screenshot del computer di aggiunta basato su raccolta con un valore di input e il totale in esecuzione.

  7. Per tornare all'area di lavoro predefinita, premere 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.

    Screenshot di una tabella dati che mostra i valori aggiunti all'insieme PaperTape.

  9. Per visualizzare i valori nella raccolta, seleziona Raccolte dal menu File.

    Screenshot della visualizzazione Raccolte che mostra i valori archiviati nell'insieme PaperTape.

  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.

    Screenshot della cancellazione della proprietà OnSelect del pulsante Carica e caricamento dell'insieme PaperTape.

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

    SalvaDati( NastroCartaceo, "NastroCartaceoMemorizzato" )

    Screenshot della proprietà OnSelect del pulsante Salva che salva l'insieme PaperTape in locale.

  12. Visualizzare nuovamente l'anteprima premendo F5 , immettere i numeri nel controllo di input di testo e selezionare i pulsanti. Seleziona il pulsante Salva. Chiudi e ricarica l'app e seleziona il pulsante Load per ricaricare la raccolta.