Personalizar um modelo de formulário utilizando um script

Nota:  Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

Se estiver familiarizado com escrever um script, pode adicionar um script ao seu modelo de formulário do Microsoft Office InfoPath utilizando o Microsoft JScript ou a linguagem de scripts do Microsoft Visual Basic Scripting Edition (VBScript). Adicionar script permite-lhe personalizar o seu modelo de formulário para além das que está disponível com regras, fórmulas, a validação de dados ou formatação condicional. Por exemplo, pode adicionar um script que cria e envia uma mensagem de e-mail quando um utilizador alterna entre a vista num formulário baseado no seu modelo de formulário. Pode configurar um modelo de formulário para criar e enviar uma mensagem de correio electrónico utilizando apenas um script.

Neste artigo

Descrição geral

Considerações sobre compatibilidade

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

Apresentar uma mensagem de cada vez que ocorre um evento

Adicionar um script que é executada quando um utilizador guarda os dados de formulário

Adicionar um script que é executada quando um utilizador submete os dados de formulário

Adicionar um script que é executada quando um utilizador clica num botão

Adicionar um script que é executada quando são intercalados formulários existentes

Adicionar um script para atualizar os formulários existentes

Adicionar um script para outros eventos

Descrição Geral

Pode personalizar o seu modelo de formulário do InfoPath utilizando regras, fórmulas, a validação de dados e formatação condicional. Apesar destas funcionalidades são muito flexíveis e podem processar uma grande variedade de tarefas, algumas tarefas estão além das capacidades destas funcionalidades. Por exemplo, não é possível utilizar regras para enviar uma mensagem de correio electrónico quando um utilizador introduz um valor numa caixa de texto num formulário. Se precisar de personalizar o seu modelo de formulário de uma forma que está para além das capacidades destas funcionalidades e estiver familiarizado com os scripts utilizando a linguagem de scripts JScript ou VBScript, pode adicionar um script que é executada quando abre um novo formulário de um utilizador ou modifica um ex formulário de istente que é baseado no seu modelo de formulário.

Quando adiciona um script para um modelo de formulário, o InfoPath inicia o Microsoft Script Editor (MSE), que lhe permite adicionar, editar e depurar script num modelo de formulário e coloca o cursor no seu evento que selecionou. O InfoPath adiciona automaticamente um processador de eventos para o script. Um processador de eventos é o código de função num modelo de formulário do InfoPath que responde a uma acção do utilizador ou uma alteração aos dados XML de um formulário. Por exemplo, se pretender que os utilizadores para guardar os seus formulários a várias localizações de rede, pode adicionar um script para processador de eventos OnSaveRequest . Quando adiciona um script para ser executada quando o utilizador guarda um formulário baseado no seu modelo de formulário, o InfoPath inicia o editor de scripts e adiciona um dos seguintes códigos para o script.

Nota: O código que o InfoPath adiciona depende do idioma script que selecionou.

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

Em seguida, pode adicionar código nos locais adequados no caso de processador que guarda o formulário para a localização de rede diferente. Quando um utilizador guarda um formulário baseado neste modelo de formulário, o InfoPath executa o código no processador de eventos OnSaveRequest .

Nota: Este artigo fornece uma vista de alto nível de criação de scripts num modelo de formulário. Para saber mais sobre o Microsoft Script Editor e específicos objetos, métodos, eventos e propriedades utilizadas no InfoPath, consulte o artigo referência para programadores do InfoPath.

O InfoPath adiciona automaticamente processadores de evento para todas as mas um dos seguintes eventos.

Processador de eventos

Descrição

Passos para criar

OnAfterChange

Este evento é executado depois de um utilizador altera o valor no controlo especificado vinculado a um campo. Por exemplo, pode apresentar um painel de tarefas personalizado HTML depois de um utilizador seleciona um item num controlo de caixa lista. Este evento é executado depois do evento OnValidate .

Um controlo num modelo de formulário ou um campo no painel de tarefas Origem de dados com o botão direito, aponte para a programação no menu de atalho e, em seguida, clique No depois de alterar evento.

OnAfterImport

Este evento é executado depois do utilizador com êxito intercala vários formulários de um formulário.

Adicione manualmente a declaração de processador de eventos OnAfterImport diretamente para o ficheiro de script utilizando MSE. Não é possível criar esta processador de eventos no modo de estrutura.

OnBeforeChange

