Galera já procurei na net mas não encontrei o que eu queria; a questão é a seguinte, estou desenvolvendo uma aplicação swing que gera automaticamente minhas consultas ao banco quando necessário, até aí tudo funciona perfeitamente, mas quando eu quero criar um relatório, aí já complica um pouco, procurei na net mas eu somente encontro a criação de relatórios pelo wizard do iReport, porém, eu quero que o relatório que eu montei apresente os dados que eu puxar na minha tela swing, sem eu ter que criar um relatório pra cada select que eu fizer.
Alguém tem alguma dica de como posso enviar a query montada automaticamente pro relatório que eu criei?
olha… passar a query é facil… vc cria um parametro String e passa…
no campo do sql vc poe: $P!{query} (nao esqueça do ponto de interrogação nesse caso)
agora o problema são os campos do relatório… que terao que ser modificados…
tem como vc montar um relatorio jasper todo via programação… porém é meio trabalhoso.
erico_kl
Você consegue isso passando um DataSource para o relatório… Este pode vir através do retorno de uma uma consulta sua (JRResultSetDataSource), ou, da forma mais OO, através de um JRBeanCollectionDataSource, onde você passa a sua lista de objetos…
Bambatera
Erico, onde tem um passo-a-passo pra passar o DataSource, pois é exatamente isso que eu quero, passar o ResultSet pro relatório, pra que seja apresentado com os filtros aplicados à consulta em tempo de execução.
erico_kl
Na verdade você pode passar o seu ResultSet no construtor de JRResultSetDataSource e aí passar este objeto para o fillReport com o JasperFillManager. Não tem muito segredo, dê uma olhada nessas classes e veja se você consegue implementar o que precisa. Qualquer coisa poste aqui conforme você for fazendo…
Bambatera
Erico, valeu pela ajuda, consegui resolver aqui, realmente é bem simples. Segue parte do código:
HashMap hmParam = new HashMap();
objRs = objQuery.executaQuery();
jrRs = new JRResultSetDataSource(objRs);
objRel = JasperFillManager.fillReport(strRelatorio, hmParam, jrRs);