Máscara com IReport

Eaê rapaziada,

alguém sabe como colocar uma máscara de CPF no IReport?
O que exibo no relatório é a variável $F{CPF} que vem do BD como String.

Já tentei colocar ###.###.###-##, mais não funciona.

:roll:

Valeu.

hehe, cara se descobrir por favor posta ae hein, ja revirei o Dr. Google, ma ate hj ainda naum axei uma que se encaixe com o CPF.

Falows

Ola,
neste caso, a solução que adotamos foi fazer uma classe java, passando o número do CPF como parametro, framtando ela na classe.

Vcs teriam que criar a classe, e dentro dela um método de conversão e formatação.

Ai no relatório, em Parameters, criar um novo parametro, por exemplo reportClass. Onde o tipo dele seria a classe (br.com.teste.nomeClasse), e no defaul vcs iniciariam ele assim, por exemplo:
new br.com.teste.nomeClasse()

E depois, no TextField, no campo TextFieldExpression, vcs chamam a função que vcs criaram na classe, por exemplo:
(($F{NR_CPF} == null) || ("".equals($F{NR_CPF}.trim()))) ?
“não informado” : ($P{reportClass}.cpf($F{NR_CPF}))

Espero ter ajudado !

A única forma que imaginei fazer foi formatando na própria query.

SELECT SUBSTR(TO_CHAR(pf.TXT_CPF, '00000000000'), 0, 4) || '.' || 
SUBSTR(TO_CHAR(pf.TXT_CPF, '00000000000'), 5, 3) || '.' || 
SUBSTR(TO_CHAR(pf.TXT_CPF, '00000000000'), 8, 3) || '-' || 
SUBSTR(TO_CHAR(pf.TXT_CPF, '00000000000'), 11, 2)AS CPF, ......

O problema que dessa forma eu amarrei a solução ao Banco à função do ORACLE.
Gostei da forma que “RagGirl” fez. Farei o mesmo a partir de agora.
RagGirl provavelmente irei fazer novas perguntas pra vc caso eu encontre alguma dificuldade.

Obrigado :thumbup:

po vc pode fazer com substring dentro do ireport, mas antes num esqueca de verificar o tamanho do campo, para num dá problema
por exemplo

campo.lenght() == 11?
campo.substring(0,3)+"."+campo.substring(3,6)+"."+campo.substring(6,9)+"."+campo.substring(9,11):
campo

olá
não estou conseguindo colocar a mascara do jeito que RagGirl respondeu
alguém pode me ajudar
obrigado

Faz como o Vijava mostrou que funciona legal!

eu tenho uma classe no eclipse com todas as mascaras do meu sistema
tem como chamar essa classe no ireport
desta maneira que o vijava funciona
mas se um dia mudar, tenho que lembrar de mudar em 2 lugares
se eu chamar a classe de mascara mudo apenas em 1 local
aheahaehaeheah + facil né
tem como ?
obrigado

Cara, consegui fazer isso passando um bean com os telefones ja formatados pro ireport

Aqui funfou quando eu mando já formatado das beans tbm !!
(tbm nao consegui achar nenhuma maneira de faer isso no IReport…=/)

Cara, acho que não tem nenhuma maneira ja pronta de se fazer isso.

passar o campo formatado também consigo
o problema é quando o campo tem que ser formatado está no select
dae fumoooooooooo