Este evento é executado depois de um utilizador altere o valor num controlo e antes do valor é adicionado ao campo especificado vinculado nesse controlo. Por exemplo, pode impedir que um utilizador adicionar uma linha adicional antes de preencher da última linha numa tabela de repetição.

Um controlo num modelo de formulário ou um campo no painel de tarefas Origem de dados com o botão direito, aponte para programação no menu de atalho e, em seguida, clique No antes de alterar evento.

AoFazerClique

Este evento é executada quando um utilizador clica num botão associado com este evento. Este evento está disponível depois de adicionar um botão ao modelo de formulário. Por exemplo, pode executar cálculos complexos, utilizando os valores nos campos na origem de dados principal quando um utilizador clica no botão.

Faça duplo clique sobre o controlo de botão e, em seguida, no separador Geral da caixa de diálogo Propriedades do botão, clique em Editar código do formulário.

OnContextChange

Este evento é executada quando altera o foco no formulário. Por exemplo, este evento é executada quando um utilizador navega a partir de uma caixa de texto para um selecionador de data ou quando um utilizador alterna entre vistas. Este evento ocorre depois de tem ocorrido todos os outros eventos.

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

OnLoad

Este evento é executada sempre que um utilizador cria um novo formulário ou abre um formulário existente baseado no seu modelo de formulário. Por exemplo, pode copiar uma lista de itens de uma origem de dados secundária à origem de dados principal quando um utilizador abre o formulário.

No menu Ferramentas, aponte para de programação e, em seguida, clique No evento ao carregar.

OnMergeRequest

Este evento é executada quando formulários com base no seu modelo de formulário são intercalados. Por exemplo, pode apresentar o número de formulários que foram unidas para conceder a um Estado de um utilizador durante a operação de impressão em série.

No menu Ferramentas, clique em Opções de formulário. Na lista categoria, clique em Avançadas. Em Intercalar formulários, selecione a caixa de verificação em série com código personalizado e, em seguida, clique em Editar.

OnSaveRequest

Este evento é executada quando um utilizador guarda um formulário baseado no seu modelo de formulário. Por exemplo, pode guardar o formulário baseado neste modelo de formulário para mais do que uma localização quando um utilizador guarda o formulário. O InfoPath adiciona duas linhas adicionais de código para este evento: uma linha que guarda o formulário e outra linha que mostra-lhe se InfoPath guardado com êxito o formulário.

No menu Ferramentas, clique em Opções de formulário. Na lista categoria, clique em Abrir e guardar. Em comportamento de guardar, selecione a caixa de verificação Guardar utilizando código personalizado e, em seguida, clique em Editar.

OnSign

Este evento é executada quando um utilizador aplica-se uma assinatura digital a um formulário. Por exemplo, pode adicionar dados adicionais para a assinatura digital de um formulário de relatório de despesas quando um utilizador inicia-lo.

No menu Ferramentas, aponte para de programação e, em seguida, clique No evento de início de sessão.

OnSubmitRequest

Este evento é executada quando um utilizador submete dele dados de formulário. Por exemplo, pode submeter os dados do formulário a um serviço Web seguro quando o utilizador clica Submeter no menu ficheiro. Uma vez que o InfoPath não suporta a ligação de dados para um serviço Web seguro, tem de adicionar uma ligação de dados personalizados que funciona com o seu serviço Web seguro.

No menu Ferramentas, clique em Opções de submeter. Selecione a caixa de verificação Permitir que os utilizadores para submeter este formulário, clique em executar a ação personalizada utilizando o código e, em seguida, clique em Editar código.

OnSwitchView

Este evento é executada quando um utilizador abre um formulário baseado no seu modelo de formulário ou muda para outra vista no formulário. Por exemplo, quando um utilizador muda para uma vista específica, pode criar uma mensagem de correio electrónico que contém os dados a partir de campos na origem de dados principal do formulário.

No menu Ferramentas, clique em de programação e, em seguida, clique Em mudar ver evento.

OnValidate

Este evento é executada quando um utilizador altere o valor num controlo vinculado a um campo. Por exemplo, quando o utilizador altera o valor num controlo específico, pode calcular um novo valor para outro controlo utilizando o número que o utilizador introduziu e um número que esteja no script. Este evento ocorre após o processador de eventos OnBeforeChange é executado.

Um controlo num modelo de formulário ou um campo no painel de tarefas Origem de dados com o botão direito, aponte para a programação no menu de atalho e, em seguida, clique No depois de validar evento.

OnVersionUpgrade

Este evento é executada quando um utilizador é aberto um formulário existente e o número da versão do modelo de formulário utilizado pelo formulário existente é mais antigo do que o número da versão do modelo de formulário na localização publicar. Quando um utilizador abre um formulário existente, o InfoPath verifica o número da versão do modelo de formulário associado com o formulário existente. Se o modelo de formulário tem um número de versão mais recente, o InfoPath executa o processador de eventos OnVersion quando o utilizador abre o formulário existente. Por exemplo, imagine que adicionar um novo campo a um modelo de formulário existente e publicá-lo e pretende que o novo campo para ser adicionada à origem de dados principal, se um utilizador é aberto um formulário existente. Este evento adiciona o novo campo à origem de dados principal quando um utilizador abre um formulário existente.

No menu Ferramentas, clique em Opções de formulário. Na lista categoria, clique em controlo de versões. Na lista de actualização da versão, clique em evento personalizado para utilizar e, em seguida, clique em Editar.

Início da página

Considerações sobre compatibilidade

Não pode adicionar um script um modelo de formulário compatível com o browser. Pode adicionar script apenas a um modelo de formulário serão possível preencher cujos formulários no InfoPath. Pode personalizar um modelo de formulário compatível com o browser utilizando apenas código gerido.

Início da página

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

Para personalizar um modelo de formulário utilizando script, pode utilizar o Microsoft JScript ou Microsoft Visual Basic Scripting Edition (VBScript). Por predefinição, o InfoPath está configurado para adicionar o script utilizando JScript. Se o modelo de formulário não contiver qualquer script ou código gerido e preferir utilizar VBScript como linguagem de scripts, pode alterar a linguagem de scripts para o modelo de formulário para VBScript. Não é possível utilizar ambas as linguagens de script mesmo modelo de formulário.

Se o modelo de formulário já contenha script de um idioma e que pretende utilizar o outro idioma, terá de guardar o script existente para que pode converter o script para o idioma, remova 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 scripting. Apenas a alteração do idioma de script na caixa de diálogo Opções de formulário afeta este modelo de formulário. Outros modelos de formulário terá JScript como predefinição linguagem de scripts.

  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 de programação.

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

    Notas: 

    • Depois de definir a linguagem de scripts e criar um ou mais processadores de evento para um modelo de formulário, não pode alterar a linguagem de scripts para o modelo de formulário.

    • Se tiver instalado o Microsoft Visual Studio 2005 Tools for Applications, o idioma predefinido é Microsoft Visual Basic .NET. Ainda pode utilizar este procedimento para alterar a linguagem de scripts para VBScript.

Início da página

Apresentar uma mensagem de cada vez que ocorre um evento

Se pretender saber o que executar processadores de eventos no resposta a uma ação ou outro evento, pode adicionar código temporário para apresentar uma caixa de mensagem sempre que executa o processador de eventos. Deve utilizar este código apenas para determinar quando um processador de eventos é executado. Depois de adicionar este código, pode utilizar a pré-visualizar para ver 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. Algum processadores de eventos apenas ser executadas se criar um formulário depois de a publicar o modelo de formulário. Em seguida, pode executar uma ação que achar que poderá ser executado o processador de eventos. Quando executa o processador de eventos, verá uma caixa de mensagem.

Depois de determinar o quê ou eventos de executar o processador de eventos, remover o código e, em seguida, continuar a estruturar o modelo de formulário. Se não remove este código e, em seguida, publicar o modelo de formulário, os utilizadores verão esta caixa de mensagem quando executa o processador de eventos.

  1. Adicione o seu processador de eventos.

  2. Para adicionar o código no JScript, escreva XDocument.UI.Alert ("o evento apenas executou o evento de nome"); Substitua o nome do seu processador de eventos. Por exemplo, se adicionar este código ao processador de eventos OnValidate , teria escreva XDocument.UI.Alert ("a OnValidate apenas executou o processador de eventos");

  3. Para adicionar o código no VBScript, escreva XDocument.UI.Alert ("o evento apenas executou o evento de nome") por exemplo, se adicionar este código a processador de eventos OnSaveRequest , teria de escrever XDocument.UI.Alert ("a OnSaveRequest apenas executou o processador de eventos")

  4. Para testar o código, clique em Pré-visualizar no menu ficheiro, ou prima CTRL + SHIFT + B e, em seguida, efetue uma ação do utilizador que pode iniciar o evento. Quando ocorre o evento com a linha de código, uma caixa de mensagem deve mostrar a sua mensagem.

    Nota: Alguns eventos podem pedir-lhe publicar o modelo de formulário e, em seguida, criar um formulário baseado neste modelo de formulário antes de poder executar uma ação do utilizador para iniciar o evento.

  5. Antes de publicar o modelo de formulário e permitir que os utilizadores preencher formulários baseados neste modelo de formulário, elimine o código que utilizou para apresentar a caixa de mensagem.

