[MailMerge] Tutorial 4:: Criando mala direta com campos calculados

[MailMerge] Tutorial 4:: Criando mala direta com campos calculados

Overview

Bem-vindos a mais uma etapa de nosso curso sobre o uso do Mail Merge no Word, combinando também o poder do Excel. Desta vez, vamos nos aventurar um pouco mais nos recursos disponíveis, adicionando um toque de magia ao nosso documento: a capacidade de realizar cálculos automaticamente. Vou guiá-los através do processo de adicionar e calcular valores totais por cliente - um feito não somente útil, mas que promete elevar a qualidade e precisão dos seus documentos de maneira surpreendente. Então, se você está pronto para mergulhar nesta jornada de aprendizado e eficiência, siga adiante!

Este tutorial faz parte da sequência no curso de utilização do Mail Merge do Word. Para esta seção, precisaremos tanto do Excel quanto do Word utilizado no tutorial anterior. Nele vamos incluir duas colunas: Quantidade de produtos e valor unitário.

A ideia é simular a quantidade de produtos que um cliente comprou, qual o valor unitário de cada produto e fazer com que o documento calcule o valor total de cada cliente.

Feche o modelo de documento do Word e abra o arquivo do Excel com a fonte de dados. O primeiro passo é incluir as duas colunas no arquivo de fonte de dados:

Image without description

Image without description

Agora, adicione as novas colunas no modelo do Word:

Image without description

Image without description

Note que a coluna Total está vazia e as tags de NextRecord ainda não foram adicionadas. Faremos isso na sequência.

Aperte Ctrl + F9 para inserir uma nova expressão do Mail Merge:

Image without description

Image without description

Dentro dela, escreva o seguinte conteudo: = quantidade_comprada * valor_unitario. O resultado ficará parecido com este:

Image without description

Image without description

Copie esta expressão e cole em todas as linhas da tabela.

Atenção: Pode ser que o Word mostre a mensagem “Undefined Bookmark! …”. Não se preocupe com ela.

Por último, adicione a tag NextRecord ao final de cada linha de registro:

Image without description

Image without description

Clique em Preview Results:

Image without description

Image without description

Existe um porém com este tipo de abordagem: Quando sobram linhas e não existem mais registros….

Image without description

Image without description

Como sobraram linhas na tabela, mas o Word não tem mais linhas para processar, ele vai refazendo o cálculo com os últimos dados que ele tem. Neste exemplo, ele preenche o total das últimas linhas com o valor 4416,5 (22 * 200,75).

Para evitar este problema, podemos utilizar formulas condicionais na coluna. Para quem está acostumado a trabalhar com Excel, a sintaxe é bem parecida, quem não está.

O que precisará ser feito:

  • Uma verificação condicional (IF) checando se o campo quantidade_comprada é maior que zero;
  • Uma verificação condicional (IF) checando se o campo valor_unitario é maior que zero;
  • Se as duas condições acima forem atendidas, faz o calculo e exibe o valor total, se não, deixa o campo vazio.

Para fazer isso, você deve saber:

  • Fazer referência a um campo da tabela: { MERGEFIELD nome_do_campo };
  • Sintaxe da validação condicional (IF): { IF <condicional> “<resultado se verdadeiro>” “<resultado se falso>” }
  • As definições de formulas e referencias no MailMerge ficam entre {}, mas não são as que você digita pelo teclado, elas são especiais e só funcionam se inseridas pelo atalho Ctrl+F9

Para facilitar o entendimento, vamos fazer por partes…

  • Verificando se a quantidade_comprada é maior que zero: { IF { MERGEFIELD quantidade_comprada } > 0 “sim, é maior que zero” “não, é menor que ou igual a zero”};
  • Verificando se o valor_unitario é maior que zero: { IF { MERGEFIELD valor_unitario } > 0 “sim, é maior que zero” “não, é menor que ou igual a zero”};
  • Agora queremos verificar se ambos valores são maiores que zero:
    { IF { MERGEFIELD quantidade_comprada } > 0 “{ IF { MERGEFIELD valor_unitario } > 0 “sim, ambos valores são maiores que zero.” “não, é menor que ou igual a zero”}” “não, é menor que ou igual a zero”}
  • Na formula acima, se o valor quantidade_comprada for maior que zero, verificamos também se o valor_unitario é acima de zero. Agora precisamos incluir a formula que faz a conta quantidade comprada * valor_unitario:
    { IF { MERGEFIELD quantidade_comprada } > 0 “{ IF { MERGEFIELD valor_unitario } > 0 “{ = { MERGEFIELD quantidade_comprada } * { MERGEFIELD valor_unitario } }” “não, é menor que ou igual a zero”}” “não, é menor que ou igual a zero”}
  • O que restou fazer agora é “limpar” esta formula, ou seja, remove os textos informando que determinados valores não são acima de zero e deixar apenas “”.
    { IF { MERGEFIELD quantidade_comprada } > 0 “{ IF { MERGEFIELD valor_unitario } > 0 “{ = { MERGEFIELD quantidade_comprada } * { MERGEFIELD valor_unitario } }” "” }" “”}
  • Atenção: Copiar e colar a formula não irá funcionar. Lembre-se que as {} funcionam nas formulas apenas se forem inseridas utilizando Ctrl+F9.

Aplique esta formula a todas as linhas da tabela e clique em Preview Results:

Image without description

Image without description

Agora o Word irá exibir a totalização dos valores apenas quando os campos quantidade_comprada e valor_unitario forem maiores que zero.

Este modo de trabalhar é comum, mas existe outra forma mais fácil: Deixar toda lógica de cálculo na fonte de dados. No próximo tutorial, mostraremos como fazer isso.

No próximo tutorial, vamos mostrar como realizar esta mesma operação de uma forma mais simples e convencional.

Postagens nesta série