Olá a todos
eu crio um ficheiro .jrxml com o ireport que utilizo no meu código java.
A dúvida é que a minha query não é sempre a mesma, variando consoante a escolha do utilizador. Como faço para passar uma query dinamicamente do java para o ficheiro .jrxml?
É possivel?
Obrigado
Como se define a escolha???
Olá Christielen
tipo: a minha query será algo do tipo:
Select * from table where semana=‘23’;
ou seja, a semana será escolhida pelo utilizador.
Quando chamo o relatório:[code]
JasperDesign jasperDesign = JRXmlLoader.load("C:\teste.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
Map parameters = new HashMap();
parameters.put("titulo", "titulo");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, getConnection());
JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\aiai.pdf");
[/code]
queria passar a query dinamicamente, e não uma que já tivesse sido feita no ireport.
Não sei se me fiz entender :roll:
[code]
public void geraRelatorio( ) throws JRException, Exception{
ResultSet rs = null;
Controle controle = new Controle();
rs = controle.consultarContasPagarDiaria();
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
Map parameters = new HashMap();
String reportDest = "D://Programas//iReport-1.2.5//ContasPagarDiaria.pdf";
JasperReport jr = JasperCompileManager.compileReport("D://Programas//iReport-1.2.5//ContasPagarDiaria.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jr, null,jrRS );
JasperExportManager.exportReportToPdfFile(jasperPrint, reportDest);
JasperViewer.viewReport(jasperPrint);
}[/code]
rs = controle.consultarContasPagarDiaria();
Onde na chamada do método consultarContasPagasDiaria() na classe Controle retorna o resultSet da consulta específica
Você poderá fazer uma ação para cada tipo de relatorio esperado, sempre retornando o resultSet da consulta.
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
Então você coloca o resultSet como acima.
Não sei se fui mto clara ou se fugi do escopo, qualquer coisa pergunte!!! :roll:
Christielen,
Testei e funcionou direitinho!
:lol: :razz:
Muito Obrigado!!!