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. 
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 ?