Skip to main content

Usar fórmulas e variáveis simples

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Explicar o que é uma expressão do Visualforce e descrever os casos em que ela é usada.
  • Listar três ou mais variáveis globais disponíveis para serem usadas em expressões do Visualforce.
  • Adicionar uma expressão do Visualforce a uma página do Visualforce.
  • Usar uma função em uma expressão do Visualforce.
Nota

Nota

Deseja aprender em português (Brasil)? Comece o desafio em um Trailhead Playground de português (Brasil) e copie e cole os valores de português (Brasil). Se você não passar no desafio em sua organização de português (Brasil), recomendamos que (1) mude o local para os Estados Unidos, (2) mude o idioma para inglês, seguindo as instruções aqui, e (3) clique novamente no botão “Validar o desafio”.

Consulte o emblema Trailhead no seu idioma para saber mais sobre como aproveitar a experiência de Trailhead em outros idiomas.

Introdução às variáveis globais e expressões do Visualforce

As páginas do Visualforce podem exibir dados recuperados do banco de dados ou de serviços web, dados que mudam dependendo de quem está conectado e visualizando a página, e assim por diante. Esses dados dinâmicos são acessados na marcação por meio do uso de variáveis globais, cálculos e propriedades disponibilizados pelo controlador da página. Juntos, geralmente são descritos como expressões do Visualforce. Use expressões para resultados dinâmicos ou atribuição de valores para componentes ao atribuí-los a atributos.

Uma expressão do Visualforce é qualquer conjunto de valores literais, variáveis, subexpressões ou operadores que podem ser resolvidos a um único valor. As chamadas de método não são permitidas nas expressões.

A sintaxe de expressão no Visualforce é: {!expression }

Tudo dentro dos delimitadores {!} é avaliado e dinamicamente substituído quando a página é processada ou quando o valor é usado. Espaços em branco são ignorados.

O valor resultante pode ser um número primitivo (número inteiro, string, e assim por diante), um booleano, um sObject, um método de controlador, tal como um método de ação, e outros resultados úteis.

Variáveis globais

Use as variáveis globais para acessar e exibir valores do sistema e recursos em sua marcação Visualforce.

Por exemplo, o Visualforce fornece informações sobre o usuário conectado em uma variável global chamada $User. É possível acessar campos da variável global $User (e quaisquer outras) usando uma expressão do seguinte formulário: {!$GlobalName.fieldName }.

  1. Abra o Developer Console e clique em File (Arquivo) | New (Nova) | Visualforce Page (Página do Visualforce) para criar uma nova página do Visualforce. Insira UserStatus como nome da página.
  2. No editor, substitua qualquer marcação pelo seguinte.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Essa marcação cria uma caixa, pronta para adicionar informações úteis.
  3. Clique em Preview (Visualizar) para abrir uma visualização da página que você pode consultar enquanto faz alterações.
  4. Adicione a seguinte marcação entre as marcas <apex:pageBlockSection>: {!$User.FirstName }.Você verá seu nome no painel User Status (Status do usuário) que você criou.
  5. Adicione mais duas expressões que usam a variável global $User à marcação para o painel Status do usuário para que a página se pareça com o seguinte.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!$User.FirstName } {!$User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>

{!...} diz ao Visualforce que aquilo dentro das chaves é dinâmico e escrito na linguagem da expressão. Seu valor é calculado e substituído durante a execução, quando alguém visualiza a página.

As expressões do Visualforce não diferenciam maiúsculas e minúsculas e os espaços dentro de {!...}são ignorados. Portanto, todas essas expressões produzem sempre o mesmo valor:

  • {!$User.FirstName}
  • {!$USER.FIRSTNAME}
  • {!$user.firstname }

Expressões de fórmula

O Visualforce permite que você use mais do que variáveis globais na linguagem da expressão. Ele também dá suporte a fórmulas que permitem que você manipule valores.

Por exemplo, o caractere & é o operador de linguagem da fórmula que concatena strings.

  1. Na sua página UserStatus, substitua as expressões separadas pelo nome e sobrenome com a seguinte expressão de fórmula. Essa expressão combina o nome e o sobrenome do usuário conectado, separando-os com um espaço. A saída deve ser idêntica.
{!$User.FirstName & ' ' & $User.LastName}
  1. Adicione o que vem abaixo à marcação da página, embaixo das informações do usuário.
<p> Next week it will be {! TODAY() + 7 } </p>
<p> Today's Date is {! TODAY() } </p>

Essas fórmulas são mais complexas e usam a função TODAY(). As funções são cálculos integrados que você pode identificar pelo parêntese após o nome. A primeira expressão simplesmente calcula a data atual e a segunda usa o operador de adição para adicionar sete dias à data. O resultado na sua página terá esta aparência.

Next week it will be Thu Sep 25 00:00:00 GMT 2014.
Today's Date is Thu Sep 18 00:00:00 GMT 2014
  1. Adicione o que vem a seguir à marcação da página, embaixo das expressões de data.
<p>Tomorrow will be day number  {! DAY(TODAY() + 1) }</p>
<p>Let's find a maximum: {! MAX(1,2,3,4,5,6,5,4,3,2,1) } </p>
<p>The square root of 49 is {! SQRT(49) }</p>
<p>Is it true?  {! CONTAINS('salesforce.com', 'force.com') }</p>
<p>The year today is {! YEAR(TODAY()) }</p>

Algumas funções, como TODAY(), têm parênteses em branco, mas outras usam parâmetros, valores que a função deve usar para fazer os cálculos. Neste exemplo, YEAR() usa um parâmetro de data, fornecido pela função TODAY(), que não usa parâmetros. A função MAX() pode usar vários parâmetros. A função CONTAINS() é particularmente interessante. Ela retorna um valor booleano, algo que é true ou false. Ela compara dois argumentos de texto e retorna true se o primeiro argumento contém o segundo argumento. Caso contrário, retorna false. Nesse caso, a sequência de caracteres “force.com” está contida na sequência de caracteres “salesforce.com” e, portanto, ela retorna true.

Expressões condicionais

Use uma expressão condicional para mostrar informações diferentes com base no valor da expressão.

Por exemplo, se uma fatura não tem itens de linha, você pode preferir mostrar a palavra “nenhum” em vez de uma lista em branco. Ou se um item expirou, você pode preferir exibir “Encerrado” em vez de mostrar a data e hora de fechamento.

Você pode fazer isso no Visualforce usando uma expressão de fórmula condicional, como IF(). A expressão IF() usa três argumentos:

  • O primeiro é um booleano, algo que é true ou false. Por exemplo, a função CONTAINS(), que você usou antes.
  • O segundo argumento é o valor que será retornado se o primeiro parâmetro for true.
  • O terceiro argumento é o valor que será retornado se o primeiro parâmetro for false.
  1. Na sua página UserStatus, embaixo das outras expressões, adicione o código a seguir.
    <p>{! IF( CONTAINS('salesforce.com','force.com'),
         'Yep', 'Nope') }</p>
    <p>{! IF( DAY(TODAY()) < 15,
         'Before the 15th', 'The 15th or after') }</p>

Antes de salvar suas alterações e ver os resultados, tente prever o que será. O resultado na sua página terá esta aparência.

 Playground de expressões do Visualforce

A primeira expressão usa o mesmo cálculo da função CONTAINS() de antes. A diferença é que a função IF() converte o resultado booleano de CONTAINS() em um texto mais útil para exibir ao usuário. De maneira semelhante, a segunda expressão mostra uma mensagem durante a primeira metade do mês e outra na segunda metade.

  1. Exclua todas as suas expressões de teste e deixe somente as linhas que usam a variável global $User. Em outras palavras, volte para esta página.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!$User.FirstName & ' ' & $User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
  1. Vamos usar uma expressão condicional para fazer algo mais útil. Substitua a linha com a expressão $User.Username pelo código a seguir:
({! IF($User.isActive, $User.Username, 'inactive') })

isActive é outro campo disponível na variável global $User. É um campo booleano que é verdadeiro se o usuário está ativo e falso se o usuário foi desativado. Agora, o painel de status de usuário mostra o nome do usuário quando ele está ativo e “inativo” quando não.

Quero saber mais...

Há muitas variáveis globais e funções que você pode usar nas expressões do Visualforce.

Há quase duas dezenas de variáveis globais que podem ser utilizadas no Visualforce. Elas são úteis para obter informações sobre o usuário conectado no momento, conforme você viu, mas também para obter detalhes sobre a organização ($Organization), configurações ($Setup), detalhes sobre objetos personalizados ($ObjectType), ações disponíveis nesses objetos ($Action) e assim por diante. Consulte as Variáveis globais no Guia do desenvolvedor do Visualforce para saber mais detalhadamente.

Da mesma forma, há dezenas de funções que podem ser utilizadas no Visualforce. A lista é semelhante às funções disponíveis nos campos de fórmula (mas não exatamente igual). Quando elas se sobrepõem, as funções se comportam da mesma maneira, por isso, você pode reutilizar a maior parte do que já sabe sobre campos de fórmula quando escrever expressões do Visualforce. Consulte Funções no Guia do desenvolvedor do Visualforce para obter uma lista completa.

As expressões podem ser usadas de diversas maneiras e muitas vezes são usadas para fornecer valores aos atributos nos componentes do Visualforce.

Recursos

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback