Evento OnDynamicsProperties
copia linkTrascrizione
Iniziamo con l’analisi dell’evento, direi il più utilizzato, onDynamicProperties: questo evento viene emesso dal pannello in diverse situazioni:
Quali operazioni possiamo eseguire nell’evento: beh come potete considerare non operazioni complesse, in quanto questo evento viene emesso spesso, però possiamo eseguire codice per formattare i campi di pannello, abilitare o disabilitare campi, renderli visibili o invisibili: nella maggior parte dei casi, dunque, si utilizza questo evento per sistemare l’interfaccia a seconda dei valori dei campi di pannello.
Facciamo un esempio, o meglio modifichiamo un comportamento che già avevamo: nella videata Appartamenti, precisamente nel pannello Appartamenti, il campo Nome ha uno stile visuale Rosso Bianco (statico), vorrei questa colorazione rosso bianco solo per i record che hanno un Massimo Ospiti superiore a 8: quindi vorrei un alert visivo per gli appartamenti dove possono stare più persone.
Evento da considerare è proprio l’evento OnDynamicProperties perché potremo cambiare la formattazione a seconda di un valore: cominciamo a posizionarci nell’Albero di progetto -> Pannello Appartamenti -> Tasto Destro -> Eventi -> Aggiungo onDynamicProperties.
Ricordatevi ciò che vi ho detto: l’evento scatta per ogni riga nel layout List, per ogni scheda in layout Form: vuole quindi dire che non dobbiamo eseguire un ciclo sulle le righe presenti nel pannello perché il ciclo è già insito nella logica dell’evento: basta catturare il documento sotteso al pannello, e sarà l’elemento in formattazione in quel momento.
Event OnDynamicProperties {
Appartamento docAppartamento = APPARTAMENTI.document
If (docAppartamento != null) {
If (docAppartamento.OspitiMax >= 8 ) {
//Oggetto campo di pannello Nome
Nome.setVisualStyle = RossoBianco
}
}
}
Togliamo lo stile visuale in progettazione, così sarà applicato lo standard negli altri casi.
Prima di mandare in esecuzione, ricordiamoci che tutto funzionerà correttamente appena al server arriverà la modifica del campo OspitiMax, quindi il campo deve essere messo Attivo per avere la colorazione immediata: ora possiamo compilare.
Altro esempio nel pannello Prenotazioni, aggiungiamo l’evento onDynamicProperties e in questo caso vogliamo abilitare o disabilitare il pulsante Scheda a seconda se l’appartamento è presente oppure no.
Event OnDynamicProperties {
Prenotazione docPrenotazione = PRENOTAZIONI.document
If (docPrenotazione != null) {
If (length(docPrenotazione.idAppartamento) = 0) {
BottoneScheda.setEnabled(false)
}
}
}
Infatti se avete notato, ho lasciato in progettazione il campo statico Scheda come Abilitato e lo disattivo nell’evento.
- Quando il pannello deve disegnare una riga nel layout List: per ogni riga disegnata scatta il relativo onDynamic.
- Quando il pannello deve disegnare i dati nel layout Form.
- Ogni volta che i valori contenuti nel pannello cambiamo.
Quali operazioni possiamo eseguire nell’evento: beh come potete considerare non operazioni complesse, in quanto questo evento viene emesso spesso, però possiamo eseguire codice per formattare i campi di pannello, abilitare o disabilitare campi, renderli visibili o invisibili: nella maggior parte dei casi, dunque, si utilizza questo evento per sistemare l’interfaccia a seconda dei valori dei campi di pannello.
Facciamo un esempio, o meglio modifichiamo un comportamento che già avevamo: nella videata Appartamenti, precisamente nel pannello Appartamenti, il campo Nome ha uno stile visuale Rosso Bianco (statico), vorrei questa colorazione rosso bianco solo per i record che hanno un Massimo Ospiti superiore a 8: quindi vorrei un alert visivo per gli appartamenti dove possono stare più persone.
Evento da considerare è proprio l’evento OnDynamicProperties perché potremo cambiare la formattazione a seconda di un valore: cominciamo a posizionarci nell’Albero di progetto -> Pannello Appartamenti -> Tasto Destro -> Eventi -> Aggiungo onDynamicProperties.
Ricordatevi ciò che vi ho detto: l’evento scatta per ogni riga nel layout List, per ogni scheda in layout Form: vuole quindi dire che non dobbiamo eseguire un ciclo sulle le righe presenti nel pannello perché il ciclo è già insito nella logica dell’evento: basta catturare il documento sotteso al pannello, e sarà l’elemento in formattazione in quel momento.
Event OnDynamicProperties {
Appartamento docAppartamento = APPARTAMENTI.document
If (docAppartamento != null) {
If (docAppartamento.OspitiMax >= 8 ) {
//Oggetto campo di pannello Nome
Nome.setVisualStyle = RossoBianco
}
}
}
Togliamo lo stile visuale in progettazione, così sarà applicato lo standard negli altri casi.
Prima di mandare in esecuzione, ricordiamoci che tutto funzionerà correttamente appena al server arriverà la modifica del campo OspitiMax, quindi il campo deve essere messo Attivo per avere la colorazione immediata: ora possiamo compilare.
Altro esempio nel pannello Prenotazioni, aggiungiamo l’evento onDynamicProperties e in questo caso vogliamo abilitare o disabilitare il pulsante Scheda a seconda se l’appartamento è presente oppure no.
Event OnDynamicProperties {
Prenotazione docPrenotazione = PRENOTAZIONI.document
If (docPrenotazione != null) {
If (length(docPrenotazione.idAppartamento) = 0) {
BottoneScheda.setEnabled(false)
}
}
}
Infatti se avete notato, ho lasciato in progettazione il campo statico Scheda come Abilitato e lo disattivo nell’evento.
Ultima modifica: 05/05/2022 / Validità: da 20.5.8000