Filtrar data no iReport

Bom dia pessoal,

Preciso fazer a impressão de um relatório, porém gostaria de filtrá-lo por data. Por exemplo:

Quando digitar uma data com formato dd/mm/aaaa apareceria somente as informações daquele dia e assim por diante.

Desde já agradeço,

Elcio

PS. Não precisa ser como dia inicial e dia final, pois o que interessa é a data do dia

Veja a figura em anexo. Gostaria de filtrar onde está data de realização

webelcio, posta pra gente o que vc já tem feito sobre o assunto…
Assim fica mais fácil pra gente te ajudar…

De qualquer maneira, vc só precisa filtrar os dados no seu SELECT, e depois passar a lista já “filtrada” pro seu relatório

Olá,

Você pode criar um parâmetro do tipo java.util.Date e utilizá-lo para forma a consulta no banco de dados.

Um exemplo com o parâmetro já criado chamado DT_NASCIMENTO, a consulta ficaria assim:

SELECT * FROM usuarios WHERE dt_nascimento >= $P{DT_NASCIMENTO}

[ ]'s

Bom dia Ev3rton,

Estou em uma internet pública e no momento não estou com o código aqui, mas o que vc postou parece que irá me ajudar. Por exemplo:

Preciso filtrar a data de realização e não a data de nascimento. Então a partir daí crio um parâmetro com o nome de $p{data_realizacao} e a consulta ficaria assim:

SELECT * FROM usuarios WHERE dt_realizacao>= $P{DT_REALIZACAO}

Caso não dê certo, da próxima vez posto o código.

Muito obrigado,

Elcio

Bom dia caros amigos,

Se puderem me ajudar, gostaria de saber como faço para filtrar uma data no ireport buscando somente aquela data que desejo. Abaixo segue a query e o código onde chamo o relatório:

[code]SELECT * FROM PACIENTE_EXAME WHERE PACIENTE_EXAME_DATA_EXAME >= $P

{PACIENTE_EXAME_DATA_EXAME}
[/code]

[code]private void visualisarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
Connection con = new Facade().getConnection();
java.util.HashMap parametros = new java.util.HashMap();
JasperPrint jp = JasperFillManager.fillReport("./jasper/Mapatrab.jasper", parametros, con);
JasperViewer jrv = new JasperViewer (jp, false);
jrv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();

    }

}

private void pdfActionPerformed(java.awt.event.ActionEvent evt) {                                    
    // TODO add your handling code here:
    try{
        Connection con = new Facade().getConnection();
        java.util.HashMap parametros = new java.util.HashMap();
        JasperPrint jp = JasperFillManager.fillReport("./jasper/Mapatrab.jasper", parametros, con);
        JasperExportManager.exportReportToPdfFile(jp, "./Mapatrab.pdf");
    }   catch (Exception e) {
        e.printStackTrace();
    }
}                                  

private void htmlActionPerformed(java.awt.event.ActionEvent evt) {                                     
    // TODO add your handling code here:
    try{
        Connection con = new Facade().getConnection();
        java.util.HashMap parametros = new java.util.HashMap();
        JasperPrint jp = JasperFillManager.fillReport("./jasper/Mapatrab.jasper", parametros, con);
        JasperExportManager.exportReportToHtmlFile(jp, "./Mapatrab.html");
    }   catch (Exception e) {
        e.printStackTrace();
    }
}

[/code]

Olá,

Existem diversas maneria para você passar uma data para o relatório e utilizá-la na composição da query que realiza a consulta. Vou explicar a que considero mais simples.

Com iReport aberto e seu relatório carregado, procure pela janela Report Inspector, nela você encontrará uma separação chamada Parameters.

Crie um parâmetro chamado DATA. Com ele selecionado clique na janela de propriedades, então edite a propriedade Parameter Class para java.lang.String.

Abra o Report query (janela onde você digita sua consulta). Digite a sua consulta adicionando a cláusula WHERE, você poderá puxar o parâmetro data da área Available parameters.

Um exemplo de query usando um parâmetro:

SELECT * FROM usuarios WHERE dt_nascimento = $P{DATA}

Seu relatório estará pronto para receber o parâmetro e utilizá-lo na consulta.

Agora você deve alterar seu código para enviar o parâmetro. Os parâmetros são enviados para o relatório através de um Map com a chave sendo o nome do parâmetro definido no relatório e o valor como um objeto do tipo também definido no relatório.

Utilizando o exemplo da data, você precisaria formatar sua data para que ela fique compatível com o que o banco de dados utiliza. Se você está trabalhando com o objetos do tipo java.util.Date, pode utilizar um SimpleDateFormat para formatar as datas, por exemplo:

new SimpleDateFormat("yyyy-mm-dd").format(minhaData);

Então colocaria a data formatada em um Map:

Map<String, Object> parametros = new Hashmap<String, Object>();
parametros.put("DATA", minhaDataFormatada);

E por fim enviaria esse map para o relatório.

JasperPrint jp = JasperFillManager.fillReport("./meu_relatorio.jasper", parametros, con);

[ ]'s