Compartir por


Usar formularios y eventos de campo

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Puede agregar scripts de eventos OnLoad y OnSave para formularios y eventos OnChange en cada campo. Las pestañas tienen un evento TabStateChange y los IFRAMES tienen un evento OnReadyStateComplete. Los controladores del evento PreSearch y eventos creados por el control de flujo de proceso de negocio solo se pueden agregar y quitar usando métodos para los controles respectivos.

Nota

Los eventos en el formulario están deshabilitados para el formulario de edición masiva. El formulario de edición masiva aparece cuando se editan varios registros en una lista.

En este tema

Evento OnLoad

Evento OnSave

Evento OnChange

Evento TabStateChange

Evento OnReadyStateComplete

Evento PreSearch

Eventos de control del flujo de proceso de negocio

Evento OnLoad

El evento OnLoad aparece cuando el formulario se ha cargado. No se puede evitar que se cargue la ventana. Use el evento OnLoad para preparar los datos en el formulario que se va a usar. Las acciones que se pueden realizar mediante el evento OnLoad incluyen lo siguiente:

  • Realizar cálculos basados en el cambio de valores.

  • Alertar a un usuario a una situación.

  • Deshabilitar los campos que no se deben actualizar.

Más información:Evento OnLoad

Evento OnSave

El evento OnSave no se corresponden con el evento estándar HTML OnSubmit. El evento OnSave se produce cuando:

  • El usuario hace clic en el botón Botón de autoguardado situado en la esquina inferior derecha del formulario, incluso cuando no hay datos modificados para guardar.

  • El código ejecuta el método Xrm.Page.data.entity.Guardar, incluso si no hay datos modificados para guardar.

  • El usuario navega fuera del formulario y hay datos sin guardar en el formulario.

  • Con autoguardado habilitado, 30 segundos después de que los datos han cambiado y hay datos sin guardar en el formulario.

  • El código ejecuta el método Xrm.Page.data.Guardar y hay datos sin guardar en el formulario.

  • El código ejecuta el método Xrm.Page.data.refresh que pasa un valor true al primer parámetro y hay datos sin guardar en el formulario.

Puede detectar qué acción se ha llevado a cabo para guardar el formulario mediante el método getSaveMode en los argumentos de evento de guardar recuperados del contexto de ejecución del método getEventArgs. Navegar fuera de un formulario cuando contiene datos sin guardar se corresponde con el comportamiento de "Guardar y cerrar" que se encuentra en los formularios de entidades que no se han actualizado.

El evento OnSave se puede cancelar para impedir que los datos se guarden. Por este motivo, es muy común usar el evento OnSave para validar datos.

Más información:Evento OnSave

Evento OnChange

El evento OnChange está disponible en todos los campos. Normalmente, el evento OnChange requiere dos condiciones para ser true:

  • Los datos en el campo deben cambiar.

  • El campo debe perder el enfoque.

Nota

Hay una excepción a este comportamiento que se aplica a los campos de dos opciones (booleanos) que tiene el formato para usar botones de opción o casillas. Para estos controles el evento se produce inmediatamente.

Este evento también aparece cuando los cambios de los datos del servidor se recuperan para actualizar un campo cuando se actualiza el formulario, como después de guardar un registro.

Utilizando el método Xrm.Page.data.entity atributo.fireOnChange también hará que se produzca este evento.

El evento OnChange no se produce si el campo se cambia mediante programación usando el método setValue. Si desea controladores de eventos para que el evento OnChange se ejecute después de configurar el valor, debe usar el método fireOnChange en el código.

Después del evento, serán revalidados los datos del campo. Esto indica que no se puede usar el evento para especificar datos que no son válidos.

Las acciones que se pueden realizar mediante el evento OnChange incluyen lo siguiente:

  • Realizar cálculos para cambiar otros campos basados en el cambio de valores.

  • Cambiar el formato de campos, como números de teléfono.

Más información:Evento OnChange de campo

Evento TabStateChange

Este evento se produce cuando unas pestaña se expande o se contrae. Es posible que desee diferir la ejecución del código hasta que se expanda una pestaña.

Nota

Este evento nunca se produce en Microsoft Dynamics 365 para tabletas porque las pestañas en ese cliente no se contraen.

Este evento es importante si usa el script para modificar la propiedad src de un control de IFRAME. Un IFRAME se actualizará cuando se expanda la ficha. Cualquier cambio en la propiedad src se eliminará. Si interactúa con la propiedad src de un IFRAME, debería incluir siempre este código en el evento TabStateChange en lugar del evento Onload.

Más información:Evento TabStateChange de pestañas

Evento OnReadyStateComplete

Cualquier script que interactúa con un IFRAME generará un error a menos que el contenido de IFRAME se haya cargado por completo. Este evento proporciona una ubicación para incluir el script que ejecuta en cuanto el contenido de IFRAME se haya cargado por completo.

Más información:Evento OnReadyStateComplete de IFRAME

Evento PreSearch

Use el método addPreSearch para agregar un controlador de eventos a un control para un atributo de búsqueda. No hay ninguna interfaz de usuario para agregar un controlador de eventos de forma manual. Use este evento con los métodos addCustomFilter, addCustomView y setDefaultView para controlar las vistas que se abren cuando los usuarios buscan un registro para establecerlo como el valor de un campo de búsqueda.

Más información:Evento PreSearch de control de búsqueda

Eventos de control del flujo de proceso de negocio

Microsoft Dynamics 365 (en línea y local) proporciona tres eventos para la interacción del usuario con el control del flujo de proceso de negocio.

No hay una interfaz de usuario para registrar scripts para estos eventos. Use los siguientes métodos en funciones registradas en el evento de formulario OnLoad para registrar las funciones de estos eventos.

Cada uno de estos métodos acepta una función como parámetro para agregar o quitar del controlador de eventos.Más información:Métodos para administrar controladores de eventos.

Ver también

Escriba código para formularios de Microsoft Dynamics 365
Use el modelo de objeto Xrm.Page
Referencia de scripting de formularios
Uso de JavaScript con Microsoft Dynamics 365
Referencia de programación del lado del cliente
Eventos de formulario (referencia del lado del cliente)
<events> (FormXml)

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright