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 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.
OnStageChange
Aparece cuando cambia una fase.Más información:Evento OnStageChange.OnStageSelected
Se produce cuando se selecciona una fase.Más información:Evento OnStageSelected.OnProcessStatusChange
Aparece cuando cambia un estado de proceso de instancia.Más información:Evento OnProcessStatusChange.
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.
Xrm.Page.data.process.addOnStageChange
Xrm.Page.data.process.addOnStageSelected
Xrm.Page.data.process.removeOnStageChange
Xrm.Page.data.process.removeOnStageSelected
Xrm.Page.data.process.addOnProcessStatusChange
Xrm.Page.data.process.removeOnProcessStatusChange
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