Applies ToInfoPath 2010

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.

As fórmulas permitem obter mais das regras criadas do que usar regras básicas predefinidas. Elas são usadas para, por exemplo, calcular a data atual ou futura ou até concatenar texto.

Neste artigo

Visão Geral

Funções de data e hora

Funções de campo

Funções matemáticas

Funções de texto

Funções de URL

A função userName

Visão geral

Uma fórmula é uma expressão XPath (XML Path Language) que consiste em valores, campos ou grupos, funções e operadores que são usados para calcular e exibir outros valores. Você pode usar uma fórmula para criar um novo valor para um campo e exibir esse valor em um controle associado a esse campo. As fórmulas podem ser usadas da seguinte maneira:

Calcule um valor matemático com base nos valores especificados ao criar o modelo ou com base nos valores que um usuário inseriu ao preencher o modelo de formulário.

Execute uma regra com base em um valor calculado usando uma fórmula.

Exiba texto somente leitura calculado com base em outros controles ou exiba o valor de outro controle.

Uma função é uma expressão que retorna um valor com base nos resultados de um cálculo. Os valores usados nas funções são chamados argumentos. Você pode usar as funções XPath 1.0 padrão incluídas no InfoPath, além de algumas funções específicas do InfoPath. As funções consistem nestas partes:

  • Nome    O nome da função geralmente fornece uma dica sobre a ação que a função executará.

  • Valor de retorno    O resultado da função.

  • Argumentos    Os valores usados pela função para executar o cálculo.

Um função pode solicitar argumentos para retornar um valor. Se a função solicitar argumentos, você precisará saber quantos argumentos são necessários e o tipo de dados de cada argumento. A função não funcionará se você fornecer o número ou tipo errado dos argumentos solicitados.

A ilustração a seguir mostra a relação entre as funções, expressões e fórmulas.

Uma fórmula consiste em uma ou mais expressões. Uma expressão é qualquer combinação de operadores, nomes de campos, funções, literais e constantes avaliados como um único valor.

Adicionar um controle de valor calculado

Use um controle de valor calculado para exibir texto somente leitura, exibir o valor de outro controle no formulário e criar fórmulas com base em expressões XPath . Por exemplo, se você estiver desenvolvendo um modelo de formulário de controle de despesas, poderá adicionar um controle de valor calculado para exibir o total das despesas que foram inseridas.

Observação: Um controle de valor calculado somente exibe os dados, sem armazená-los, por isso você deve usar um controle de valor calculado somente se não desejar salvar seu valor ou referenciá-lo em outra fórmula.

  1. No modelo de formulário, coloque o cursor no local onde você deseja inserir o controle.

  2. Na guia Página Inicial, no grupo Controles, clique no controle de valor calculado.

  3. Na caixa de diálogo Inserir Valor Calculado, siga um destes procedimentos:

    • Para digitar texto ou uma expressão XPath diretamente no controle de valor calculado, digite na caixa XPath.

    • Para inserir uma fórmula, clique em Editar fórmula Botão Fórmulae, em seguida, insira a fórmula desejada na caixa de texto fórmula, fazendo uso dos seguintes, conforme necessário:

      • Para inserir um campo ou grupo na fórmula, clique em Inserir Campo ou Grupo, clique no campo ou grupo na caixa de diálogo Selecionar Campo ou Grupo e clique em OK.

      • Para inserir uma função na fórmula, clique em Inserir Função, selecione a função na caixa de diálogo Inserir Função e clique em OK.

        Se a função exigir parâmetros, selecione a função na caixa de diálogo Inserir Função, clique em OK e, no texto Fórmula, clique duas vezes onde estiver indicado e selecione o parâmetro desejado antes de clicar em OK.

      • Para inserir um valor ou operador matemático na fórmula, digite o valor ou símbolo da operação matemática na caixa Fórmula.

        Os operadores matemáticos são add (+), subtract (-), multiply (*) e divide (/).

        Fórmulas matemáticas geralmente dependem de valores inteiros ou decimais como argumentos. Para evitar valores em branco na fórmula, na guia arquivo, clique em Opções de formulário e em seguida, selecione Avançado e verifique se que tratar valores em branco como zero está selecionada.

Adicionar uma fórmula a um controle

Apesar de ser possível usar um controle de valor calculado para exibir os resultados de uma fórmula, você não está limitado a usá-lo. Também pode usar uma fórmula para definir o valor padrão de outros controles, como caixas de texto. Há duas maneiras de definir o valor padrão de um controle. É possível usar um valor padrão estático bastando digitar o valor desejado no campo Valor da caixa de diálogo Propriedades do Campo ou Grupo ou então usar uma fórmula para definir o valor padrão de um campo com base em outros valores no formulário. Siga este procedimento para definir o valor padrão de um campo com base em uma fórmula:

  1. Selecione o controle ao qual deseja adicionar a fórmula e, em Ferramentas de Controle, na guia Propriedades, no grupo Propriedades, clique em Valor Padrão.

  2. Clique em Inserir Fórmula Botão Fórmula ao lado da caixa valor.

  3. Digite a fórmula desejada na caixa de texto Fórmula, seguindo as seguintes instruções, conforme necessário:

    • Para inserir um campo ou grupo na fórmula, clique em Inserir Campo ou Grupo, clique no campo ou grupo na caixa de diálogo Selecionar Campo ou Grupo e clique em OK.

    • Para inserir uma função na fórmula, clique em Inserir Função, selecione a função na caixa de diálogo Inserir Função e clique em OK.

      Se a função exigir parâmetros, selecione a função na caixa de diálogo Inserir Função, clique em OK e, no texto Fórmula, clique duas vezes onde estiver indicado e selecione o parâmetro desejado antes de clicar em OK.

    • Para inserir um valor ou operador matemático na fórmula, digite o valor ou símbolo da operação matemática na caixa Fórmula.

      Os operadores matemáticos são add (+), subtract (-), multiply (*) e divide (/).

      Dica: Fórmulas matemáticas geralmente dependem de valores inteiros ou decimais como argumentos. Para evitar valores em branco na fórmula, na guia arquivo, clique em Opções de formulário e, em seguida, selecione Avançado. Certifique-se de que trate valores em branco como zero está selecionada.

  4. Para editar a fórmula como fórmula XPath, marque a caixa de seleção Editar XPath (avançado), que alterará a fórmula para a versão de expressão XPath da fórmula.

  5. Para verificar se a sintaxe da fórmula está correta, clique no botão Verificar Fórmula. Se ela contiver erros:

Clique em Mostrar Detalhes na caixa de diálogo Microsoft InfoPath para visualizar os erros na fórmula. Verifique a seguir algumas sugestões para solucionar tais erros:

  • Se você estiver utilizando uma função na sua fórmula, verifique se está utilizando os argumentos corretos para a função. Algumas funções requerem campos ou grupos, enquanto outras requerem valores especificados como argumentos.

  • Se necessário, exclua e digite novamente sua fórmula para garantir que ela foi digitada corretamente.

  • Clique em OK.

  • Se desejar atualizar o valor padrão do campo quando forem alterados os valores que servem de base, marque a caixa de diálogo Atualizar valor quando a fórmula for recalculada. Depois de fazer isso, clique em OK e, em Ferramentas de Controle, na guia Propriedades, no grupo Propriedades, clique em Propriedades do Controle. Clique na guia Exibir e marque a caixa de seleção Somente leitura.

Usar uma fórmula em uma regra

É possível, ao especificar condições nas regras de validação, formataçãoou ação , usar uma fórmula para controlar a condição. Você pode fazer isso selecionando usar uma fórmula da terceira lista suspensa na caixa de diálogo condição ao atribuir uma regra a um controle ou o modelo de formulário.

Início da Página

Funções de data e hora

addDays

Adiciona dias a uma data ou data e hora.

Sintaxe

addDays(date, days)

Argumento

Descrição

date

O número de dias no segundo argumento é adicionado à data deste argumento. Esse argumento pode ser um tipo de dados Data (date) ou Data e Hora (dateTime) .

days

O número de dias que você deseja adicionar à data do primeiro argumento. Esse parâmetro deve ser um tipo de dados Número Inteiro (integer). Se você usar um número negativo nesse argumento, o valor de retorno será uma data anterior.

Exemplo

Suponha que você queira um campo no modelo de formulário que contenha uma data a 60 dias contados da data de hoje. O modelo de formulário contém um campo chamado fldToday, com a data de hoje como valor padrão. Para calcular a nova data usando essa função, use a seguinte fórmula no campo da nova data:

addDays(fldToday, 60)

addSeconds

Adiciona segundos a uma hora ou data e hora.

Sintaxe

addSeconds(time, seconds)

Argumento

Descrição

time

Um valor de data e hora ou um valor de hora é uma referência a outro campo no modelo de formulário ou o resultado de uma função de data ou hora, como now() ou today(). O número de segundos no segundo argumento é adicionado à hora nesse argumento. Esse argumento pode ser um tipo de dados Data (date) ou Data e Hora (dateTime). Se for um tipo de dados Hora, um tipo de dados Hora será retornado. Se for um tipo de dados Data, um tipo de dados Data e Hora será retornado.

seconds

O número de segundos que você deseja adicionar ao valor de data e hora ou ao valor de hora no primeiro argumento. O campo nesse parâmetro precisa ser um tipo de dados Número Inteiro (integer). Se você usar um número negativo nesse argumento, o valor de retorno será uma data e hora anterior ou uma hora anterior.

Exemplo

O modelo de formulário contém um campo chamado fldCurrentTime que usa a hora atual como valor padrão e um segundo campo que usa a função addSeconds em uma fórmula para exibir a hora a 120 segundos da hora atual. Para calcular o valor da nova hora usando essa função, digite a seguinte fórmula no segundo campo:

addSeconds(fldCurrentTime, 120)

now

Retorna a data e hora do sistema atual.

Se desejar apenas a data atual retornada, use a função today.

Sintaxe

now()

Esta função não usa argumentos.

Exemplo

Para obter a data e hora em que foi criado um formulário que se baseia em seu modelo de formulário, use a seguinte fórmula em um campo:

now()

today

Retorna a data atual do sistema. Para obter campos de data de lista do SharePoint, use a função now().

Se desejar tanto a data quanto a hora retornadas, use a função now.

Sintaxe

today()

Esta função não usa argumentos.

Exemplo

Para obter a data em que foi criado um formulário que se baseia em seu modelo de formulário, use a seguinte fórmula em um campo:

today()

Início da Página

Funções de campo

count

Conta o número de instâncias de um campo ou grupo.

Sintaxe

count(field)

Argumento

Descrição

field

O nome do campo de repetição ou grupo de repetição a ser contado no formulário.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados pelos fornecedores para comunicar seus produtos e estoques. O modelo de formulário contém um grupo de repetição chamado grpProduct para os produtos que são enviados pelo fornecedor. Cada grupo contém informações sobre o produto e seu nível de estoque. Quando um fornecedor adiciona um produto em um formulário que se baseia nesse modelo de formulário, o InfoPath cria uma nova instância do grupo de repetição.

O modelo de formulário tem um campo na fonte de dados que contém o número de produtos que são enviados pelo fornecedor. Para contar automaticamente o número de produtos enviados pelo fornecedor, que é o número de instâncias do grupo de repetição grpProduct, use a seguinte fórmula no campo de número de produtos:

count(grpProduct)

last

Retorna a última ocorrência de um campo ou grupo de repetição.

Observação: Se estiver criando um modelo de formulário compatível com navegador, essa função não aparecerá na lista Funções da caixa de diálogo Inserir Função..

Sintaxe

field_name[last()]

Embora a função por si própria não requeira quaisquer parâmetros, você pode utilizá-la como um predicado para o nome de campo especificado.

Exemplo

Suponha que você esteja criando um modelo de formulário que os fornecedores preencherão para comunicar seus estoques de produto. O modelo de formulário tem uma conexão de dados com um serviço Web que tem um método que verifica se as informações de todos os produtos provenientes de um fornecedor estão completas. O método precisa do último produto da lista de produtos que foi enviada pelo fornecedor.

As informações dos produtos são armazenadas em diferentes campos de um grupo de repetição que é chamado grpProduct. Quando um fornecedor adiciona um produto ao formulário, o InfoPath adiciona um novo grupo de repetição chamado grpProduct. Se o fornecedor comunicar sobre vários produtos, a fonte de dados do formulário conterá várias instâncias do grupo de repetição grpProduct.

Para garantir que você enviou as informações corretas ao serviço Web, adicione um campo que conterá informações sobre o último produto no grupo de produtos do fornecedor. Para configurar esse campo para recuperar automaticamente o último produto, use a seguinte fórmula como valor padrão do campo do último produto:

grpProduct[last()]

local-name

Retorna o nome local de um campo ou grupo.

Observações: 

  • Se o argumento for um campo ou grupo de repetição, a função retornará o valor do primeiro campo ou grupo de repetição.

  • Quando um usuário preenche um formulário do navegador da Web, uma fórmula que usa essa função envia dados do formulário ao servidor para obter o valor da função.

Sintaxe

local-name(field)

Argumento

Descrição

field

O nome do campo cujo atributo de nome local você deseja retornar.

Exemplo

Suponha que você esteja criando um modelo de formulário usado para permitir aplicativos. O modelo de formulário tem uma conexão de dados com um método em um serviço Web. Esse método exige o valor do atributo local-name do campo referente ao número de licença do fornecedor. O nome do campo de número de licença é fldLicenseNumber.

Você tem um campo que conterá o valor do atributo de nome local. Para recuperar automaticamente o valor do atributo de nome local do campo de número de licença, use a seguinte fórmula como valor padrão do campo que conterá o valor do atributo de nome local:

local-name(fldLicenseNumber)

name

Retorna o nome e um prefixo de namespace de um campo ou grupo.

Observações: 

  • Se o argumento for um campo ou grupo de repetição, a função retornará o nome e prefixo do primeiro campo ou grupo de repetição no formulário.

  • Quando um usuário preenche um formulário baseado em um modelo de formulário habilitado para navegador, uma fórmula que usa essa função envia dados do formulário ao servidor para obter o valor de retorno da função.

Sintaxe

name(field)

Argumento

Descrição

field

O nome do campo cujo prefixo do namespace e nome você deseja retornar.

Exemplo

Suponha que você esteja criando um modelo de formulário usado para permitir aplicativos. O modelo de formulário tem uma conexão de dados com um método em um serviço Web. Esse método exige o atributo de nome do campo referente ao número de licença do fornecedor. O nome do campo de número de licença é fldLicenseNumber.

Você tem um campo que conterá o valor do atributo de nome. Para recuperar automaticamente o valor do atributo de nome, use a seguinte fórmula como valor padrão do campo:

name(fldLicenseNumber)

namespace-uri

Retorna o namespace completo de um campo ou grupo.

Observações: 

  • Se o argumento for um grupo de campos ou grupos, a função retorna o namespace do primeiro campo ou grupo no formulário.

  • Quando um usuário preenche um formulário do navegador da Web, uma fórmula que usa essa função envia dados do formulário ao servidor para obter o valor da função.

Sintaxe

namespace-uri(field)

Argumento

Descrição

field

O nome do campo cujo URI de namespace deseja recuperar.

Exemplo

Suponha que você esteja criando um modelo de formulário usado para permitir aplicativos. O modelo de formulário envia dados a um serviço Web. Para processar os dados de um formulário baseado em seu modelo de formulário, o serviço Web exige o URI de namespace de um campo de elemento específico na fonte de dados. O campo em seu modelo de formulário que contém os dados do URI de namespace é chamado fldComplete.

Você tem um campo que conterá o URI de namespace do campo de elemento. Para recuperar automaticamente o URI de namespace, use a seguinte fórmula como valor padrão do campo que conterá o URI de namespace:

namespace-uri(fldComplete)

position

Retorna o índice (ou posição) do campo ou grupo com relação a outros campos ou grupos no mesmo grupo pai.

Observação: Essa função não está disponível nos modelos de formulário de navegador da Web.

Sintaxe

position()

Exemplo

Suponha que você esteja criando um modelo de formulário que os fornecedores preencherão para comunicar seus estoques de produto. As informações dos produtos são armazenadas em campos de um grupo de repetição. O grupo de repetição é associado a uma tabela de repetição, que permite que um fornecedor adicione novas informações de produtos ou revise as existentes.

Na primeira coluna da tabela de repetição, você quer exibir o número da linha em uma caixa de texto. Para exibir automaticamente o número da linha quando o fornecedor adicionar um novo produto à tabela de repetição, use a seguinte fórmula como valor padrão da caixa de texto:

position()

Início da Página

Funções matemáticas

Fórmulas que contêm funções matemáticas geralmente exigem os argumentos que são valores de casas decimais ou números inteiros. Para garantir que os argumentos são valores inteiros ou decimais em vez de valores nulos, clique em arquivo > Opções de formulário > Avançado e verifique se a caixa de seleção tratar valores em branco como zero.

avg

Calcula a média dos valores numéricos em um campo que está em um grupo de repetição.

Observação: O campo de repetição precisa ser de um tipo de dados numérico e ser incluído em um grupo.

Sintaxe

avg(field)

Argumento

Descrição

field

Os nomes do campo de repetição no grupo cujo valor médio você deseja calcular.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por fornecedores para comunicar seus produtos e estoques. O modelo de formulário contém um campo de repetição chamado fldPrice, que é um grupo de repetição que contém os dados sobre cada produto vendido pelo fornecedor. O grupo está associado a um controle de tabela de repetição.

Você tem um campo no modelo de formulário que conterá o preço médio de todos os produtos vendidos por esse fornecedor. Para calcular o preço médio, use a seguinte fórmula no campo para o preço médio:

avg(fldPrice)

boolean

Retorna true se um campo ou grupo existir. Caso contrário, retorna false.

Esta opção retornará true mesmo se um controle que estava associado ao campo tiver sido excluído, mas o campo ainda existirá.

Sintaxe

boolean(field)

Argumento

Descrição

field

Um campo ou grupo de repetição que será verificado por esta função.

Exemplo

Suponha que você esteja criando um modelo de formulário que os fornecedores usarão para comunicar seus estoques de produto. As informações dos produtos são armazenadas em diferentes campos de um grupo de repetição chamado grpProduct. Cada grupo de repetição contém campos que contêm informações sobre cada produto. Se o fornecedor repassar informações sobre sete produtos, o formulário conterá sete grupos de repetição.

O grupo de repetição é associado a um controle de tabela de repetição, que permite ao fornecedor adicionar novas informações produtos ou revisar as existentes. O fornecedor poderá adicionar ou excluir linhas da tabela de repetição.

Você deseja exibir uma caixa de diálogo se o usuário remover todas as linhas na tabela de repetição. Você adiciona um campo à fonte de dados que contém a palavra "true" se o controle de tabela de repetição tiver pelo menos uma linha e a palavra "false" se o controle de tabela de repetição não tiver nenhuma linha.

Você configura uma regra no controle de tabela de repetição para que exiba uma caixa de diálogo se o valor no campo for false. Para determinar automaticamente se a tabela de repetição contém pelo menos uma linha, use a seguinte fórmula como valor padrão para o campo que contém a palavra "true" ou "false":

boolean(grpProduct)

ceiling

Arredonda um número para cima, para o inteiro mais próximo.

Sintaxe

ceiling(number)

Argumento

Descrição

number

O nome do campo, que tem um valor numérico.

Exemplo

Suponha que você esteja criando um modelo de formulário de relatório de despesas para sua empresa. As despesas são enviadas a um serviço Web que tem um parâmetro que aceita somente números inteiros. O valor das despesas enviado a esse parâmetro precisa ser arredondado para o valor inteiro superior. O valor das despesas é armazenado em um campo chamado fldExpenseAmount, e o valor inteiro é armazenado em outro campo. Para calcular o valor inteiro superior, use a seguinte fórmula como valor padrão do outro campo:

ceiling(fldExpenseAmount)

Se um usuário criar um formulário baseado em seu modelo de formulário e digitar 145,87 no campo fldExpenseAmount, o valor no campo que contém a fórmula será 146.

eval

Retorna os valores de um campo ou grupo. O segundo argumento define a expressão a ser calculada para o campo ou grupo. Normalmente a função eval é aninhada em uma função que opera em um campo ou grupo, como sum ou avg.

Sintaxe

eval(field, expression)

Argumento

Descrição

field

O nome do campo ou grupo cujos valores serão avaliados pela expressão no segundo argumento.

expression

A expressão que será aplicada ao primeiro argumento. A expressão pode ser uma função XPath ou uma expressão entre aspas duplas (" ").

Exemplo

Suponha que você esteja criando um modelo de formulário de relatório de despesas para sua empresa. O modelo de formulário contém um campo chamado fldTotal que contém um valor de despesas. O campo fldTotal faz parte de um grupo de repetição chamado grpExpenses. Outro campo está associado a uma caixa de texto que contém a soma de todas as despesas. Para exibir a soma de todas as despesas à medida que o usuário insere um valor de despesas, use a seguinte fórmula no campo de despesas totais:

eval(grpExpenses,sum(fldTotal))

false

Retorna false.

Sintaxe

false()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por empreiteiras para solicitar alvarás de execução da obra. O modelo de formulário tem duas seções: uma para informações de contato e outra para informações relativas a alvarás. Ao preencher este formulário, as empreiteiras precisarão preencher completamente a seção de informações de contato para poderem preencher a seção de alvarás de execução da obra.

Para fazer isso, crie uma regra para definir o valor de um campo Boolean como false se algum dos campos na seção de informações de contato estiver em branco. Um campo de valor Boolean pode ter um valor booliano true ou um valor booliano false. Configure também a formatação condicional para que oculte o controle de seções que contém as informações de alvarás de execução da obra se o valor do campo Boolean for false.

Para ocultar o controle de seções que contém os campos referente às informações de alvarás de execução da obra, configure uma regra para executar essa função no campo Boolean se qualquer um dos campos na seção de informações de contato estiver em branco.

floor

Arredonda um número para baixo até o número inteiro mais próximo.

Sintaxe

floor(number)

Argumento

Descrição

number

O nome do campo, que tem um valor numérico.

Exemplo

Suponha que você esteja criando um modelo de formulário de relatório de despesas para sua empresa. As despesas são enviadas a um serviço Web que usa um parâmetro que aceita somente números inteiros. O valor das despesas enviado a esse parâmetro precisa ser arredondado para o valor inteiro inferior. O valor das despesas é armazenado em um campo chamado fldExpenseAmount, e o valor inteiro é armazenado em outro campo. Para calcular o valor inteiro inferior, use a seguinte fórmula como valor padrão do outro campo:

floor(fldExpenseAmount)

max

Retorna o número maior em um campo ou grupo.

Sintaxe

max(field)

Argumento

Descrição

field

Um campo de repetição em um grupo ou um campo em um grupo de repetição para o qual você deseja encontrar o valor mais alto.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por fornecedores para comunicar seus estoques. O modelo de formulário contém um grupo de repetição que inclui vários campos que contêm dados sobre os produtos dos fornecedores. Um campo chamado fldPrice no grupo de repetição contém o preço de um produto.

Outro campo na fonte de dados do modelo de formulário conterá o preço mais alto de todos os produtos vendidos pelo fornecedor. Para retornar o preço mais alto, use a seguinte fórmula no campo de preço mais alto:

max(fldPrice)

min

Retorna o número menor em um campo ou grupo.

Sintaxe

min(field)

Argumento

Descrição

field

Um campo de repetição em um grupo ou um campo em um grupo de repetição para o qual você deseja encontrar o valor mais alto.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por fornecedores para comunicar seus estoques. O modelo de formulário contém um grupo de repetição que inclui vários campos que contêm dados sobre os produtos dos fornecedores. Um campo chamado fldPrice no grupo de repetição contém o preço de um produto.

Outro campo na fonte de dados do modelo de formulário conterá o preço mais baixo de todos os produtos vendidos pelo fornecedor. Para retornar o preço mais baixo, use a seguinte fórmula no campo de preço mais baixo:

min(fldPrice)

not

Retorna true se um valor Boolean é false ou null. Retorna false se o valor Boolean é true ou não é null.

Sintaxe

not(boolean_value)

Argumento

Descrição

boolean_value

Um campo com um tipo de dados booliano.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por empreiteiras para solicitar alvarás de execução da obra. O modelo de formulário tem uma seção para informações de contato e outra para informações relativas a alvarás. Ao preencher este formulário, as empreiteiras precisarão preencher completamente a seção de informações de contato para poderem preencher a seção de alvarás de execução da obra.

Para fazer isso, crie uma regra que define o valor de um campo Boolean como false se algum dos campos na seção de informações de contato for deixado em branco. Um campo de valor Boolean pode ter o valor Boolean como true ou como false. Use a mesma fórmula para ocultar o controle de seções que contém as informações de alvará de execução da obra se o valor do campo Boolean for false. Para definir essa regra, use a seguinte fórmula para definir o campo Boolean como false:

not(true())

number

Converte um valor em um número.

A função retorna NaN se o valor no argumento não pode ser convertido em um número.

Sintaxe

number(value)

ArgumentoDescrição

valueO campo com um valor para ser convertido em número.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por empreiteiras para solicitar alvarás de execução da obra. O modelo de formulário contém uma seção em que a empreiteira pode digitar seu endereço comercial. Para verificar se a empreiteira está digitando um endereço válido, use uma conexão de dados a um serviço Web que possa verificar o endereço. Se o endereço for verificado, a empreiteira poderá enviar o formulário a um banco de dados SQL. O banco de dados SQL usa um campo de texto para o número do endereço e o nome da rua. O serviço Web exige que o número do endereço seja um tipo de dados numéricos e que o nome da rua seja um tipo de dados de texto.

Para enviar dados ao serviço Web e ao banco de dados SQL, o endereço precisa ser armazenado como dois tipos de dados diferentes:

  • Para enviar o endereço ao serviço Web, o número do endereço precisa ser um tipo de dados numérico e o nome da rua precisa ser um tipo de dados de texto.

  • Para enviar o endereço ao banco de dados SQL, tanto o número do endereço quando o nome da rua precisam ser do tipo de dados de texto.

Você também quer que a empreiteira digite o endereço somente uma vez. Para converter o endereço nos tipos de dados corretos e tentar garantir que a empreiteira digite o endereço apenas uma vez, o modelo de formulário contém um campo chamado fldAddressNumber para inserir o número de endereço e outro campo para digitar o nome da rua. Ambos os campos são configurados como tipos de dados de texto.

Para enviar o número do endereço ao serviço Web, você precisa converter os dados no campo fldAddressNumber (armazenado como tipo de dados de texto) em um tipo de dados numéricos. O valor do número do endereço convertido em um tipo de dados numéricos é armazenado em outro campo que é configurado para armazenar tipos de dados numéricos.

Para converter o número do endereço de um tipo de dados de texto em um tipo de dados numéricos, use a seguinte fórmula como valor padrão para o campo fldAddressNumber:

number(fldAddressNumber)

nz

Retorna um campo ou grupo com todos campos em branco substituídos por zero (0).

Sintaxe

nz(field)

Argumento

Descrição

field

O campo que você deseja verificar se há um valor.

Exemplo

Suponha que você esteja criando um modelo de formulário que os fornecedores preencherão para comunicar seus estoques de produto. O fornecedor enviará seus estoques de produtos a um Serviço Web através de um formulário baseado em seu modelo de formulário. O método do Serviço Web exige que todos os elementos que contenham dados numéricos tenham um valor numérico. O Serviço Web rejeita um formulário que contenha um elemento numérico vazio.

O modelo de formulário contém um campo chamado fldAvailability que por sua vez contém um número que representa a capacidade do fornecedor que disponibilizar esse produto. O fornecedor pode digitar um número nesse campo. Para ajudar a garantir que o fornecedor poderá enviar seu formulário baseado em seu modelo de formulário ao serviço Web e definir automaticamente o valor do campo como zero se o fornecedor não digitar um número, use a seguinte fórmula como valor padrão desse campo:

nz(fldAvailability)

round

Arredonda um número para o número inteiro mais próximo.

Se o valor não inteiro estiver exatamente na metade dos dois valores inteiros arredondados, o valor de retorno será o próximo valor inteiro maior.

Sintaxe

round(number)

Argumento

Descrição

number

O campo que contém o número que será arredondado usando essa fórmula.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por fornecedores para comunicar seus estoques. O modelo de formulário contém um grupo de repetição que inclui vários campos que contêm dados sobre os produtos dos fornecedores. Um dos campos, chamado fldPrice, no grupo de repetição contém o preço de um produto.

O modelo de formulário tem uma conexão de dados de envio a um serviço Web. O método do serviço Web exige que cada preço seja arredondado para um valor inteiro. Para enviar o valor apropriado ao método do serviço Web, adicione um campo de repetição à fonte de dados. Esse campo usa a seguinte fórmula para arredondar o preço no campo fldPrice para um valor inteiro:

round(fldPrice)

sum

Retorna a soma de todos os campos em um campo ou grupo. Cada campo é convertido primeiro em um valor de número.

Sintaxe

sum(field)

Argumento

Descrição

field

O nome de um campo em um grupo de repetição ou um campo de repetição em um grupo cujos valores serão adicionados. Para adicionar campos de dois grupos diferentes, use o operador de união (|) para separar os argumentos. Por exemplo: sum( field name 1 | field name 2).

Exemplo

Suponha que você esteja criando um modelo de formulário de relatório de despesas. O modelo de formulário tem um grupo que contém itens de despesa. O valor de cada item é armazenado em um campo chamado fldExpenseAmount. O grupo está associado a uma tabela de repetição que exibe cada item de despesa como uma linha. O modelo de formulário contém um controle de caixa de texto que exige o total de despesas. Para mostrar o total de despesas, o controle de caixa de texto contém a seguinte fórmula:

sum(fldExpenseAmount)

true

Retorna true.

Sintaxe

true()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por empreiteiras para solicitar alvarás de execução da obra. O modelo de formulário contém uma seção para informações de contato e outra para informações relativas a alvarás. Ao preencher este formulário, as empreiteiras precisarão preencher completamente a seção de informações de contato para poderem preencher a seção de alvarás de execução da obra.

Para fazer isso, crie uma regra que define o valor de um campo Boolean como true se todos os campos na seção de informações de contato contiverem dados. Um campo de valor Boolean pode ter o valor Boolean como true ou como false. Se o valor do campo Boolean for true, o controle de seções que contém as informações de alvarás de execução da obra será exibido.

Para mostrar o controle de seções que contém as informações de alvarás de execução da obra, configure uma regra para executar essa função no campo Boolean se todos os campos na seção de informações de contato contiverem dados.

Início da Página

Funções de texto

concat

Combina dois ou mais campos de cadeias de caracteres de texto em uma única cadeia de caracteres de texto.

Sintaxe

concat(text1, text2, ...)

Argumento

Descrição

text1

Um campo que contém texto que será combinado em uma única linha de texto com o texto em argument2.

text2, …

Um ou mais campos adicionais que contém(êm) texto que será combinado com o campo anterior. Separe os campos de texto por vírgula.

Exemplo

Suponha que você esteja criando um modelo de formulário que contém um campo chamado fldFirstName e um campo chamado fldLastName. Adicione a seguinte fórmula a um terceiro campo para fazer com que ele contenha o texto “Este formulário foi preenchido por <nome> <sobrenome>.”:

concat ("este formulário preenchido pelo", fldFirstName, "", fldLastName, ".")

Observação: Qualquer texto real digitado como argumento textual, incluindo espaços ou pontuação, precisa ser inserido entre aspas (").

contains

Retorna true se o primeiro campo ou cadeia de caracteres de texto contiver o segundo. Caso contrário, retorna false.

Sintaxe

contains(within_text, find_text)

Argumento

Descrição

within_text

O campo que contém o texto que será pesquisado.

find_text

O campo que contém o texto ou ou texto entre aspas duplas (" ") a ser pesquisado no primeiro argumento.

Exemplo

Suponha que você esteja criando um modelo de formulário com três campos de texto. O primeiro permitirá que um usuário digite um valor extenso de texto no primeiro controle de texto, chamado fldText. O segundo permitirá que um usuário digite um pequeno segmento de texto e é chamado fldFindText. A terceira caixa de texto comparará a segunda caixa de texto à primeira, bem como indicará se o valor no segundo campo é localizado no primeiro campo e exibirá o resultado. Eu teria a seguinte fórmula como valor padrão:

contains(fldText,fldFindText)

normalize-space

Remova espaços em branco de uma cadeia de caracteres de texto.

Observação: Isso removerá quaisquer espaços em branco à direita, à esquerda e de repetição de um campo com um tipo de dados de texto.

Sintaxe

normalize-space(text)

Argumento

Descrição

text

O texto que contém os espaços à esquerda, de fim de linha e repetidos em branco que você deseja remover. O texto deve estar entre aspas duplas (" ").

Exemplo

Suponha que você crie um modelo de formulário que contém um campo chamado fldText (que está associado a um controle de caixa de texto). Para normalizar qualquer texto digitado no primeiro campo e exibir qual é o valor no primeiro campo sem nenhum espaço em branco em excesso, adicione um segundo campo à seguinte fórmula como valor padrão:

normalize-space(fldText)

starts-with

Retorna true se o primeiro campo ou cadeia de caracteres de texto começa com o segundo. Caso contrário, retorna false.

Sintaxe

starts-with(text, start_text)

Argumento

Descrição

text

O nome do campo que contém o texto a ser procurado. Separe os argumentos por vírgula.

start_text

O texto a ser procurado no início do campo especificado no primeiro argumento. Esse argumento pode ser um campo ou texto entre aspas duplas (" ").

Exemplo

Suponha que você esteja criando um modelo de formulário com três campos de texto. O primeiro permitirá que um usuário digite um valor extenso de texto no primeiro controle de texto, chamado fldText. O segundo permitirá que um usuário digite um pequeno segmento de texto e é chamado fldFindText. A terceira caixa de texto comparará a segunda caixa de texto à primeira, bem como indicará se o valor no primeiro campo começa com o valor no segundo campo e exibirá o resultado. Eu teria a seguinte fórmula como valor padrão:

starts-with(fldText, fldFindText)

string

Converte um valor em cadeia de texto.

Sintaxe

string(value)

Argumento

Descrição

value

O campo que contém o valor que será convertido em texto.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por empreiteiras para solicitar alvarás de execução da obra. O modelo de formulário contém uma seção em que a empreiteira pode digitar seu endereço comercial. Para verificar se a empreiteira está digitando um endereço válido, o modelo de formulário tem uma conexão de dados a um serviço Web que possa verificar o endereço. Se o endereço for verificado, a empreiteira poderá enviar o formulário a um banco de dados SQL. O banco de dados SQL usa um campo de texto para o endereço. O serviço Web exige que o número do endereço seja um tipo de dados numéricos e que o nome da rua seja um tipo de dados de texto.

Para enviar dados ao serviço Web e ao banco de dados SQL, o endereço precisa ser armazenado como dois tipos de dados diferentes:

  • Para enviar o endereço ao serviço Web, o número do endereço precisa ser um tipo de dados numéricos.

  • Para enviar o endereço ao banco de dados SQL, tanto o número do endereço quando o nome da rua precisam ser do tipo de dados de texto.

Você também quer que a empreiteira digite o endereço somente uma vez. Para converter o endereço nos tipos de dados corretos e tentar garantir que a empreiteira digite o endereço apenas uma vez, o formulário contém um campo para inserir o número do endereço chamado fldAddressNumber e outro campo para inserir o nome da rua. O campo fldAddressNumber é um tipo de dados numéricos e o campo de nome da rua é um tipo de dados de texto.

Para enviar o endereço completo (tanto o número do endereço quanto o nome da rua) ao banco de dados SQL, é necessário combinar os valores no campo fldAddressNumber e o campo de nome da rua em um único valor que é um tipo de dados de texto. Primeiro é necessário converter os dados numéricos no campo fldAddressNumber, que armazena os dados como um tipo de dados numéricos, em um tipo de dados de texto. Adicione um campo à fonte de dados que conterá o endereço completo como um tipo de dados de texto.

Para converter os dados de texto no campo fldAddressNumber em um tipo de dados de texto para que seja possível usar o Serviço Web, configure outro campo que conterá o número do endereço como tipo de dados de texto. Para converter o número do endereço de um tipo de dados numéricos em um tipo de dados de texto, use a seguinte fórmula como valor padrão para este campo:

string(fldAddressNumber)

string-length

Retorna o número de caracteres em uma cadeia de texto.

Sintaxe

string-length(text)

Argumento

Descrição

text

O campo cujo valor é o texto que deseja contar.

Exemplo

Suponha que você esteja criando um modelo de formulário que contém um campo chamado fldText, que está associado a um controle de caixa de texto. Seu modelo de formulário inclui um segundo campo que é usado para contar o número de caracteres digitados no primeiro formulário. Para fazer isso, o segundo campo conteria a seguinte fórmula como valor padrão:

string-length(fldText)

substring

Retorna uma parte específica de uma cadeia de caracteres de texto. O segundo argumento especifica a posição de início e o terceiro argumento especifica quantos caracteres serão incluídos.

Sintaxe

substring(text, start_position, char_count)

Argumento

Descrição

text

Um campo com um tipo de dados de texto ou texto entre aspas duplas (" "). A função procura esse texto e retorna todos os caracteres da posição especificada no segundo argumento até o número de caracteres especificados no terceiro argumento ou até o final do texto, o que ocorrer primeiro.

start_position

A posição de início do texto a ser recuperado do primeiro argumento. Esse argumento precisa ser um número inteiro ou uma referência a um campo configurado para armazenar tipos de dados de número inteiro (integer).

char_count

O número de caracteres que você deseja recuperar, começando na posição de início especificada no segundo argumento. Esse argumento precisa ser um número inteiro ou uma referência a um campo configurado para armazenar tipos de dados de número inteiro (integer).

Exemplo

Você está criando um modelo de formulário que contém os seguintes campos e controles:

  • Um campo chamado fldText associado a um controle de caixa de texto. Esse campo contém o texto que a função pesquisa.

  • Um campo chamado fldStartingPosition que está associado a um controle de caixa de texto. Esse campo é configurado como um tipo de dados de número inteiro. O campo contém a posição de início da função.

  • Um campo chamado fldNumberOfCharacters que está associado a um controle de caixa de texto. Esse campo está configurado como tipo de dados de número inteiro. O campo contém o número de caracteres que a função retorna.

  • Um controle de caixa de texto que mostra os resultados da função. O controle de caixa de texto contém a seguinte fórmula:

substring(fldText, fldStartingPosition, fldNumberOfCharacters)

Se um usuário digitar “Este formulário foi criado com base em um modelo de formulário do InfoPath.” na primeira caixa de texto, seguido de 4 na segunda e 16 na terceira, a quarta caixa de texto conterá “e formulário foi cr”.

substring-after

Retorna o texto na primeira cadeia de caracteres de texto que segue a primeira ocorrência da segunda cadeia de caracteres de texto.

Sintaxe

substring-after(text, find_text)

Argumento

Descrição

text

Um campo com um tipo de dados de texto ou o texto entre aspas duplas (" "). A função pesquisa o texto nesse argumento e retorna todos os caracteres que seguem o texto no segundo argumento.

find_text

O texto a ser pesquisado no texto do primeiro argumento. O texto pode ser o valor no campo com um tipo de dados de texto ou texto entre aspas duplas (" "). A função pesquisa o texto no primeiro argumento e retorna todos os caracteres que seguem o texto nesse argumento.

Exemplo

Você está criando um modelo de formulário que contém os seguintes campos e controles:

  • Um campo chamado fldText associado a um controle de caixa de texto. Esse campo contém o texto que a função pesquisa.

  • Um campo chamado fldSubstringText associado a um controle de caixa de texto. Esse campo contém o texto que é o segundo argumento da função.

  • Um controle de caixa de texto que mostra os resultados da função. O controle de caixa de texto contém a seguinte fórmula:

substring-after(fldText, fldSubstringText)

Se um usuário digitar “Este formulário foi criado com base em um modelo de formulário do InfoPath.” no campo fldText, e “InfoPath” no segundo, o terceiro controle de caixa de texto conterá “.”

substring-before

Retorna o texto na primeira cadeia de caracteres de texto que antecede a primeira ocorrência da segunda cadeia de caracteres de texto.

Sintaxe

substring-before(text, find_text)

Argumento

Descrição

text

Um campo com um tipo de dados de texto ou o texto entre aspas duplas (" "). A função pesquisa o texto nesse argumento e retorna todos os caracteres que vêm antes do texto no segundo argumento, find_text.

find_text

O valor a ser pesquisado no argumento do texto. Esse valor pode ser o valor em um campo com um tipo de dados de texto ou texto entre aspas duplas (" "). A função pesquisa o texto no primeiro argumento (text) e retorna todos os caracteres que vêm antes do texto nesse argumento.

Exemplo

Você está criando um modelo de formulário com os seguintes campos e controles:

  • Um campo chamado fldText associado a um controle de caixa de texto. Esse campo contém o texto que a função pesquisa.

  • Um campo chamado fldSubstringText associado a um controle de caixa de texto. Esse campo contém o texto que é o segundo argumento da função.

  • Controle de caixa de texto AA que mostra os resultados da função. O controle de caixa de texto contém a fórmula a seguir:

substring-before(fldText, fldSubstringText)

Se um usuário digitar “Este formulário foi criado com base em um modelo de formulário do InfoPath.” no campo fldText, e “criado” no segundo, o terceiro controle de caixa de texto conterá “Este formulário foi”.

translate

Retorna a primeira cadeia de caracteres de texto com cada caractere na segunda cadeia de caracteres de texto substituída pelo caractere na posição correspondente da terceira cadeia de caracteres de texto.

Sintaxe

translate(text, find_chars, replace_chars)

Argumento

Descrição

text

O nome do campo que contém o texto cujos caracteres serão substituídos. Separe os argumentos por vírgula.

find_chars

Um caractere ou o valor de um campo com um tipo de dados de texto que será substituído pelos caracteres no terceiro argumento. Separe os argumentos por vírgula.

replace_chars

Um caractere ou o valor de um campo com um tipo de dados de texto que substituirá cada instância dos caracteres no segundo argumento.

Exemplo

Suponha que você esteja criando um modelo de formulário cujos formulários serão usados por empreiteiras para solicitar alvarás de execução da obra. O modelo de formulário contém uma seção em que a empreiteira pode digitar seu endereço comercial. A seção contém um campo chamado fldStreetAddress que está associado a um controle de caixa de texto em que a empreiteira pode digitar seu endereço.

Para verificar se a empreiteira está digitando um endereço válido, use uma conexão de dados a um serviço Web que possa verificar o endereço. O serviço Web exige caracteres minúsculos no endereço.

Para converter qualquer caractere maiúsculo no endereço em minúsculo, adicione outro campo à fonte de dados para que contenha o endereço que é convertido em caracteres minúsculos. O valor padrão desse campo contém a seguinte fórmula:

translate(fldStreetAddress, ABCDEFGHIJKLMNOPQRSTUVWXYZ, abcdefghijklmnopqrstuvwxyz)

Início da Página

Funções de URL

SharePointListUrl

Retorna o endereço da biblioteca de listas ou formulários do SharePoint em que o formulário está hospedado (somente InfoPath 2010).

Sintaxe

SharePointListUrl()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário para uma lista do SharePoint e deseje adicionar um link para o local onde a lista está hospedada, como “http://sharepointserver/site/list/”. Para fazer isso, adicione um controle de hiperlink e defina-o como Somente Leitura; defina o valor padrão do campo ao qual o controle está vinculado da seguinte maneira:

SharePointListUrl()

Observação: Se o modelo de formulário não estiver hospedado em um servidor SharePoint, a função SharePointListUrl () retornará apenas "http://sharepointserver/site/list/".

SharePointServerRootUrl

Retorna o endereço do servidor do SharePoint em que o formulário está hospedado (somente InfoPath 2010).

Sintaxe

SharePointServerRootUrl()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário para uma lista do SharePoint e deseje adicionar um link para a raiz do servidor do SharePoint em que a lista está hospedada, como “http://sharepointserver/site/list/”. Para fazer isso, adicione um controle de hiperlink e defina-o como Somente Leitura; defina o valor padrão do campo ao qual o controle está vinculado da seguinte maneira:

SharePointServerRootUrl()

Observação: Se o modelo de formulário não estiver hospedado em um servidor SharePoint, a função SharePointListUrl () retornará apenas "http://sharepointserver/site/list/".

SharePointCollectionUrl

Retorna o endereço do conjunto de sites do SharePoint em que o formulário está hospedado (somente InfoPath 2010).

Sintaxe

SharePointCollectionUrl()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário para uma lista do SharePoint e deseje adicionar um link para o conjunto de sites do servidor do SharePoint em que a lista está hospedada, como “http://sharepointserver/sitecollection/”. Para fazer isso, adicione um controle de hiperlink e defina-o como Somente Leitura; defina o valor padrão do campo ao qual o controle está vinculado da seguinte maneira:

SharePointCollectionUrl()

Observação: Se o modelo de formulário não estiver hospedado em um servidor SharePoint, a função SharePointListUrl () retornará apenas "http://sharepointserver/sitecollection/".

SharePointSiteUrl

Retorna o endereço do site do SharePoint em que o formulário está hospedado (somente InfoPath 2010).

Sintaxe

SharePointSiteUrl()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário para uma lista do SharePoint e deseje adicionar um link para o site do SharePoint onde a lista está hospedada, como “http://sharepointserver/site/”. Para fazer isso, adicione um controle de hiperlink e defina-o como Somente Leitura; defina o valor padrão do campo ao qual o controle está vinculado da seguinte maneira:

SharePointSiteUrl()

Observação: Se o modelo de formulário não estiver hospedado em um servidor SharePoint, a função SharePointListUrl () retornará apenas "http://sharepointserver/site/".

Início da Página

A função userName

userName

Retorna o nome de usuário da pessoa que preenche o formulário (Microsoft InfoPath 2007 e posterior).

Observação: Se o usuário estiver preenchendo um formulário em um navegador da Web, o nome de usuário será recuperado do Microsoft Windows SharePoint Services 3.0 ou posterior.

Sintaxe

userName()

Esta função não usa argumentos.

Exemplo

Suponha que você esteja criando um modelo de formulário de relatório de despesas para sua empresa. Sua empresa de cartão de crédito envia registros das despesas de seus funcionários eletronicamente a um banco de dados mantido pela sua empresa. Para recuperar os registros de despesas de um funcionário, o banco de dados precisa do nome de usuário do funcionário que está preenchendo um formulário baseado em seu modelo de formulário.

Adicione um campo à fonte de dados do modelo de formulário para que armazene o nome de usuário do funcionário. Você também cria uma conexão de dados de consulta que usa o valor desse campo em uma consulta para recuperar as despesas.

Para verificar se o funcionário que preenche o relatório de despesas usa o nome de usuário correto, associe o campo a um controle de caixa de texto. Para exibir o nome do usuário que cria um formulário baseado nesse modelo de formulário, use a seguinte fórmula como valor padrão de um campo associado ao controle de caixa de texto:

userName()

Início da Página

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.