Personalizar um modelo de formulário usando um script

Observação:  Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. As informações foram úteis? Dê sua opinião no final desta página. Aqui está o artigo em inglês para facilitar a referência.

Se você estiver familiarizado com a gravação de script, você pode adicionar um script a seu modelo de formulário do Microsoft Office InfoPath usando o Microsoft JScript ou a linguagem de script do Microsoft Visual Basic Scripting Edition (VBScript). Adicionando script permite que você personalize seu modelo de formulário, além do que está disponível com regras, fórmulas, validação de dados ou formatação condicional. Por exemplo, você pode adicionar um script que cria e envia uma mensagem de email quando um usuário alterna o modo de exibição em um formulário baseado no modelo de formulário. Você pode configurar um modelo de formulário para criar e enviar uma mensagem de email usando um script.

Neste artigo

Visão geral

Considerações sobre compatibilidade

Definir a linguagem de script para um modelo de formulário

Exibir uma mensagem de cada vez que ocorre um evento

Adicionar um script que é executado quando um usuário salva os dados do formulário

Adicionar um script que é executado quando um usuário envia os dados do formulário

Adicionar um script que é executada quando um usuário clica em um botão

Adicionar um script que é executado quando formulários existentes são mesclados

Adicionar um script para atualizar os formulários existentes

Adicionar um script para outros eventos

Visão geral

Você pode personalizar o seu modelo de formulário do InfoPath usando regras, fórmulas, validação de dados e formatação condicional. Embora esses recursos são muito flexíveis e podem lidar com uma ampla variedade de tarefas, algumas tarefas estão além dos recursos desses recursos. Por exemplo, você não pode usar regras para enviar uma mensagem de email quando um usuário insere um valor em uma caixa de texto em um formulário. Se você precisa personalizar seu modelo de formulário de uma maneira que seja além dos recursos esses recursos e você estiver familiarizado com a gravação de scripts usando a linguagem de script JScript ou VBScript, você pode adicionar um script que é executado quando um usuário abre um novo formulário ou modifica uma ex formulário de ome com base em seu modelo de formulário.

Quando você adiciona um script a um modelo de formulário, o InfoPath inicia o Script Editor MSE (Microsoft), que permite adicionar, editar e depurar script em um modelo de formulário e coloca o cursor no seu evento escolhido. InfoPath adicionará automaticamente um manipulador de eventos para o script. Um manipulador de eventos é o código de função em um modelo de formulário do InfoPath que responde a uma ação do usuário ou uma alteração aos dados XML em um formulário. Por exemplo, se quiser que seus usuários para salvar seus formulários para diversos locais de rede, você pode adicionar um script ao manipulador de eventos OnSaveRequest . Quando você adiciona um script para ser executada quando o usuário salva um formulário baseado em seu modelo de formulário, o InfoPath inicia o editor de scripts e adiciona um dos seguintes códigos para o script.

Observação: O código que adiciona InfoPath depende de sua linguagem de script escolhida.

JScript

//=======
// The following function handler is created by Microsoft Office InfoPath.
// Do not modify the name of the function, or the name and number of arguments.
//=======
function XDocument::OnSaveRequest(eventObj)
{
// Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation();
// Write the code to be run after saving here.
eventObj.ReturnStatus = true;
}

VBScript

'=======
' The following function handler is created by Microsoft Office InfoPath.
' Do not modify the name of the function, or the name and number of arguments.
'=======
Sub XDocument_OnSaveRequest(eventObj)
' Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation
' Write the code to be run after saving here.
eventObj.ReturnStatus = True
End Sub

Você pode adicionar código nos locais apropriados no caso de manipulador que salva o formulário para o local de rede diferente. Quando um usuário salva um formulário baseado neste modelo de formulário, o InfoPath executa o código no manipulador de eventos OnSaveRequest .

Observação: Este artigo fornece uma visão geral da criação de scripts em um modelo de formulário. Para saber mais sobre o Microsoft Script Editor e objetos específicos, métodos, eventos e propriedades usadas no InfoPath, consulte Referência do desenvolvedor do InfoPath.

InfoPath adicionará automaticamente manipuladores para todos, exceto um dos seguintes eventos.

Manipulador de eventos

Descrição

Etapas para criar

