Usar eventos de formulário e de campo
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
É possível adicionar scripts para o OnLoad e eventos do OnSave para formulários e eventos do OnChange de cada campo. As guias têm um evento TabStateChange e IFRAMES têm um evento OnReadyStateComplete. Manipuladores para o evento PreSearch e eventos levantados pelo controle de fluxo de processos empresarial podem ser adicionados e removidos usando métodos para controles respectivos.
Observação
Eventos no formulário são desabilitados para o formulário de edição em massa. O formulário de edição em massa é exibido quando vários registros em uma lista são editados.
Neste tópico
Evento OnLoad
Evento OnSave
Evento OnChange
Evento TabStateChange
Evento OnReadyStateComplete
Evento de pré-pesquisa
Eventos de controle do fluxo do processo empresarial
Evento OnLoad
O evento OnLoad ocorre depois que o formulário for carregado. Não pode impedir o carregamento da janela. Use o evento OnLoad para preparar os dados no formulário para uso. As ações que podem ser executadas usando o evento OnLoad incluem:
A execução de cálculos com base em alterar valores.
Alerta um usuário sobre uma situação.
Desabilita os campos que não devem ser atualizados.
Para obter mais informações:Evento OnLoad
Evento OnSave
O evento OnSave não corresponde ao evento OnSubmit HTML padrão. O evento OnSave ocorrer quando:
O usuário clica no botão no canto inferior direito do formulário, mesmo quando não há dados alterados para serem salvos.
O código executa o método Xrm.Page.data.entity.Salvar, mesmo quando não houver dados alterados para serem salvos.
O usuário sai do formulário e não há dados não salvos no formulário.
Com o salvamento automático habilitado, 30 segundos depois dos dados terem sido alterados e houver dados não salvos no formulário.
O código executa o método Xrm.Page.data.Salvar e há dados não salvos no formulário.
O código executa o método Xrm.Page.data.refresh transmitindo um valor true como o primeiro parâmetro e há dados não salvos no formulário.
Você pode detectar qual ação foi executada para salvar o formulário usando o método getSaveMode nos argumentos do evento de salvamento recuperados do contexto de execução do método getEventArgs. Sair de um formulário quando contém dados não salvos corresponde ao comportamento “Salvar e Fechar” encontrado nos formulários para entidades que ainda não foram atualizadas.
O evento OnSave pode ser cancelado para impedir que os dados sejam salvos. Dessa forma, é muito comum usar o evento OnSave para validar dados.
Para obter mais informações:Evento OnSave
Evento OnChange
O evento OnChange está disponível em todos os campos. Geralmente, o evento OnChange exige duas condições para ser true:
Os dados no campo devem ser alterados.
O campo deverá perder o foco.
Observação
Há uma exceção para esse comportamento que se aplica aos campos de duas opções (booliano) que são formatados para usar botões de opção ou caixas de seleção. Para esses controles, o evento ocorre imediatamente.
Esse evento também ocorre quando alterações de dados no servidor são recuperadas para atualizar um campo quando o formulário é atualizado, como depois que um registro é salvo.
Usando o atributo Xrm.Page.data.entity. O método fireOnChange também fará com que esse evento ocorra.
O evento OnChange não ocorrerá se o campo for alterado programaticamente usando o método setValue. Se desejar que manipuladores de eventos do evento OnChange sejam executados depois que você definir o valor, deverá usar o método fireOnChange no código.
Depois do evento, os dados no campo serão revalidados. Isso significa que você não pode usar o evento para inserir dados válidos.
As ações que podem ser executadas usando OnChange incluem:
Realizar cálculos para modificar outros campos com base na alteração de valores.
Alterar a formatação de campos, como números de telefone.
Para obter mais informações:Evento OnChange de campo
Evento TabStateChange
Este evento ocorre quando uma guia é expandida ou recolhida. Convém adiar a execução do código até que a guia seja expandida.
Observação
Esse evento nunca ocorre no Microsoft Dynamics 365 para Tablets porque as guias nesse cliente não recolhem.
Este evento é importante se você usar um script para alterar a propriedade src de um controle IFRAME. Um IFRAME será atualizado quando a guia for expandida. Todas as alterações na propriedade src serão removidas. Se você interage com a propriedade src de um IFRAME, deve sempre incluir este código do evento TabStateChange em vez do evento Onload.
Para obter mais informações:Evento TabStateChange da guia
Evento OnReadyStateComplete
Qualquer script que interagir com um IFRAME falhará a menos que o conteúdo do IFRAME tenha concluído a carga. Este evento oferece um lugar para incluir o script que é executado assim que o conteúdo do IFRAME tiver concluído a carga.
Para obter mais informações:Evento IFRAME OnReadyStateComplete
Evento de pré-pesquisa
Use o método addPreSearch para adicionar um manipulador de eventos para um controle de um atributo de pesquisa. Não existe uma interface do usuário para adicionar manualmente um manipulador de eventos. Use este evento com os métodos addCustomFilter, addCustomView e setDefaultView para controlar as exibições abertas quando as pessoas pesquisam um registro para definir como o valor do campo de pesquisa.
Para obter mais informações:Evento PreSearch de controle de pesquisa
Eventos de controle do fluxo do processo empresarial
O Microsoft Dynamics 365 (online e local) fornece três eventos para a interação do usuário com o controle do fluxo de processo empresarial.
OnStageChange
Ocorre quando um estágio muda.Para obter mais informações:Evento OnStageChange.OnStageSelected
Ocorre quando um estágio é selecionado.Para obter mais informações:Evento OnStageSelected.OnProcessStatusChange
Ocorre quando o status de uma instância do processo é alterado.Para obter mais informações:Evento OnProcessStatusChange.
Não há interface do usuário para registrar scripts desses eventos. Use os seguintes métodos nas funções registradas no evento OnLoad de formulário para registrar suas funções desses 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 um destes métodos aceitam uma função como um parâmetro para adicionar ou remover do manipulador de eventos.Para obter mais informações:Métodos para gerenciar manipuladores de eventos.
Confira Também
Crie códigos para os formulários do Microsoft Dynamics 365
Use o modelo de objeto Xrm.Page
Referência rápida do script de formulário
Usar o Javascript com o Microsoft Dynamics 365
Referência de programação do cliente
Eventos de formulário (referência do cliente)
<events> (FormXml)
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais