Relatorios Jasper

16 respostas
anderson.bonavides

Pessoal estou com um NullPointException na linha:

InputStream relatorioJasper = getClass().getResourceAsStream(jasper);

Eu não sei como corrigir este InputStream.

public String geraRelatorio() {
		String jasper = getDiretorioReal("./relatorios/usuario/relatorioDeUsuarios.jasper");
		
		List<Usuario> usuarios = listaUsuarios();
		
		InputStream relatorioJasper = getClass().getResourceAsStream(jasper);
		
		JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(usuarios);
		try {
			JasperPrint print = JasperFillManager.fillReport(relatorioJasper, new HashMap(), ds);
			preenchePdf(print);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return saida;
	}

Grato!

16 Respostas

V
InputStream relatorioJasper = getClass().getResourceAsStream("/nome_do_pacote/meuArquivo.jasper");
anderson.bonavides

Mas isso ja está sendo feito na primeira linha do método:

String jasper = getDiretorioReal("./relatorios/usuario/relatorioDeUsuarios.jasper");

Isso é o que a linha me retorna a variável jasper:


Jasper: D:\Anderson Documentos\Java\Projetos\ProjetoBase\src\main\webapp\relator
ios\usuario\relatorioDeUsuarios.jasper

V

Mas este é o problema voce nao pode passar o diretorio real, seu arquivo .jasper tem q estar em um pacote dentro do arquivo .war ou .jar.

anderson.bonavides

Então pelo que estou entendendo terei que criar um pacote soh para guardar os arquivos jasper?

V

Exatamente…

eu tenho um pacote “com.meuprojeto.reports”… dentro coloco todos os .jasper

InputStream relatorioJasper = getClass().getResourceAsStream("/com/meuprojeto/reports/meuArquivo.jasper");
anderson.bonavides

Humm saquei, agora te pergunto eu posso colocar dentro da pasta web-inf?

V

No web-inf nao, tem que ser no source, que é onde os pacotes e suas classes sao criadas.

Qual IDE vc esta utilizando ?

anderson.bonavides

Estou utilizando o eclipse. Eu ja tinha conseguido fazer os relatórios com uma conexão JDBC e o relatório estava neste luga onde vc viu no meu post. Mas tive q mudar a geração de relatório de Resulset para JRBeanCollectionDataSource já que eu tenho uma conexão com hibernate.
Achei realmente muito estranho o fato de se jogar arquivos jasper em um pacote de classes, ou seja, no source. Mas fazer oq! hehe vou modificar.

Obrigado pela força, vou testar aki e qq coisa eu posto.

anderson.bonavides

Deu certo vdb só tem um outro problema, tenho que compilar o relatório com o iReport mas não consigo conectar ao hibernate. Como é possível fazer tal configuração?

V

para vc compilar no iReport vc nao precisar ter conexao com o hibernate nem com o banco.

anderson.bonavides

E como eu vou ter o arquivo jasper se não poder compilar?

furutani

Você pode compilar sem usar a fonte de dados

V

Nao disse que vc nao pode compilar, disse que voce pode compilar sem conexao com a base ou hibernate.

anderson.bonavides

Humm saquei…

Obrigado vdb, com essas informações vou ver se consigo botar pra funcionar.

Grato!

L

Olá pessoal, sou novo por aqui, pois bem…
Gostaria de saber se alguém pode me ajudar no seguinte problema:

Estou criando o esqueleto do relatório no IReport ok?!
Posteriormente quero gerar o relatório com minha base de dados. Muito bem,
estou quase conseguindo isso, se não fosse pelo problema de, um dos campos
da base de dados é do tipo TEXT, e na hora de imprimi-lo no relatório, está sendo
imprimida somente o início do conteúdo, ou seja, não estou conseguindo montar
o relatório , na parte de campos do BD TEXT, pois quanto é do tipo INT ou String
da certo, pois há um limite de caracteres neh?! Obrigado desde já! Até mais pessoal!!!

V

E ai…

Voce deve aumentar o campo, tipo fazer um retangulo, quadrado, do tamanho de sua preferencia.

Criado 4 de maio de 2009
Ultima resposta 1 de jul. de 2009
Respostas 16
Participantes 4