Controladores de eventos

Completado

La lógica de scripts de cliente se ejecuta como controladores de eventos para eventos de formulario. Debe registrar sus controladores de eventos para que se ejecute su lógica. El registro para eventos comunes se puede realizar a través del cuadro de diálogo de propiedades del formulario o desde el código. Algunos eventos solo se pueden registrar con código. Los controladores de eventos pueden ejecutarse en varios formularios, pero deben registrarse por separado en cada uno.

Registro a través de las propiedades del formulario

El registro de controladores de eventos mediante propiedades de formulario crea una configuración estática de controladores de eventos en el momento del diseño. Cada vez que se carga el formulario, se ejecutan los mismos controladores de eventos. A diferencia de cuando registra el controlador de eventos con código, la lógica puede determinar qué se debe registrar.

En el diseñador de formularios, puede registrar controladores de eventos para los siguientes eventos:

  • Formulario: este controlador le permite registrar los controladores de eventos OnLoad y OnSave.

  • Pestañas: este controlador le permite registrar eventos para cada pestaña del formulario, para cambiar el estado de la pestaña. Por lo general, esto se usa para saber si una pestaña está expandida, para que pueda hacer algo como cargar datos dinámicamente.

  • Columnas: este controlador le permite registrar un controlador de eventos si se cambian los datos de la columna.

El siguiente es un ejemplo de cómo registrar un controlador de eventos OnLoad para la tabla de cuentas.

Un patrón común es registrar un controlador OnLoad y luego registrar los controladores de eventos restantes a través del código de la lógica del controlador de eventos OnLoad. La ventaja de este enfoque es que cuando necesita que su lógica se ejecute en varios formularios, no tiene que registrar todos los controladores de eventos en cada formulario. La otra ventaja es que si necesita determinar dinámicamente algunos de los controladores de eventos, puede usar la lógica para decidir si registrar un controlador. Por ejemplo, es posible que desee omitir el registro de un controlador de eventos para una columna si puede determinar, cuando se carga el formulario y si esta columna es de solo lectura u oculta.

Registro con código

El registro de controladores de eventos mediante código es posible para todos los controladores, excepto OnLoad, que debe registrarse mediante la configuración. Puede usar el controlador OnLoad para registrar otros controladores del código. El siguiente es un ejemplo de cómo registrar un controlador OnChange en la columna de número de cuenta en la tabla de cuentas, realizando los siguientes pasos:

  • Cree una función que se ejecute en el evento OnLoad del formulario de cuenta.

  • En esa función, llame a addOnChange para registrar la función a llamar cuando cambie la columna del número de cuenta.

  • Registre en las propiedades del formulario de cuenta el controlador de eventos OnLoad.

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');
}

Este código muestra una notificación en el nivel de formulario cada vez que cambien los datos de la columna del número de cuenta.

Hay muchos otros eventos del lado del cliente para los que puede registrar controladores.