Esercizio - Uso delle raccolte e manipolazione delle tabelle
In questo esercizio si farà pratica con l'uso delle tabelle. Si creerà una raccolta, la si filtrerà e si eseguirà una ricerca in essa, quindi si modificherà e aggiungerà un record in tale raccolta e si rimuoverà un record.
Creazione della raccolta di dati
Accedere a Power Apps.
Dalla schermata iniziale, selezionare + Crea dal pannello di spostamento a sinistra. Quindi, selezionare App vuota.
Infine, selezionare Crea in App canvas vuota.
Assegnare un nome all'app, quindi selezionare Crea.
Selezionare la scheda Inserisci, aggiungere un pulsante e impostare la relativa proprietà OnSelect sulla formula seguente:
ClearCollect(CityPopulations, {City:"London", Country:"United Kingdom", Population:8615000}, {City:"Berlin", Country:"Germany", Population:3562000}, {City:"Madrid", Country:"Spain", Population:3165000}, {City:"Rome", Country:"Italy", Population:2874000}, {City:"Paris", Country:"France", Population:2273000}, {City:"Hamburg", Country:"Germany", Population:1760000}, {City:"Barcelona", Country:"Spain", Population:1602000}, {City:"Munich", Country:"Germany", Population:1494000}, {City:"Milan", Country:"Italy", Population:1344000})
Tenere premuto il tasto ALT e selezionare il controllo Pulsante. (Questa operazione permette di creare la raccolta e archiviare tutte le informazioni.) Aggiornare la proprietà Text del pulsante "Collect".
Inserire un controllo Raccolta verticale e scegliere CityPopulations come Origine dati (in alternativa, è possibile aggiornare la proprietà Items della raccolta impostandola come CityPopulations).
Con la raccolta selezionata, nel pannello Proprietà nella parte destra della schermata, modificare il layout da vuoto a Titolo, sottotitolo e corpo. Quindi, selezionare Campi e modificare l'opzione a discesa Corpo in Population. Fare riferimento all'immagine di seguito.
Con la raccolta ancora selezionata, aggiornare la proprietà OnSelect come segue:
Set(varRecord,ThisItem)
Filtro della raccolta
Inserire un'Etichetta di testo e modificare la proprietà Text in "Population". Quindi, spostarla a destra della raccolta.
Inserire un controllo Dispositivo di scorrimento sotto l'etichetta creata. È possibile trovare rapidamente il controllo inserendo "dispositivo di scorrimento" nel campo di ricerca.
Selezionare il controllo Dispositivo di scorrimento e modificare la proprietà Min come indicato di seguito:
Min(CityPopulations, Population)
Quindi, modificare la proprietà Max come segue:
Max(CityPopulations, Population)
Ora selezionare la raccolta e modificare la proprietà Items come segue:
Filter(CityPopulations, Population>= Slider1.Value)
Ora verranno visualizzati solo i record maggiori del valore del dispositivo di scorrimento selezionato. Mettere l'app in modalità di anteprima e spostare il dispositivo di scorrimento per vederlo in azione. Con il dispositivo di scorrimento completamente a sinistra saranno visibili tutte le città. Spostando il dispositivo di scorrimento verso destra l'elenco si restringe in modo che nella raccolta rimanga solo Londra.
Uso delle funzioni LookUp e Patch
Inserire un'Etichetta di testo, modificare la proprietà Text in "City" e posizionarla sotto il dispositivo di scorrimento.
Inserire un controllo A discesa e spostarlo sotto l'etichetta City.
Nella proprietà Items dell'elenco a discesa digitare quanto segue:
CityPopulations.City
Nella proprietà OnChange dell'elenco a discesa immettere quanto segue:
Set(varRecord, LookUp(CityPopulations, City=Self.SelectedText.City))
Inserire un'altra Etichetta di testo e aggiornare la proprietà Text impostandola su "Country".
Inserire un controllo Input di testo e spostarlo sotto l'etichetta "Country".
Per la proprietà Default di Input di testo inserire varRecord.Country.
Modificare il nome del controllo Input di testo in txtCountry.
Ripetere i quattro passaggi precedenti per aggiungere controlli etichetta di testo e input di testo per City e Population, aggiornando le proprietà Default degli input di testo rispettivamente su varRecord.City e varRecord.Population. Al termine dell'operazione, la schermata dovrebbe avere un aspetto simile al seguente.
Aggiungere un pulsante alla schermata e posizionarla sotto l'input di testo Population. Modificare la proprietà Text inserendo la dicitura "Invia".
Modificare la proprietà OnSelect del pulsante come segue:
Patch(CityPopulations, varRecord, {Country: txtCountry.Text, City: txtCity.Text, Population: Value(txtPopulation.Text)})
Nota
Occorre eseguire il wrapping di txtPopulation.Text con Value() poiché per impostazione predefinita l'input di testo restituisce una stringa e la raccolta richiede un numero.
Impostare l'app in modalità di anteprima e selezionare un elemento dalla raccolta. Modificare uno dei valori, premere il pulsante "Submit" e si vedrà che l'elemento è stato modificato nella raccolta.
Reimpostare l'app in modalità di modifica.
Aggiunta e rimozione di record
Selezionare il pulsante "Submit" e copiarlo. Incollarlo tre volte.
Modificare la proprietà Text dei tre nuovi pulsanti inserendo Clear, New e Remove.
Posizionare i pulsanti in due file di due pulsanti allineati sul pulsante Submit originale ("New" sotto "Submit", "Clear" a destra di "Submit" e "Remove" sotto "Clear").
Premere CTRL e fare clic sui pulsanti Clear e Remove. Modificare la proprietà DisplayMode come segue:
If(IsBlank(varRecord), DisplayMode.Disabled, DisplayMode.Edit)
Ora è possibile fare clic su questi pulsanti solo se è selezionato un record.
Premere CTRL e fare clic sul pulsante Remove per deselezionarlo. Aggiornare la proprietà OnSelect del pulsante Clear come indicato di seguito:
Set(varRecord, Blank())
È ora possibile cancellare il record selezionato usando questo pulsante. Visualizzare l'app in anteprima e selezionare il pulsante Clear.
Come si può notare, i pulsanti Clear e Remove risultano disabilitati.
Con l'app di nuovo in modalità di modifica, selezionare il pulsante Remove. Aggiornare la proprietà OnSelect come segue:
Remove(CityPopulations, varRecord)
Infine selezionare il pulsante New e modificare la proprietà OnSelect come segue:
Collect(CityPopulations, {Country: txtCountry.Text, City: txtCity.Text, Population: Value(txtPopulation.Text)})
Impostare l'app in modalità di anteprima e provare ad aggiungere un nuovo record e a rimuovere un record esistente.
Si è appreso come usare in modo più ampio le tabelle in Power Apps. L'esercizio è così terminato, ma si potrebbero aggiungere funzionalità aggiuntive alle varie proprietà dei pulsanti per migliorare ulteriormente l'esperienza utente.