Duvida quanto metodos de filtro em relatorios....ireport

Olá pessoal;

Estou desenvolvendo um software e tenho um releatorio o qual exibirá todo conteudo de uma tabela. Gostaria de saber como fasso para acrescentar uma
forma de filtrar estes dados exibidos no relatorio.
Exemplo: acrescentar uma forma de filtrar por data onde teria no form os campos
data_inicio e data_final juntamente com o botão gera_relatorio.
Alguem poderia me ajudar?

Atenciosamente.

Faça o filtro na interface, antes de enviar a query para o relatório. Por exemplo:

String sql = "select ...";

if (filtro1 != null) {
	sql += "where ...";
} else if (filtro 2 != null) {
	sql += "where ...";
}

geraRelatorio(sql);

Obviamente vai ser preciso um filtro para saber quando usar WHERE e uando usar AND, mas o caminho é esse. :wink:

Tenho este metodo mostrado abaixo, sera que podeiar adapta-lo?

public void geraRelatorio_veiculos_desejados() throws JRException, Exception { 

Connection con = getConnection(); 
Statement stm = con.createStatement(); 
String query = "select * from cadastro"; 
ResultSet rs = stm.executeQuery(query); 
HashMap parameters = new HashMap(); 
JasperPrint jp = JasperFillManager.fillReport("C:\\Relatorios\\rel_veiculos.jasper", parameters, con); 
JasperViewer jrv = new JasperViewer(jp,false); 
jrv.setVisible(true); 
JasperViewer.viewReport("C:\\Relatorios\\rel_veiculos.pdf", true); 

} 

Você poderia fazer tbm o sql dentro do ireport…ou fazer o sql antes de executar o relatório mandando seu objeto preenchido de acordo com ele.

Eu fiz um teste alterando apenas o select do codigo, mas não funcionou.
O select ficou assim:

[code]
public void geraRelatorio_veiculos_desejados() throws JRException, Exception {

    Connection con = getConnection();   
    Statement stm = con.createStatement();   
    String query = "select * from cadastro where data_atual >= '"+data_pesquisa2.getText().toUpperCase()+"' and '"+data_pesquisa3.getText().toUpperCase()+"'"; 
    
    ResultSet rs = stm.executeQuery(query);   

    HashMap parameters = new HashMap();   

    JasperPrint jp = JasperFillManager.fillReport("C:\\Relatorios\\rel_veiculos.jasper", parameters, con);   
    JasperViewer jrv = new JasperViewer(jp,false);   
    jrv.setVisible(true);   
    
    JasperViewer.viewReport("C:\\Relatorios\\rel_veiculos.pdf", true);
     
}  [/code]

Teria algo mais a acrescentar ?