Início da página

Adicionar um script que é executada quando um utilizador guarda os dados de 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 guardar.

  3. Em comportamento de guardar, selecione a caixa de verificação Guardar utilizando código personalizado e, em seguida, clique em Editar. O Microsoft Script Editor é iniciado com o cursor no processador 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. Efetue um ou ambos os procedimentos:

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

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

  5. Para testar as suas alterações, clique em Pré-visualizar na barra de ferramentas Padrão ou prima CTRL+SHIFT+B.

    Nota: Se o processador de eventos for executado apenas depois de criar um formulário baseado no seu modelo de formulário, publicar o modelo de formulário ao clicar em Publicar no menu ficheiro e, em seguida, conclua o Assistente de publicação. Depois de a publicar o modelo de formulário, criar um formulário e, em seguida, efetue uma ação para executar o processador de eventos.

Início da página

Adicionar um script que é executada quando um utilizador submete os dados de formulário

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

  2. Na caixa de diálogo Opções de submeter, selecione a caixa de verificação Permitir que os utilizadores para submeter este formulário.

  3. Clique em executar a ação personalizada utilizando o código e, em seguida, clique em Editar código. O Microsoft Script Editor é iniciado com o cursor no OnSubmitRequest do evento .

    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 com o seu código.

  5. Para testar as suas alterações, clique em Pré-visualizar na barra de ferramentas Padrão ou prima CTRL+SHIFT+B.

Início da página

Adicionar um script que é executada quando um utilizador clica num botão

  1. Adicionar um novo botão a uma vista no modelo de formulário e, em seguida, faça duplo clique no botão.

    Nota: Se estiver a adicionar script para um botão existente, faça duplo clique no botão existente em vez disso.

  2. Clique no separador Geral.

  3. Clique em Editar o código do formulário. O Microsoft Script Editor é iniciado com o cursor no processador de eventos de AoFazerClique 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 com o seu código.

  5. Para testar as suas alterações, clique em Pré-visualizar na barra de ferramentas Padrão ou prima CTRL+SHIFT+B.

Início da página

Adicionar um script que é executada quando são intercalados formulários existentes

  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çadas.

  3. Em Intercalar formulários, selecione a caixa de verificação Ativar intercalação de formulários.

  4. Selecione a caixa de verificação em série com código personalizado e, em seguida, clique em Editar. O Microsoft Script Editor é iniciado com o cursor no processador de eventos de 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. com o seu código.

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

    Nota: Encontre ligações para mais informações sobre como publicar o seu modelo de formulário na secção Consulte também.

Início da página

Adicionar um script para atualizar os formulários existentes

Se tiver actualizado um modelo de formulário publicada anteriormente e que pretende atualizar os formulários existentes com base nesse modelo de formulário, pode adicionar script para o modelo de formulário actualizado que é executada quando um utilizador abre uma os formulários existentes. Quando um utilizador abre um formulário existente, o InfoPath verifica o número da versão do seu modelo de formulário associado na localização de publicação. Se o número da versão do modelo de formulário no local publicar for mais recente do que o número da versão o formulário existente, que indica que este 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 controlo de versões.

  3. Na lista de actualização da versão, clique em evento personalizado para utilizar e, em seguida, clique em Editar. O Microsoft Script Editor é iniciado com o cursor no 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 com o seu código.

  5. Para testar o código neste 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.

    Nota: Encontre ligações para mais informações sobre como publicar o seu modelo de formulário na secção Consulte também.

Início da página

Adicionar um script para outros eventos

Este procedimento pode ser utilizado para adicionar os seguintes processadores de eventos ao seu modelo de formulário:

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

  • No menu Ferramentas, aponte para de programação e, em seguida, clique no evento para adicionar o processador de eventos. O Microsoft Script Editor é iniciado com o cursor no processador de eventos que selecionou.

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

Início da página

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×