Esercizio - Creazione dell'app canvas Dive Center
In questo esercizio si applicheranno le conoscenze apprese per creare un'app canvas Dive Center.
Scenario
Si lavora presso un centro immersioni, che vende e ripara attrezzatura subacquea. Si è responsabile della gestione dell'ambiente Dataverse dell'organizzazione.
I dipendenti del reparto assistenza hanno bisogno di un'app Power Apps che permetta loro di procedere con le procedure di check-in e check-out per i clienti che portano a riparare la loro attrezzatura subacquea.
Per supportare questi processi, i dipendenti richiedono le seguenti funzionalità:
Un elenco di clienti per i servizi di riparazione
La possibilità di archiviare i check-in
Un elenco di attrezzature subacquee per identificare il tipo di attrezzatura da registrare
Gli utenti hanno formulato altre richieste e si potrebbe voler includere anche le seguenti funzionalità:
Possibilità di procedere con i check-out per le richieste di assistenza completate.
Creazione di nuova attrezzatura subacquea specificando immagine, colore e tipo di attrezzatura.
Acquisizione di immagini e tipo di servizio al momento del check-in.
Acquisizione di una firma per completare il check-out.
Creazione di nuovi clienti.
Esercizio
Prerequisito: la soluzione e l'origine dati a cui si fa riferimento in questo esercizio sono spiegate nell'unità precedente Esercizio - Preparazione per l'app canvas Dive Center. Iniziare nell'ambiente App Dive Center, dove già risiedono le tabelle Dataverse dell'app.
Dalla barra dei comandi della schermata dell'ambiente, selezionare Nuovo > App > App canvas per creare una nuova app canvas denominata Service Request.
Selezionare telefono come formato dell'app canvas. Selezionare quindi Crea.
In Studio per app canvas per Power Apps inserire un'immagine da usare come logo principale.
Posizionare e ridimensionare l'immagine in base allo spazio disponibile sullo schermo e agli altri componenti da includere nell'app. È inoltre possibile adeguare lo sfondo dello schermo al colore del logo usando la proprietà Fill.
Per supportare lo spostamento alle schermate successive, aggiungere tre pulsanti per Check-in, Check-out ed Esci. Definire i colori, le posizioni e le dimensioni in base all'esperienza utente prevista.
Rinominare i controlli e le schermate predefiniti usando nomi che ne rappresentano l'uso. Questa è la procedura consigliata per identificarli più facilmente. È possibile fare doppio clic su ciascun controllo nella Visualizzazione struttura ad albero per rinominarlo oppure usare i puntini di sospensione accanto al controllo e selezionare Rinomina.
Creare la schermata di check-in selezionando Duplica la schermata dalla schermata Home e rinominare la nuova schermata "CHECKIN".
Rimuovere i pulsanti dalla nuova schermata, quindi ridimensionare l'immagine principale per fare spazio al modulo che viene aggiunto per il processo di check-in.
Inserire un Modulo di modifica, connettere l'origine dati alla tabella Service Requests di Dataverse, impostare la proprietà Default mode del modulo su Nuovo e rinominarlo frmCheckIn.
Spostare e ridimensionare il modulo per usare la schermata relativa alle proprietà immobiliari, quindi selezionare l'opzione Modifica campi nel pannello Proprietà in modo da poter modificare i campi del modulo.
Copilot suggerisce automaticamente quali campi includere e li ordina di conseguenza; nel nostro caso però si procederà a disporli manualmente per il processo di check-in, trascinandoli e rilasciandoli nel pannello Campi come segue dall'alto verso il basso (è possibile fare riferimento all'immagine qui sotto): Nome, Cliente, Attrezzatura, Dettagli e Completamento stimato. (È possibile posizionare qualsiasi campo facoltativo sotto questi campi.)
Se questi campi non sono visibili nel modulo, selezionare il pulsante + Aggiungi campo per trovarli/aggiungerli.
Sarà necessario aggiungere dati alla tabella Dive Gear e forse anche alla tabella Contacts per visualizzare i risultati nella casella combinata nella sezione Attrezzatura e Cliente del modulo.
Controllare i campi di controllo della casella combinata per le schede Cliente e Attrezzatura nel modulo. Potrebbero non visualizzare i dati corretti, quindi potrebbe essere necessario sbloccare queste schede e apportare alcune modifiche. Per la casella combinata Cliente, accertarsi di aggiornare la proprietà DisplayFields in
[fullname]e per la casella combinata Attrezzatura, impostare la proprietà DisplayFields su["msft_name"].Per fornire agli utenti funzionalità di aggiornamento e spostamento, aggiungere due pulsanti nella parte inferiore della schermata canvas. Aggiornare il testo in "SAVE" e "BACK" e rinominarli rispettivamente come btnSaveCheckIn e btnBackCheckIn.
Per aggiornare il modulo quando si seleziona il pulsante btnSaveCheckIn e consentire l'elaborazione di un nuovo check-in, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
SubmitForm(frmCheckIn); NewForm(frmCheckIn);Per tornare alla HOME SCREEN quando si seleziona il pulsante btnBackCheckIn, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Navigate('HOME SCREEN',ScreenTransition.Fade);Per tornare alla schermata CHECKIN dalla HOME SCREEN quando si seleziona il pulsante btnCheckIn della HOME SCREEN, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Navigate(CHECKIN,ScreenTransition.Fade);Per consentire agli utenti di chiudere l'app quando selezionano il pulsante btnExit della HOME SCREEN, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Exit();A questo punto è possibile salvare e riprodurre l'app per testare lo spostamento tra le schermate e la creazione di nuove voci di check-in.
Funzionalità facoltative
La sezione seguente fornisce i passaggi necessari per procedere con le funzionalità facoltative dell'app. Alcune di queste funzionalità richiedono tabelle e colonne definite nell'unità Esercizio - Preparazione per l'app canvas Dive Center precedente di questo modulo.
Funzionalità di check-out
Per fornire agli utenti dell'app la funzionalità di check-out, attenersi alla seguente procedura:
Creare un duplicato della schermata CHECKIN e rinominarla come CHECKOUT. Rinominare i componenti dello schermo, quindi eseguire le azioni seguenti:
Modificare il pulsante "SAVE" in "CHECK OUT".
Modificare i campi frmCheckOut per rimuovere il campo Nome.
Aggiungere/spostare il campo facoltativo Allegati subito sotto il campo Completamento stimato.
Impostare la Modalità predefinita su Visualizza in modo che il modulo venga visualizzato in sola lettura.
Per fornire un elenco di richieste di assistenza disponibili per il check-out, aggiungere un input A discesa nella parte superiore della schermata, quindi eseguire le azioni indicate di seguito:
Rinominare l'elenco a discesa in ddServiceRequestForCheckOut.
Posizionare il menu a discesa sopra il modulo frmCheckOut (ridimensionare il modulo di conseguenza).
Impostare la proprietà Items sulla tabella Service Requests.
Impostare la proprietà Value sulla colonna Name.
Per visualizzare la Richiesta di assistenza selezionata dal controllo a discesa immettere il seguente script PowerFx nella proprietà Item del modulo frmCheckOut:
ddServiceRequestForCheckOut.SelectedPer visualizzare soltanto l'elenco delle richieste di assistenza disponibili per il check-out, immettere il seguente script PowerFx nella proprietà Items dell'input a discesa:
Filter('Service Requests',IsBlank('Actual Completion'))Ora che la richiesta di assistenza è visualizzata come presa in carico (check-out) quando si seleziona il pulsante btnSaveCheckOut, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Patch('Service Requests',ddServiceRequestForCheckOut.Selected,{'Actual Completion':Now()});Per tornare alla schermata CHECKOUT dalla HOME SCREEN quando si seleziona il pulsante btnCheckOut nella HOME SCREEN, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Navigate(CHECKOUT,ScreenTransition.Fade);A questo punto è possibile salvare e riprodurre l'app per testare lo spostamento tra le schermate e il processo di check-out.
Creazione della funzionalità per l'attrezzatura subacquea
Per consentire agli utenti di creare una nuova attrezzatura subacquea con colore, tipo di attrezzatura e un'immagine, attenersi alla seguente procedura:
Creare un duplicato della schermata CHECKIN e rinominarla DIVEGEAR. Rinominare i componenti dello schermo, quindi eseguire le azioni seguenti:
Modificare le proprietà frmGear per usare la tabella Dive Gear come origine dati.
Selezionare i diversi campi che si desidera fornire agli utenti, incluso il campo Immagine.
Per creare l'attrezzatura subacquea quando si seleziona il pulsante btnSaveGear e consentire la creazione di una nuova attrezzatura subacquea, immettere il seguente script di PowerFx nella proprietà OnSelect del pulsante:
SubmitForm(frmGear); NewForm(frmGear); Refresh ('Dive Gear');Per tornare alla schermata CHECKIN quando si seleziona il pulsante btnBackGear, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Navigate(CHECKIN,ScreenTransition.Fade);Per spostarsi dalla schermata CHECKIN alla nuova attrezzatura subacquea creata, sbloccare le proprietà della scheda dati per il campo Gear del modulo frmCheckIn nella schermata CHECKIN. Ridimensionare la casella combinata della scheda dati per fornire spazio per inserire un'icona Aggiungi accanto a essa.
Per spostarsi alla schermata DIVEGEAR, immettere il seguente script PowerFx nella proprietà OnSelect dell'icona Aggiungi:
Navigate(DIVEGEAR,ScreenTransition.Fade);Per fare in modo che l'elenco delle attrezzature venga aggiornato quando si crea una nuova attrezzatura, modificare la proprietà dell'origine dati della casella combinata nella tabella Dive Gear.
A questo punto è possibile salvare e riprodurre l'app per testare lo spostamento tra le schermate e la creazione di nuova attrezzatura subacquea.
Acquisizione di immagini e funzionalità del tipo di assistenza
Per consentire agli utenti di acquisire immagini e tipo di assistenza al momento del check-in, attenersi alla seguente procedura:
Assicurarsi di aver aggiunto Tipo di assistenza, Allegati e Accettata il come campi del modulo frmCheckin.
Per impostare il valore Accettata il in base alla data e all'ora della creazione della richiesta di assistenza, sbloccare la scheda dati Accettata il, quindi impostare la proprietà Update mediante il seguente script PowerFx:
Now()A questo punto è possibile salvare e riprodurre l'app per testare l'aggiunta di immagini come allegati alla richiesta di assistenza.
Funzionalità di acquisizione della firma
Per consentire agli utenti di acquisire una firma per completare un check-out, attenersi alla seguente procedura:
Aggiungere un contenitore alla schermata CHECKOUT e ingrandire il contenitore per visualizzarlo a schermo intero. Impostare la proprietà Fill del contenitore su:
RGBA(149,149,149,0.4)Aggiungere le seguenti etichette al controllo container
Nome Testo Posizione/dimensioni Altre informazioni lbl_SignatureCapture <empty> X: 0
Y: 338
Width: 640
Height: 384Fill: RGBA(255, 255, 255, 1) lbl_SignatureLine <empty> X: 0
Y: 587
Width: 640
Height: 13Fill: RGBA(0,0,0,1) lbl_CustomerSignature Firma cliente X: 21
Y: 600
Width: 560
Height: 70Dimensione carattere: 21 lbl_OK OK X: 388
Y: 599
Width: 60
Height: 70Dimensione carattere: 21 lbl_Cancel Cancel X: 492
Y: 599
Width: 122
Height: 70Dimensione carattere: 21 Il risultato dovrebbe essere simile allo screenshot seguente.
Aggiungere i seguenti controlli Icons al contenitore nella schermata CHECKOUT. Appariranno subito a sinistra delle etichette Annulla e OK e saranno selezionabili.
Nome Icona Posizione/dimensioni Colore ico_Cancel Annulla X: 448
Y: 615
Width: 35
Height: 39RGBA(255,0,0,1) ico_OK Check X: 346
Y: 615
Width: 35
Height: 39RGBA(51,176,75,1) Per acquisire la firma del cliente, aggiungere un controllo Input penna nel contenitore. Rinominarlo PenCustomerSignature e impostare le proprietà per Mostra controlli su Off. Impostare la posizione e le dimensioni in modo che siano sopra il controllo lbl_SignatureLine.
Si userà una variabile per visualizzare e nascondere il contenitore con i controlli relativi alla firma in base alla fase del processo. Sostituire la proprietà corrente OnSelect del pulsante btnSaveCheckOut con il seguente script PowerFx:
Set(flgSignature, true);Per visualizzare e nascondere il contenitore con i controlli relativi alla firma in base allo stato della variabile flgSignature, impostare la proprietà Visible mediante il seguente script PowerFx:
flgSignaturePer fornire l'opzione per annullare l'acquisizione della firma e tornare alla schermata CHECKOUT, impostare la proprietà OnSelect di ico_Cancel mediante il seguente script PowerFx:
Reset(PenCustomerSignature);Set(flgSignature, false);Per aggiornare la richiesta di assistenza con la firma acquisita e completare il processo di check-out, impostare la proprietà OnSelect di ico_OK mediante il seguente script PowerFx:
Patch('Service Requests',ddServiceRequestForCheckOut.Selected,{'Actual Completion':Now(),'Customer Signature':PenCustomerSignature.Image}); Reset(PenCustomerSignature); Set(flgSignature, false);A questo punto, è possibile salvare e riprodurre l'app per testare l'acquisizione della firma durante il check-out di una richiesta di assistenza.
Creazione di una funzionalità per i nuovi clienti
Per consentire agli utenti di creare nuovi clienti dalla schermata CHECKIN, attenersi alla seguente procedura:
Creare un duplicato della schermata CHECKIN e rinominarla CUSTOMER. Rinominare i componenti della schermata e attenersi alla seguente procedura:
Modificare le proprietà frmCustomer per usare la tabella Contacts come Origine dati
Selezionare i diversi campi che si desidera rendere disponibili agli utenti, come Nome, Cognome, E-mail e Telefono cellulare.
Per creare il cliente quando si seleziona il pulsante btnSaveCustomer e consentire la creazione di nuovi clienti, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
SubmitForm(frmCustomer); NewForm(frmCustomer); Refresh(Contacts);Per tornare alla schermata CHECKIN quando si seleziona il pulsante btnBackCustomer, immettere il seguente script PowerFx nella proprietà OnSelect del pulsante:
Navigate(CHECKIN,ScreenTransition.Fade);Per spostarsi dalla schermata CHECKIN a questa schermata, sbloccare le proprietà della scheda dati per il campo Cliente del modulo frmCheckIn. Ridimensionare la casella combinata della scheda dati per fornire spazio per inserire un'icona Aggiungi accanto a essa.
Per spostarsi alla schermata CUSTOMER, immettere il seguente script PowerFx nella proprietà OnSelect dell'icona:
Navigate(CUSTOMER,ScreenTransition.Fade);Per fare in modo che l'elenco dei clienti venga aggiornato quando si crea un nuovo cliente, modificare la proprietà dell'origine dati della casella combinata nella tabella Dive Gear.
A questo punto è possibile salvare e riprodurre l'app per testare lo spostamento tra le schermate e la creazione di nuova attrezzatura subacquea.
Passaggi successivi
Si è appreso come creare un'app canvas Dive Center usando Dataverse come origine dati. La prossima unità illustrerà come creare un'app basata su modello.



