OnAfterChange

Esse evento ocorre depois que um usuário altera o valor no controle especificado vinculado a um campo. Por exemplo, você pode exibir um painel de tarefas HTML personalizado depois que um usuário seleciona um item em um controle de caixa de listagem. Este evento é executado após o evento OnValidate .

Um controle no modelo de formulário ou um campo no painel de tarefas Fonte de dados de atalho, aponte para programação no menu de atalho e, em seguida, clique Em após alterar evento.

OnAfterImport

Este evento é executada após o usuário mescla com êxito vários formulários em um formulário.

Adicione manualmente a declaração de manipulador de eventos OnAfterImport diretamente para o arquivo de script usando MSE. Este manipulador de eventos não pode ser criado no modo de design.

OnBeforeChange

Este evento é executado após o valor em um controle de alterações de um usuário e antes que o valor é adicionado ao campo especificado associado ao controle. Por exemplo, você pode impedir que um usuário adicionando uma linha adicional antes de preencher a última linha em uma tabela de repetição.

Um controle no modelo de formulário ou um campo no painel de tarefas Fonte de dados de atalho, aponte para programação no menu de atalho e clique Em antes de alterar evento.

OnClick

Este evento é executado quando um usuário clica em um botão associado ao evento. Este evento está disponível após adicionar um botão ao modelo de formulário. Por exemplo, você pode executar um cálculo complexo usando os valores nos campos na fonte de dados principal quando um usuário clica no botão.

Clique duas vezes no controle de botão e, na guia Geral da caixa de diálogo Propriedades do botão, clique em Editar código do formulário.

OnContextChange

Este evento é executado quando o foco muda no formulário. Por exemplo, este evento é executado quando um usuário navega de uma caixa de texto para um selecionador de data, ou quando um usuário alterna entre os modos de exibição. Esse evento ocorre depois que todos os outros eventos ocorreram.

No menu Ferramentas, aponte para programação e clique Em evento de alteração de contexto.

OnLoad

Este evento é executado sempre que um usuário cria um novo formulário ou abre um formulário existente com base no seu modelo de formulário. Por exemplo, você pode copiar uma lista de itens de uma fonte de dados secundária à fonte de dados principal quando um usuário abre o formulário.

No menu Ferramentas, aponte para programação e clique Em evento de carga.

OnMergeRequest

Este evento é executado quando formulários com base no seu modelo de formulário são mesclados. Por exemplo, você pode exibir o número de formulários que foram mescladas para dar um status de um usuário durante a operação de mesclagem.

No menu Ferramentas, clique em Opções de formulário. Na lista categoria, clique em Avançado. Em Mesclar Formulários, marque a caixa de seleção Mesclar usando código personalizado e clique em Editar.

OnSaveRequest

Este evento é executado quando um usuário salva um formulário baseado em seu modelo de formulário. Por exemplo, você pode salvar o formulário baseado neste modelo de formulário para mais de um local quando um usuário salva o formulário. InfoPath adiciona duas linhas adicionais de código para este evento: uma linha que salva o formulário e outra linha que informa se o InfoPath salvo com êxito o formulário.

No menu Ferramentas, clique em Opções de formulário. Na lista categoria, clique em Abrir e salvar. Em comportamento de salvar, marque a caixa de seleção Salvar usando código personalizado e clique em Editar.

OnSign

Este evento é executado quando um usuário aplica uma assinatura digital a um formulário. Por exemplo, você pode adicionar dados adicionais à assinatura digital de um formulário de relatório de despesas quando um usuário entra-lo.

No menu Ferramentas, aponte para programação e clique Em evento de entrada.

OnSubmitRequest

Este evento é executado quando um usuário envia sua dados de formulário. Por exemplo, você poderá enviar os dados do formulário para um serviço Web seguro quando o usuário clica em Enviar no menu arquivo. Como o InfoPath não oferece suporte a uma conexão de dados para um serviço Web seguro, você precisa adicionar uma conexão de dados personalizados que funciona com o seu serviço da Web seguro.

No menu Ferramentas, clique em Opções de envio. Marque a caixa de seleção Permitir que os usuários enviarem este formulário, clique em Executar ação personalizada usando código e, em seguida, clique em Editar código.

OnSwitchView

