Chamar classe do java no ireport

olá pessoal
existe uma maneira de chamar uma classe do java no ireport ?
tenho uma classe que mascara os campos no formulário
no ireport já consegui montar a mascara, mas são muitos campos e relatórios com a mesma mascara
se eu chamar essa classe de mascara no ireport resolveria
tem como
obrigado

Tem sim cara, eu por exemplo tenho relatorios que eu utilizo regex , ou vc pode tb pode disponibilizar uma biblioteca sua adicionando um .jar no ireport.

li na web que se eu adicionar os pacotes do meu projeto no classpath do ireport funciona sem precisar criar jar

fica + facil

alguém ja viu alguma coisa parecida ?

obrigado

acho que pode se tornar inviável qnto a agilidade e tudo mais…

mas fica em aberto, eu particularmente nao faria isso =)

mas como eu faço isso
já adicionei o pacote no classpath do ireport
como fica a chamada
igual ao java mesmo
copiei o codigo do java e colei no ireport, no campo “expression” mas da erro

Posta seu código e diz o que vc precisa, fica mais facil.

eu tenho essa classe abaixo que serve para “mascarar” os campos …


package sysweb;

import java.text.ParseException;
import javax.swing.text.MaskFormatter;

public enum Mascara {

    CNPJ("##.###.###/####-##"),
    PLAQUETA("######/## ######");
    
    private String mask;
    
    private Mascara(String mask) {
        this.mask = mask;
    }
    
    public MaskFormatter getMascara() {
        try {
			return new MaskFormatter( mask );
		} catch (ParseException e) {
			return null ;
		}
    }

	public String mascarar_cnpj(String cnpj) {
		if (cnpj.trim().equals("")) return "";
		else return cnpj.substring(0,2) + "." + cnpj.substring(2,5) + "." + cnpj.substring(5,8) + "/" + cnpj.substring(8,12) + "-" + cnpj.substring(12,14);
 	}

	public String mascarar_plaqueta(String plaqueta) {
		if (plaqueta.trim().equals("")) return "";
		else return plaqueta.substring(0, 6) + "/" + plaqueta.substring(6,8) + " " + plaqueta.substring(9,15); 
	}

}

no jav aeu chamo ela da seguinte forma

String vai = Mascara.PLAQUETA.mascarar_plaqueta(rs.getString(1).trim()) ;
System.out.println(vai);

agora quero chamar essa classe no ireport

senao tenho q montar a mascara manualmente em todos os campos do relatorio, e tenho varios relatorios, varios campos, varias mascaras …

Os dados que vc mostra são da tela ou do banco ?

Vc mostra esses dados no relatório com tipo diferente de String ?

Já pensou em enviar os dados ja formatados p/ o relatório ?

  • os dados sao do banco de dados postgres

  • como string

  • quando envio como parametro envio ja mascarado, no banco gravo sem mascara, mas nesse caso é o retorno do select …

É, ai vc precisaria meio que fazer um método dentro do irreport. Nesse caso não conheço se é possivel.

alguém dá uma luz por favor …
estou precisando disso meio urgente

já vi algo parecido…

deve acrescentar no classpath do iReport a sua classe de mascaramento…

PS.: o arquivo .class

e depois usa-la como mascarador do campo, ps.: tem que pesquisar tmb nao sei como faz

ja tentei isso
sem sucesso
nao sei se foi erro meu o que
mas não deu certo

ninguem ?