Query dinâmica no Ireport

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!!!