Chamar classe do java no ireport

13 respostas
M

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

13 Respostas

R

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.

M

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

TheKill

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

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

M

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

thiago_spdvr

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

M

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 …

thiago_spdvr

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 ?

M
  • 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 …

thiago_spdvr

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

M

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

TheKill

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

M

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

M

ninguem ?

Criado 19 de abril de 2010
Ultima resposta 21 de set. de 2010
Respostas 13
Participantes 4