Personalizar um modelo de formulário usando um script

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Se você estiver familiarizado com a produção de um script, poderá adicionar um script ao seu modelo de formulário do Microsoft Office InfoPath usando a linguagem de script Microsoft JScript ou Microsoft Visual Basic Scripting Edition (VBScript). A adição de um script permite a personalização do 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, é possível adicionar um script que crie e envia um email quando um usuário alternar o modo de exibição em um formulário com base no seu modelo de formulário. É possível configurar um modelo de formulário para criar e enviar um email somente 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

É possível personalizar seu modelo de formulário do InfoPath usando regras, fórmulas, validação de dados e formatação condicional. Embora esses recursos sejam muito flexíveis e possam lidar com uma variedade de tarefas, algumas tarefas estão além das capacidades desses recursos. Por exemplo, não é possível usar regras para enviar um email quando um usuário insere um valor em uma caixa de texto em um formulário. Se você precisar personalizar seu modelo de formulário de uma maneira que esteja além das capacidades desses recursos e você estiver familiarizado com a produção de scripts usando a linguagem de script JScript ou VBScript, você poderá adicionar um script que executa quando um usuário abre um novo formulário ou modifica um formulário existente que tem base no seu modelo de formulário.

Ao adicionar um script a um modelo de formulário, o InfoPath inicia o Editor de Scripts da Microsoft (MSE), que permite a adição, edição e depuração do script em um modelo de formulário e coloca o cursor no seu evento escolhido. O InfoPath adiciona automaticamente um manipulador de eventos ao script. Um manipulador de eventos é o código de função em um modelo de formulário do InfoPath que responde à ação do usuário ou a uma alteração aos dados XML em um formulário. Por exemplo, se quiser que os seus usuários salvem seus formulários em diversos locais de rede, você poderá adicionar um script ao manipulador de eventos OnSaveRequest. Ao adicionar um script para executar quando o usuário salva um formulário com base no seu modelo de formulário, o InfoPath inicia o editor de scripts e adiciona um dos seguintes códigos ao script.

Observação : O código adicionado pelo InfoPath depende da 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

É possível, em seguida, adicionar o código nos locais apropriados no manipulador de eventos que salva o formulário no local de rede diferente. Quando um usuário salva um formulário com base nesse modelo de formulário, o InfoPath executa o código no manipulador de eventos OnSaveRequest.

Observação : Este artigo fornece uma exibição de nível superior para a criação de scripts em um modelo de formulário. Para saber mais sobre o Editor de Script da Microsoft e sobre objetos específicos, métodos, eventos e propriedades usados no InfoPath, consulte a referência do desenvolvedor do InfoPath.

O InfoPath adiciona automaticamente os manipuladores de evento para todos os seguintes eventos, com exceção de um.

Event handler

Description

Steps for creating

OnAfterChange

This event runs after a user changes the value in the specified control bound to a field. For example, you can display a custom HTML task pane after a user selects an item in a list box control. This event runs after the OnValidate event.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Change Event.

OnAfterImport

This event runs after the user successfully merges several forms into one form.

Manually add the OnAfterImport event handler declaration directly to the script file by using MSE. This event handler cannot be created in design mode.

OnBeforeChange

This event runs after a user changes the value in a control and before the value is added to the specified field bound to that control. For example, you can prevent a user from adding an additional row before filling out the last row in a repeating table.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On Before Change Event.

OnClick

This event runs when a user clicks a button associated with this event. This event is available after you add a button to the form template. For example, you can perform a complex calculation by using the values in fields in the main data source when a user clicks the button.

Double-click the button control and then on the General tab of the Button Properties dialog box, click Edit Form Code.

OnContextChange

This event runs when the focus changes in the form. For example, this event runs when a user navigates from a text box to a date picker, or when a user switches views. This event occurs after all other events have occurred.

On the Tools menu, point to Programming, and then click On Context Change Event.

OnLoad

This event runs whenever a user creates a new form or opens an existing form based on your form template. For example, you can copy a list of items from a secondary data source to the main data source when a user opens the form.

On the Tools menu, point to Programming, and then click On Load Event.

OnMergeRequest

This event runs when forms based on your form template are merged. For example, you can display the number of forms that were merged to give a user a status during the merge operation.

On the Tools menu, click Form Options. In the Category list, click Advanced. Under Merge forms, select the Merge using custom code check box, and then click Edit.

OnSaveRequest

This event runs when a user saves a form based on your form template. For example, you can save the form based on this form template to more than one location when a user saves the form. InfoPath adds two additional lines of code to this event: a line that saves the form and another line that tells you if InfoPath successfully saved the form.

On the Tools menu, click Form Options. In the Category list, click Open and Save. Under Save behavior, select the Save using custom code check box, and then click Edit.

OnSign

This event runs when a user applies a digital signature to a form. For example, you can add additional data to the digital signature of an expense report form when a user signs it.

On the Tools menu, point to Programming, and then click On Sign Event.

OnSubmitRequest

This event runs when a user submits his or her form data. For example, you can submit the form data to a secure Web service when the user clicks Submit on the File menu. Since InfoPath does not support a data connection to a secure Web service, you need to add a custom data connection that works with your secure Web service.

On the Tools menu, click Submit Options. Select the Allow users to submit this form check box, click Perform custom action using Code, and then click Edit Code.

OnSwitchView

This event runs when a user opens a form based on your form template or switches to another view in the form. For example, when a user switches to a specific view, you can create an e-mail message that contains data from the fields in the form's main data source.

