Hoje eu recebi uma dúvida de um inscrito sobre numeração de páginas frente e verso no Crystal Reports. Ao invés de simplesmente respondê-lo, resolvi escrever um post rápido detalhando a solução.
Veja a questão (editada para fins de publicação):
André bom dia,
Estou fazendo um relatório em Crystal Reports e o cliente quer que os números de páginas saiam da seguinte forma: “Pag. 1″ e a próxima “Pag. 1 verso” e assim sucessivamente, pois ele vai imprimir o relatório em frente e verso, creio eu que um loop no crystal resolveria isto, mas não tenho muita intimidade com o Crystal e não sei como fazer este loop, se fosse no desenvolvimento eu faria tranquilamente.
Se puder me ajudar te agradecerei muito
Claro que eu posso ajudar. A maneira como eu pensei em solucionar essa questão foi utilizando uma simples fórmula. Com a página atual real (função “PageNumber” no Crystal Reports), podemos detectar se estamos em uma página ímpar (páginas “frente“) ou em uma página par (páginas “verso“). Dependendo do resultado se a página for par ou ímpar, utilizamos “Pag. X” ou “Pag. X verso“. Veja a tabela abaixo:
Note que a fórmula para descobrir o número final da página é diferente dependendo da página ser par ou ímpar. Para páginas ímpares (páginas “frente“), utilizamos a fórmula: (“Página Real” + 1) / 2. Para páginas pares (páginas “verso“), utilizamos a fórmula: “Página Real” / 2.
Na linguagem de fórmulas do Crystal Reports, para descobrirmos se um número é ímpar, basta utilizarmos o operador “mod” de 2. Esse operador retorna o resto da divisão de um número pelo outro (nesse caso o número “dois“). No caso do resto da divisão ser “1“, o número é ímpar. Caso contrário (resto zero), o número é par. Aí basta aplicar a fórmula para calcular o número final conforme vimos na tabela:
// Página ímpar if (PageNumber mod 2) = 1 then "Página " + CStr((PageNumber + 1) / 2, 0) // Página par else "Página " + CStr(PageNumber / 2, 0) + " verso"
E com isso temos o resultado esperado. Na página 1, temos “Página 1″. Na página 2, temos “Página 1 verso”. E aí por diante.
É isso aí. Espero que essa dica ajude outras pessoas também. Como você pode perceber, eu costumo dar bastante atenção para os meus inscritos. Caso você também queira ficar por dentro das novidades do meu site, além de receber dicas que eu só compartilho por e-mail, assine a minha newsletter agora mesmo através desse link ou utilizando o formulário abaixo.
Até a próxima!
André Lima
The post Dica rápida: Numerando páginas frente e verso no Crystal Reports appeared first on André Alves de Lima.