Gestori eventi
La logica degli script client viene eseguita sotto forma di gestori eventi per gli eventi del modulo. È necessario registrare i gestori eventi per poter eseguire la logica. È possibile eseguire la registrazione per gli eventi comuni tramite la finestra di dialogo delle proprietà del modulo oppure dal codice. Alcuni eventi possono essere registrati solo con il codice. È possibile eseguire i gestori eventi su più moduli ma è necessario registrarli separatamente su ciascuno di essi.
Registrazione tramite le proprietà del modulo
La registrazione di un gestore eventi mediante le proprietà del modulo crea una configurazione statica del gestore eventi in fase di progettazione. Ogni volta che si carica il modulo, si eseguono gli stessi gestori eventi. A differenza della registrazione del gestore eventi con codice, la logica può determinare cosa è necessario registrare.
Nella finestra di progettazione moduli è possibile registrare gestori eventi per gli eventi seguenti:
Modulo: questo gestore permette di registrare i gestori eventi OnLoad e OnSave.
Schede: questo gestore permette di registrare gli eventi per ciascuna scheda nel modulo per la modifica dello stato di una scheda. Viene usato in genere per sapere se una scheda è espansa in modo da poter eseguire un'azione, ad esempio caricare dinamicamente i dati.
Colonne: questo gestore permette di registrare un gestore eventi se i dati delle colonne vengono modificati.
Di seguito è riportato un esempio di registrazione di un gestore eventi OnLoad per la tabella account. Di seguito è riportato un esempio di gestore eventi Form.
Un modello comune consiste nel registrare un gestore OnLoad e nel registrare i restanti gestori eventi tramite codice nella logica del gestore eventi OnLoad. Il vantaggio di questo approccio consiste nel fatto che non è necessario registrare tutti i gestori eventi su ciascun modulo quando la logica viene usata su più moduli. Un altro vantaggio consiste nella possibilità di usare la logica per decidere se registrare un gestore, se è necessario determinare dinamicamente alcuni gestori eventi. Ad esempio, può essere opportuno non effettuare la registrazione di un gestore eventi per una colonna se, al momento del caricamento del modulo, è possibile determinare se la colonna è di sola lettura o è nascosta.
Registrazione tramite codice
La registrazione dei gestori eventi tramite il codice è possibile per tutti i gestori tranne OnLoad, che deve essere registrato usando la configurazione. È quindi possibile usare il gestore OnLoad per registrare altri gestori usando il codice. Di seguito è riportato un esempio di registrazione di un gestore OnChange nella colonna del numero account nella tabella account effettuando i passaggi seguenti:
Creare una funzione da eseguire nell'evento OnLoad del modulo account.
In quella funzione, chiamare addOnChange per registrare la funzione da chiamare quando la colonna del numero account cambia.
Registrare il gestore eventi OnLoad nelle proprietà del modulo account.
function LearnLab_handleAccountOnLoad(executionContext)
{
var formContext = executionContext.getFormContext();
formContext.getAttribute('accountnumber').addOnChange(LearnLab_handleOnChangeAccountNumber)
}
function LearnLab_handleOnChangeAccountNumber(executionContext)
{
var formContext = executionContext.getFormContext();
formContext.ui.setFormNotification('Check other systems', 'INFO', 'AcctNumber');
}
Questo codice visualizza una notifica a livello di modulo ogni volta che i dati della colonna numero account cambiano.
Vi sono molti altri eventi lato client per cui è possibile registrare i gestori.