On the Tools menu, click Programming, and then click On Switch View Event.

OnValidate

This event runs when a user changes the value in a control bound to a field. For example, when the user changes the value in a specific control, you can calculate a new value for another control by using the number that the user entered and a number that is in the script. This event occurs after the OnBeforeChange event handler runs.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Validate Event.

OnVersionUpgrade

This event runs when a user opens an existing form and the version number of the form template used by the existing form is older than the version number of the form template in the publish location. When a user opens an existing form, InfoPath checks the version number of the form template associated with the existing form. If the form template has a newer version number, InfoPath runs the OnVersion event handler when the user opens the existing form. For example, imagine that you add a new field to an existing form template and republish it, and you want the new field to be added to the main data source if a user opens an existing form. This event adds the new field to the main data source when a user opens an existing form.

On the Tools menu, click Form Options. In the Category list, click Versioning. In the On version upgrade list, click Use custom event, and then click Edit.

Início da página

Considerações sobre compatibilidade

Não é possível adicionar um script ao browser-compatible form template. É possível adicionar um script somente a um modelo de formulário do qual os formulários serão preenchidos no InfoPath. É possível personalizar um modelo de formulário compatível com navegador somente usando o 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á contém script em um idioma e você deseja usar outro idioma, você precisa salvar o script existente para que você pode converter o script em outro idioma, remova o script do modelo de formulário através da caixa de diálogo Opções de formulário 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 sempre que um evento ocorrer

Se você quiser saber quais manipuladores de evento executam em resposta a uma ação ou outro evento, poderá adicionar um código temporário para exibir uma caixa de mensagem sempre que o manipulador de eventos for executado. Você deve usar esse código apenas para determinar quando um manipulador de eventos é executado. Após adicionar esse código, é possível usar a visualização para exibir um formulário com base nesse 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 evento executam apenas se você criar um formulário após publicar o modelo de formulário. É possível, em seguida, executar uma ação que você acredita que irá executar o manipulador de eventos. Quando o manipulador de eventos for executado, você verá uma caixa de mensagem.

Após determinar quais ações ou eventos executam o manipulador de eventos, remova o código e, em seguida, continue com a criação do modelo de formulário. Se você não remover esse código e, em seguida, publicar o modelo de formulário, seus usuários verão essa caixa de mensagem quando o manipulador de eventos for executado.

  1. Adicionar 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 Visualização no menu Arquivo ou pressione CTRL+SHIFT+B e, em seguida, execute uma ação de usuário que possa iniciar o evento. Quando o evento com a linha de código ocorrer, uma caixa de mensagem deverá exibir sua mensagem.

    Observação : Alguns eventos podem exigir a publicação do modelo de formulário e, em seguida, a criação de um formulário com base nesse modelo de formulário antes de poder executar a ação de usuário para iniciar o evento.

  5. Antes de publicar o modelo de formulário e permitir que os seus usuários preencham formulários com base nesse modelo de formulário, exclua o código usado para exibir a caixa de mensagem.

Início da página

Adicionar um script que executa 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 da Microsoft inicia 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. Execute um ou os dois procedimentos a seguir:

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

    • Para adicionar um script que executa após o InfoPath salvar o formulário, substitua o comentário Write the code to be run after saving here. pelo 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 executar apenas após você criar um formulário com base no seu modelo de formulário, publique o modelo de formulário clicando em Publicar no menu Arquivo e, em seguida, complete o Assistente para Publicação. Após você 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 executa 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 da Microsoft inicia 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 pelo 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 executa quando um usuário clica em um botão

  1. Adicione um novo botão a um modo de exibição no modelo de formulário e, em seguida, clique duas vezes no botão.

    Observação : Se estiver adicionando um script a um botão existente, clique duas vezes no botão existente.

  2. Clique na guia Geral.

  3. Clique em Editar Código de Formulário. O Editor de Scripts da Microsoft inicia 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 pelo 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 execute quando formulários existentes forem mesclados

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

  2. Na lista Categoria, na caixa de diálogo Opções do 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, em seguida, clique em Editar. O Editor de Scripts da Microsoft inicia 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. pelo seu código.

  6. Para testar o código nesse evento, publique o modelo de formulário, crie diversos formulários com base nesse modelo de formulário e, em seguida, mescle os modelos de formulário.

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

Início da página

Adicionar um para atualizar os formulários existentes

Se você atualizou um modelo de formulário publicado anteriormente e quiser atualizar os formulários existentes nesse modelo de formulário, poderá adicionar um script ao modelo de formulário atualizado que executa 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 da versão de seu modelo de formulário associado no local de publicação. Se o número da versão do modelo de formulário no local de publicação for mais recente que o número da versão no formulário existente, indicando que ele foi atualizado, o InfoPath executará o código nesse 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 do Formulário, clique em Controle de Versão.

  3. Na lista Na atualização da versão, clique em Usar evento personalizado e, em seguida, clique em Editar. O Editor de Scripts da Microsoft inicia 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 pelo seu código.

  5. Para testar o código nesse evento, publique o modelo de formulário, crie diversos formulários com base nesse modelo de formulário, modifique e publique uma versão atualizada do modelo de formulário e, em seguida, abra um formulário existente com base na versão mais antiga desse modelo de formulário.

    Observação : Encontre links para informações adicionais 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

Esse procedimento pode ser usado para adicionar os seguintes manipuladores de eventos ao 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 o manipulador de eventos. O Editor de Scripts da Microsoft inicia com o cursor no manipulador de eventos selecionado.

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

Início da página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
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.

×