Chamar um relatório Pronto a partir de uma classe java

3 respostas
I

Olá Pessoal,
Meu problema é o seguinte…Eu já gerei o relatório pelo Ireport. Ele tá pronto e funcionando perfeitamente com a conexão com o banco configurada no próprio Ireport. O que eu preciso é de uma classe java que simplesmente chame esse arquivo do ireport e o exiba.
Eu estava tentando o seguinte código abaixo:

package apresentacao;

import java.io.InputStream;
import java.util.ArrayList;

import java.util.HashMap;

import java.util.Map;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.view.JasperViewer;



public class Gerarrelatorio {

private static final String rel1 = "C:\Arquivos de programas\JasperSoft\iReport-3.0.0\rltAcumuladores300709.jasper";



private static final String rel2 =

"jasper/RelAlunosDisciplinas.jasper";



public Gerarrelatorio() throws Exception {


// parâmetros do relatório

Map parâmetros = new HashMap();

parâmetros.put("PUnidade","1");


InputStream ip = this.getClass().getResourceAsStream(rel1);

JasperPrint impressao = JasperFillManager.fillReport(rel1,parâmetros);

//exibe o relatório

JasperViewer viewer = new JasperViewer(impressao, true);

viewer.show();

}

public static void main(String[] args) throws Exception {

new Gerarrelatorio();

}

}

Ele chama o relatório mas diz que ele não tem páginas, no entanto quando eu rodo diretamente pelo Ireport ele funciona…alguém tem alguma ideia do que possa ser ?
Desde já agradeço
Igor P. Simões

3 Respostas

furutani

Você não está passando o Data Source

I

Então…o problema é que eu não queria passar nenhuma fonte de dados porque o próprio relatório se encarregaria de fazer isso. A conexão e a consulta já estão configuradas no relatório pelo Ireport e eu queria descobrir um meio de apenas chamar o relatório e ele se encarregaria de fazer a conexão com o banco e carregar a consulta…eu só passaria parametros para ele.
É possível fazer isso desse jeito ?

fredferrao

igorps:
Então…o problema é que eu não queria passar nenhuma fonte de dados porque o próprio relatório se encarregaria de fazer isso. A conexão e a consulta já estão configuradas no relatório pelo Ireport e eu queria descobrir um meio de apenas chamar o relatório e ele se encarregaria de fazer a conexão com o banco e carregar a consulta…eu só passaria parametros para ele.
É possível fazer isso desse jeito ?

Aquela conexao que voce cria la no IReport é apenas pra tu montar ele, no minimo voce deve passar a connection.

O SQL pode ficar la sem problemas, mas tu tem que passar a conexao.

Pelos menos eu nunca vi diferente.

Criado 13 de agosto de 2009
Ultima resposta 14 de ago. de 2009
Respostas 3
Participantes 3