Este evento é executada quando um usuário abre um formulário com base no seu modelo de formulário ou alterna para outro modo de exibição do formulário. Por exemplo, quando um usuário alterna para um modo de exibição específico, você pode criar uma mensagem de email que contém os dados dos campos na fonte de dados principal do formulário.

No menu Ferramentas, clique em programação e clique Em Alternar exibição evento.

OnValidate

Este evento é executado quando um usuário altera o valor em um controle acoplado a um campo. Por exemplo, quando o usuário altera o valor em um controle específico, você pode calcular um novo valor para outro controle usando o número que o usuário inseriu e um número que está no script. Esse evento ocorre após a execução do manipulador de eventos OnBeforeChange .

Um controle no modelo de formulário ou um campo no painel de tarefas Fonte de dados de atalho, aponte para programação no menu de atalho e, em seguida, clique Em Após validar evento.

OnVersionUpgrade

Este evento é executado quando um usuário abre um formulário existente e o número de versão do modelo de formulário usado pelo formulário existente é mais antigo do que o número da versão do modelo de formulário no local de publicação. Quando um usuário abre um formulário existente, o InfoPath verifica o número da versão do modelo de formulário associado ao formulário existente. Se o modelo de formulário tem um número de versão mais recente, o InfoPath executa o manipulador de eventos OnVersion quando o usuário abre o formulário existente. Por exemplo, imagine que você adiciona um novo campo a um modelo de formulário existente e publicá-lo novamente, e você deseja que o novo campo a ser adicionado à fonte de dados principal se um usuário abrir um formulário existente. Este evento adiciona o novo campo à fonte de dados principal quando um usuário abre um formulário existente.

No menu Ferramentas, clique em Opções de formulário. Na lista categoria, clique em controle de versão. Na lista na atualização de versão, clique em Usar evento personalizado e clique em Editar.

Início da página

Considerações sobre compatibilidade

É possível adicionar o script a um modelo de formulário compatível com o navegador. Você pode adicionar script somente a um modelo de formulário cujos formulários serão preenchidos no InfoPath. Você pode personalizar um modelo de formulário compatível com o navegador somente usando código gerenciado.

Início da página

Definir a linguagem de script para um modelo de formulário

Para personalizar um modelo de formulário usando o script, você pode usar o Microsoft JScript ou Microsoft Visual Basic Scripting Edition (VBScript). Por padrão, o InfoPath está configurado para adicionar o script usando JScript. Se seu modelo de formulário não contém qualquer script ou código gerenciado e você preferir usar VBScript como linguagem de script, você pode alterar a linguagem de script de seu modelo de formulário para VBScript. Você não pode usar as duas linguagens de script no mesmo modelo de formulário.

Se o modelo de formulário já contiver script em um idioma e você deseja usar outro idioma, você precisará salvar o script existente para que você pode converter o script em outro idioma, remover o script do modelo de formulário através das Opções de formulário caixa de diálogo caixa e, em seguida, adicione o script convertido para o modelo de formulário. O InfoPath não é possível converter scripts para um novo idioma de script. Alterando a linguagem de script na caixa de diálogo Opções de formulário afeta apenas este modelo de formulário. Outros modelos de formulário terá JScript como a linguagem de script padrão.

  1. No menu Ferramentas, clique em Opções de formulário.

  2. Na lista categoria, na caixa de diálogo Opções de formulário, clique em programação.

  3. Na lista de linguagem de código do modelo de formulário, em linguagem de programação, clique em VBScript.

    Observações: 

    • Depois de definir a linguagem de script e criar um ou mais manipuladores de eventos para um modelo de formulário, você não pode alterar a linguagem de script do modelo de formulário.

    • Se você tiver instalado o Microsoft Visual Studio 2005 Tools for Applications, o idioma padrão é Microsoft Visual Basic .NET. Você ainda pode usar este procedimento para alterar a linguagem de script para VBScript.

Início da página

Exibir uma mensagem de cada vez que ocorre um evento

