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 Botão para salvar automaticamente 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.

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