JasperReport - Como incluir mais de 1 Consulta em meu relatório?

3 respostas
L

Pessoal,

Estou começando a trabalhar com o JasperReport e estou com várias dúvidas.
Uma delas é:

Eu inclui uma consulta com todos os campos do cabeçalho da nota, esta consulta traz apenas 1 linha, então inclui em Page Header.
Agora, preciso incluir uma segunda consulta, com os itens desta nota em Detail1, mas como coloco esta segunda consulta?

Agradeço desde já…

3 Respostas

F

Você pode usar Subreport ou passar como parametro uma list com os dados da consulta e usar um JRBeanCollectionDataSource

L

Vou pesquisar sobre isso e retorno, obrigado!

L

Pessoal, eu tentei fazer com subreport, porém estou fazendo o seguinte processo.

1- No relatório master, eu incluo o subreport em Detail1
2 - Na inclusão estou fazendo o seguinte:
2.1 - Criar um novo Report - Próximo
2.2 - Layout Blank A4 - Próximo
2.3 - Informo a query e o banco - Próximo
2.4 - Seleciono os campos - Próximo
2.5 - Não agrupo - Próximo
2.6 - Coloco o nome - Próximo
2.7 - Uso a mesma conexao do relatório master - Fanalizo
3 - No subrelatório, eu incluo um Static text em Detail1 só para testar
4 - Mando visualizar meu subrelatório e aparece o texto ok
5 - Volto ao relatório master e mando visualizar, porém o relatório não gera, e recebo a seguinte mensagem:

Error filling print… Error executing SQL statement for : null
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : null at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:229) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:731) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:629) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1159) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:802) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:879) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1030) Caused by: java.sql.SQLException: Incorrect syntax near ‘.’. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258) at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632) at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477) at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:776) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:222) … 11 more
Print not filled. Try to use an EmptyDataSource…

A consulta esta certa e retorna dado.
E ai…alguem sabe o que tenho que fazer?

Criado 9 de maio de 2012
Ultima resposta 10 de mai. de 2012
Respostas 3
Participantes 2