Se você quiser saber o que executar manipuladores em resposta a uma ação ou outro evento, você pode adicionar código temporário para exibir uma caixa de mensagem sempre que o manipulador de eventos é executado. Você deve usar este código apenas para determinar quando um manipulador de eventos é executado. Depois de adicionar este código, você pode usar a visualização para exibir um formulário baseado neste modelo de formulário ou para publicar o modelo de formulário e, em seguida, criar um novo modelo de formulário. Alguns manipuladores de eventos executadas somente se você criar um formulário depois que você publicar o modelo de formulário. Você pode executar uma ação que você acha que poderá se deparar manipulador de eventos. Quando o manipulador de eventos é executado, você verá uma caixa de mensagem.

Depois de determinar quais ações ou eventos executados manipulador de eventos, remova o código e retomar a criação do modelo de formulário. Se você não remover este código e, em seguida, publicar o modelo de formulário, os usuários verão esta caixa de mensagem quando o manipulador de eventos é executado.

  1. Adicione seu manipulador de eventos.

  2. Para adicionar o código no JScript, digite XDocument.UI.Alert ("o evento acabou de evento de nome"); Substitua o nome do seu manipulador de eventos. Por exemplo, se você adicionar este código ao manipulador de eventos OnValidate , você digitaria XDocument.UI.Alert ("o OnValidate acabou de manipulador de eventos");

  3. Para adicionar o código VBScript, digite XDocument.UI.Alert ("o evento acabou de evento de nome") por exemplo, se você adicionar este código ao manipulador de eventos OnSaveRequest , você digitaria XDocument.UI.Alert ("o OnSaveRequest acabou de manipulador de eventos")

  4. Para testar o código, clique em Visualizar no menu arquivo, ou pressione CTRL + SHIFT + B e execute uma ação do usuário que pode iniciar o evento. Quando o evento com a linha de código ocorre, uma caixa de mensagem deverá exibir sua mensagem.

    Observação: Alguns eventos podem exigir que você publicar o modelo de formulário e, em seguida, criar um formulário baseado neste modelo de formulário antes de executar uma ação do usuário para iniciar o evento.

  5. Antes de publicar o modelo de formulário e permitir que seus usuários preencher formulários baseados neste modelo de formulário, exclua o código que você usou para exibir a caixa de mensagem.

Início da página

Adicionar um script que é executado quando um usuário salva os dados do formulário

  1. No menu Ferramentas, clique em Opções de formulário.

  2. Na lista categoria, na caixa de diálogo Opções de formulário, clique em Abrir e salvar.

  3. Em comportamento de salvar, marque a caixa de seleção Salvar usando código personalizado e clique em Editar. O Editor de scripts Microsoft começa com o cursor no manipulador de eventos OnSaveRequest .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnSaveRequest(eventObj)
    {
    // Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation();
    // Write the code to be run after saving here.
    eventObj.ReturnStatus = true;
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnSaveRequest(eventObj)
    ' Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation
    ' Write the code to be run after saving here.
    eventObj.ReturnStatus = True
    End Sub
  4. Siga um destes procedimentos ou ambos:

    • Para adicionar um script que é executado antes que o InfoPath salva o formulário, substitua o comentário Write the code to be run before saving here.seu código.

    • Para adicionar um script que seja executada após o InfoPath salva o formulário, substitua o comentário Write the code to be run after saving here. seu código.

  5. Para testar as alterações, clique Visualizar na barra de ferramentas Padrão ou pressione CTRL+SHIFT+B.

    Observação: Se o manipulador de eventos é executado somente depois que você cria um formulário baseado no modelo de formulário, publicar o modelo de formulário clicando em Publicar no menu arquivo e, em seguida, conclua o Assistente de publicação. Depois de publicar o modelo de formulário, crie um formulário e, em seguida, execute uma ação para executar o manipulador de eventos.

Início da página

Adicionar um script que é executado quando um usuário envia os dados do formulário

  1. No menu Ferramentas, clique em Opções de envio.

  2. Na caixa de diálogo Opções de envio, marque a caixa de seleção Permitir que os usuários enviarem este formulário.

  3. Clique em Executar ação personalizada usando código e, em seguida, clique em Editar código. O Editor de scripts Microsoft começa com o cursor no manipulador de eventos OnSubmitRequest .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnSubmitRequest(eventObj)
    {
    // If the submit operation is successful, set
    // eventObj.ReturnStatus = true;
    // Write your code here
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnSubmitRequest(eventObj)
    ' If the submit operation is successful, set
    ' eventObj.ReturnStatus = True
    ' Write your code here
    End Sub
  4. Substitua o comentário If the submit operation is successful, set eventObj.ReturnStatus = true Write your code here seu código.

  5. Para testar as alterações, clique Visualizar na barra de ferramentas Padrão ou pressione CTRL+SHIFT+B.

Início da página

Adicionar um script que é executada quando um usuário clica em um botão

  1. Adicionar um novo botão para um modo de exibição no modelo de formulário e clique duas vezes no botão.

    Observação: Se você estiver adicionando script a um botão existente, clique duas vezes no botão existente, em vez disso.

  2. Clique na guia Geral.

  3. Clique em Editar código do formulário. O Editor de scripts Microsoft começa com o cursor no manipulador de eventos OnClick para esse botão.

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function Button Name::OnClick(eventObj)
    {
    // Write your code here
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub Button Name_OnClick(eventObj)
    ' Write your code here
    End Sub
  4. Substitua o comentário Write your code here seu código.

  5. Para testar as alterações, clique Visualizar na barra de ferramentas Padrão ou pressione CTRL+SHIFT+B.

Início da página

Adicionar um script que é executado quando formulários existentes são mesclados

  1. No menu Ferramentas, clique em Opções de formulário.

  2. Na lista categoria, na caixa de diálogo Opções de formulário, clique em Avançado.

  3. Em Mesclar Formulários, marque a caixa de seleção Habilitar mesclagem de formulários.

  4. Marque a caixa de seleção Mesclar usando código personalizado e clique em Editar. O Editor de scripts Microsoft começa com o cursor no manipulador de eventos OnMergeRequest .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnMergeRequest(eventObj)
    {
    // Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM);
    eventObj.ReturnStatus = true;
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnMergeRequest(eventObj)
    ' Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM)
    eventObj.ReturnStatus = True
    End Sub
  5. Substitua o comentário Write the code that handles each form being merged here. seu código.

  6. Para testar o código nesse caso, publicar o modelo de formulário, criar vários formulários baseados neste modelo de formulário e, em seguida, mesclar os modelos de formulário.

    Observação: Encontre links para obter mais informações sobre como publicar seu modelo de formulário na seção Consulte também.

Início da página

Adicionar um script para atualizar os formulários existentes

Se você atualizou um modelo de formulário publicado anteriormente e que você deseja atualizar os formulários existentes baseados nesse modelo de formulário, você pode adicionar o script para o modelo de formulário atualizado que é executada quando um usuário abre um dos formulários existentes. Quando um usuário abre um formulário existente, o InfoPath verifica o número de versão de seu modelo de formulário associado no local de publicação. Se o número de versão do modelo de formulário no local de publicação é mais recente do que o número da versão do formulário existente, indicando que ele foi atualizado, o InfoPath executa o código neste evento para atualizar o formulário existente.

  1. No menu Ferramentas, clique em Opções de formulário.

  2. Na lista categoria, na caixa de diálogo Opções de formulário, clique em controle de versão.

  3. Na lista na atualização de versão, clique em Usar evento personalizado e clique em Editar. O Editor de scripts Microsoft começa com o cursor no manipulador de eventos OnVersionUpgrade .

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnVersionUpgrade(eventObj)
    {
    // Write your code here
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnVersionUpgrade(eventObj)
    ' Write your code here
    End Sub
  4. Substitua o comentário Write your code here seu código.

  5. Para testar o código nesse caso, publicar o modelo de formulário, criar vários formulários baseado neste modelo de formulário, modificar e publicar uma versão atualizada do modelo de formulário e, em seguida, abra um formulário existente com base na versão mais antiga deste modelo de formulário.

    Observação: Encontre links para obter mais informações sobre como publicar seu modelo de formulário na seção Consulte também.

Início da página

Adicionar um script para outros eventos

Este procedimento pode ser usado para adicionar os seguintes manipuladores de eventos a seu modelo de formulário:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • No menu Ferramentas, aponte para programação e, em seguida, clique no evento para adicionar ao manipulador de eventos. O Editor de scripts Microsoft começa com o cursor no manipulador de eventos que você selecionou.

  • Substitua o comentário Write your code here seu código.

Início da página

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×