JasperReports - iReport - Subrelatórios

e ae…

bom a algumas semanas resolvi me aventurar pelo mundo dos relatorios com o jasper, descobri mta coisa interessante e várias duvidas e problemas surgiram, mas todos ate agora consegui passar, mas estou com um problema que ate entao nao achei solucao…

eh o seguinte, eh relativamente simples, mas o problema eh q eu tenho um uma classe que faz o acesso aos relatorios, acessando-os, gerando e gravando eles, o problema eh q eu tenho um relatorio (que criei no ireport) que possui subrelatorios, mas na hora de executar o meu programa ele mostra alguns alertas tipo esse…

22/03/2005 13:49:25 net.sf.jasperreports.engine.fill.JRBaseFiller fill
WARNING: The supplied java.sql.Connection object is null.

isolei o programa largando mensagens durante a sua execucao e descobri que essas Warnings sao geradas na seguinte instrucao…

JasperPrint impressao = JasperManager.fillReport(relatorio, parametros, jrRS);

e o mais estranho eh q esses alertas somente aparecem qdo eu executo um relatorio q possui subrelatorios…

alguem teria alguma ideia do q pode ser?

cara…eu acho que eh o connection / datasource expression do seu subreport
clique no subreport e vai na aba subReport …la vai ter essa parada do datasource expression, se seu subrelatorio nao precisa de conexao com banco deixo como Dont Use connection or dataSource

cara o meu subrelatorio precisa de conexao, e ate jah tinha setado o combo pra “Use Connection Expression”…

mas o problema continua… tava trocando umas ideia com uma pessoa aqui da empresa, e pensamos q pode ser q o jasper nao esteja conseguindo carregar os subrelatorios, sendo q no metodo fillReport eu tenho q passar o caminho do .jasper a ser executado… mas nao sei nao…

mas vlw pela ajuda!
toh ainda com problemas…

:roll:

opa, talvez isso ajude:
http://sourceforge.net/forum/message.php?msg_id=2926454

veja o último reply.

nao sei c isso vai ajudar , mas eu costumo compilar o subreport separademnte e passar como parametro pro pai…

cara entrei no link q vc passou, mas nehum dos replys tinha alguma solucao…

led,

tbm faco assim, dentro do relatorio pai possuo um parametro q diz onde q estao os .jasper dos subreports, e compilo todos e depois mando executar o relatorio pai, mas isto nao tem funcionado fora do ireport…

Tem sim.

Está fazendo assim:

 JasperPrint impressao = JasperManager.fillReport(relatorio, parametros, jrRS);

Ou seja, está passando um ResultSet para o relatório, como no tópico que te passei fez.

Para subrelatórios que dependem de conexão você precisa … passa um objeto connection para eles.

Sei que é um saco, mas … relatórios são um saco hehe

isso aeeeeee!!!

kra nao eh q deu certo… foi soh passar a conexao q bombou geral!!!

vlw ae cara!!! :smiley:

Estou com o mesmo problema, será que alguém pode me ajudar em como se cria uma conexão entre o relatório principal e o subrelatório?

ola pessoal…estou com o mesmo problema porem eu uso o xml data source… vcs sabem como eu poderia fazer?

meu problema é o seguinte…eu uso tres relatorios sendo um dentro do outro, ou seja, eu tenho um relatorio 1 que é o principal , um relatorio 2 que é sub relatorio do relatorio 1 e um relatorio 3 que que é sub relatorio do relatorio 2…eu passo para minha pagina jsp uma xml em forma de input stream…mas na hora que eu vou gerar o *.jrprint a partir do *.jasper do meu relatorio gera um erro que é esse:

“ERROR LOADING OBJECT”

o meu codigo fonte é esse:

String relatorio = “inventario”;
String caminhoXml ="/relatorio/regional";
String pathRelatorio = “C:/Documents and Settings/Marina/Desktop/xmldatasource/inventario/”;
String extensao = “pdf”;
String xmlJasper = pathRelatorio + relatorio +".jasper"
String xmlJrprint = pathRelatorio + relatorio +".jrprint
String xmlArq = pathRelatorio + relatorio +"."+ extensao;

InputStream meuInput = new BufferedInputStream(request.getInputStream());
JRXmlDataSource jrxmlds = new JRXmlDataSource
(meuInput,caminhoXml);

HashMap hm = new HashMap();

Map parameters = new HashMap();

JasperExportManager exportarHtmlPdf = new JasperExportManager();

//a partir daqui da problema
JaperFillManager.fillReportToFile( xmlJasper, parameters, jrxmlds );
//nessa linha

exportarHtmlPdf.exportReportToPdfFile( xmlJrprint );

POR FAVOR ME AJUDEM…