Evento di videata EndModal
copia linkTrascrizione
La videata Ricerca Appartamento, è una videata che non ha interazioni con l’esterno, quindi vuole dire che possiamo richiamare la videata senza problemi in ogni punto del codice, dobbiamo solo capire come intercettare la risposta in quanto nella videata non c’e’ questa informazione ma solo se l’utente conferma o annulla; cominciamo con il codice per richiamare la videata.
Siccome nella videata Prenotazioni, scegliamo l’appartamento con una casella a discesa, aggiungiamo un’altra modalità con la videata di Ricerca: Albero di progetto, videata Prenotazioni, andiamo in dettaglio, faccio un po’ di spazio tra il campo di pannello idAppartamento e il Button Scheda: invece di aggiungere un nuovo Command Button, aggiungiamo un'immagine cliccabile che funga da Command Button: prima di tutto andiamo a cercare l’immagine da utilizzare: Albero di progetto, tasto destro Apri cartella di output;
Avrei potuto recuperare una immagine da internet o da qualsiasi altra fonte, ho scelto una immagine del template grafico per convenienza; torniamo al progetto e, con i pulsanti di progettazione pannello, inseriamo una immagine; nella Gallery non è ancora presente quindi Aggiungi Immagine e aggiungiamo il file mysearch.gif.
Doppio clic sul Campo Statico immagine, e modifichiamo nelle proprietà il nome assegnando Button Search; un aspetto da tenere sempre presente: solo il campo statico di tipo Command Button può essere cliccato dall’utente, gli altri campi statici non hanno questa funzionalità di default, ma è necessario impostarla nelle Proprietà Visuali scegliendo la voce Cliccabile. Confermo le modifiche ed ora attaccando una procedura al campo statico immagine questa verrà richiamata ed eseguita: ButtonSearch => Tasto Destro AggiungiProcedura.
Public void ButtonSearch {
Prenotazione docPrenotazione = PRENOTAZIONE.document
If (docPrenotazione != null) {
RicercaAppartamento.show(Modal)
}
}
La prima parte per il richiamo della videata è a posto, pensiamo adesso al finale: cosa succede quando l’utente conferma o annulla? Viene emesso un evento sulla videata chiamante, quindi sulla videata Prenotazione nel nostro caso, e precisamente l’evento denominato EndModal; possiamo sottoscriverci all’evento nella videata Prenotazione per eseguire operazioni: Albero di progetto, Videata Prenotazioni => tasto destro Eventi => Aggiungi End Modal.
Nell’evento troviamo due parametri fondamenti e precisamente il parametro LookupForm che indica quale videata è stata chiusa e il parametro Result che indica se la chiusura è avvenuta confermando o annullando: e il record scelto? Cominciamo a scrivere il codice e scopriamo anche come recuperare il record scelto.
Event EndModal() {
Prenotazione docPrenotazione = PRENOTAZIONE.document;
if (docPrenotazione != null) {
if (LookupForm = RicercaAppartamento.me and Result) {
docPrenotazione.idAppartamento = RicercaAppartamento.Id.
}
}
}
Nell’evento EndModal rimane in memoria il record selezionato dall’utente, e possiamo riferirci, nel codice, a un valore presente in un’altra videata: questa operazione va contro a qualsiasi regola di programmazione soprattutto programmazione Object Oriented, ma questo è l’unico caso in cui possiamo farlo ed infatti la scrittura manuale non è possibile, possiamo farlo solo trascinando il campo di pannello dalla videata di ricerca al codice della EndModal.
Ovviamente, tutti i campi del record sia visibili che invisibili possono essere prelevati nell’evento EndModal, e ripeto questo è l’unico caso in cui posso riferirmi a elementi di altre videate.
Possiamo eseguire e testare se tutto funziona correttamente.
Vi consiglio, se avete un attimo per esercitarvi di creare una videata di Ricerca Clienti, ed impostarne la ricerca a partire sempre dalla videata Prenotazioni.
La tipologia di videata di Ricerca è di certo molto gradita dall’utilizzatore, in quanto consente di effettuare ricerche avanzate, ampliando le funzionalità offerte da una semplice casella a discesa.
Siccome nella videata Prenotazioni, scegliamo l’appartamento con una casella a discesa, aggiungiamo un’altra modalità con la videata di Ricerca: Albero di progetto, videata Prenotazioni, andiamo in dettaglio, faccio un po’ di spazio tra il campo di pannello idAppartamento e il Button Scheda: invece di aggiungere un nuovo Command Button, aggiungiamo un'immagine cliccabile che funga da Command Button: prima di tutto andiamo a cercare l’immagine da utilizzare: Albero di progetto, tasto destro Apri cartella di output;
- File system cartella images
- Cerco immagine search.gif e la copio
- Mi sposto in custom\images
- Incollo il file e cambio il nome in mysearch.gif
Avrei potuto recuperare una immagine da internet o da qualsiasi altra fonte, ho scelto una immagine del template grafico per convenienza; torniamo al progetto e, con i pulsanti di progettazione pannello, inseriamo una immagine; nella Gallery non è ancora presente quindi Aggiungi Immagine e aggiungiamo il file mysearch.gif.
Doppio clic sul Campo Statico immagine, e modifichiamo nelle proprietà il nome assegnando Button Search; un aspetto da tenere sempre presente: solo il campo statico di tipo Command Button può essere cliccato dall’utente, gli altri campi statici non hanno questa funzionalità di default, ma è necessario impostarla nelle Proprietà Visuali scegliendo la voce Cliccabile. Confermo le modifiche ed ora attaccando una procedura al campo statico immagine questa verrà richiamata ed eseguita: ButtonSearch => Tasto Destro AggiungiProcedura.
Public void ButtonSearch {
Prenotazione docPrenotazione = PRENOTAZIONE.document
If (docPrenotazione != null) {
RicercaAppartamento.show(Modal)
}
}
La prima parte per il richiamo della videata è a posto, pensiamo adesso al finale: cosa succede quando l’utente conferma o annulla? Viene emesso un evento sulla videata chiamante, quindi sulla videata Prenotazione nel nostro caso, e precisamente l’evento denominato EndModal; possiamo sottoscriverci all’evento nella videata Prenotazione per eseguire operazioni: Albero di progetto, Videata Prenotazioni => tasto destro Eventi => Aggiungi End Modal.
Nell’evento troviamo due parametri fondamenti e precisamente il parametro LookupForm che indica quale videata è stata chiusa e il parametro Result che indica se la chiusura è avvenuta confermando o annullando: e il record scelto? Cominciamo a scrivere il codice e scopriamo anche come recuperare il record scelto.
Event EndModal() {
Prenotazione docPrenotazione = PRENOTAZIONE.document;
if (docPrenotazione != null) {
if (LookupForm = RicercaAppartamento.me and Result) {
docPrenotazione.idAppartamento = RicercaAppartamento.Id.
}
}
}
Nell’evento EndModal rimane in memoria il record selezionato dall’utente, e possiamo riferirci, nel codice, a un valore presente in un’altra videata: questa operazione va contro a qualsiasi regola di programmazione soprattutto programmazione Object Oriented, ma questo è l’unico caso in cui possiamo farlo ed infatti la scrittura manuale non è possibile, possiamo farlo solo trascinando il campo di pannello dalla videata di ricerca al codice della EndModal.
Ovviamente, tutti i campi del record sia visibili che invisibili possono essere prelevati nell’evento EndModal, e ripeto questo è l’unico caso in cui posso riferirmi a elementi di altre videate.
Possiamo eseguire e testare se tutto funziona correttamente.
Vi consiglio, se avete un attimo per esercitarvi di creare una videata di Ricerca Clienti, ed impostarne la ricerca a partire sempre dalla videata Prenotazioni.
La tipologia di videata di Ricerca è di certo molto gradita dall’utilizzatore, in quanto consente di effettuare ricerche avanzate, ampliando le funzionalità offerte da una semplice casella a discesa.
Ultima modifica: 19/03/2021 / Validità: da 20.5.8000