Olá amigos!
bom já faz um tempinho pelo que vi a data deste tópico mas já procurei em varios lugares e ainda não consegui resolver o problema de filtros por data no meu reatório e gostaria de se possivel a ajuda dos mais experientes.
tenho uma tabela que tem um campo data e gostaria de gerar meu relatório da seguinte maneira o usuario filtra a dada tipo 01/01/2011 a 31/01/2011 e clica em filtrar depois ele coloca o tipo de material que ele quer visualizar no relatório tipo gasolina e assim por diante, no meu ralatório no ireport criei os parametros $P{nNOME} E também criei os parametros $P{DATA_INICIO} E ${DATA_FIM} no ireporter ele depois de muito quebrar a cabeça está funcionando do geito que quero, mas na minha aplicação ele da um erro e não mostra o relatório.
segue o código no ireport
where data_abastecimento between $P{DATA_INICIO} and $P{DATA_FIM} and
tipo_combustivel_veiculo = $P{NOME}
na minha aplicação fiz assim:
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date ini = null;
java.util.Date fim = null;
try {
ini = formato.parse(Datainicio.getText());
fim = formato.parse(Datafim.getText());
} catch (Exception e) {
e.printStackTrace();
}
Datainicio.setText("");
Datafim.setText("");
query = entityManager.createNamedQuery("GuiaAbastecimento.findBetweeninicio");
query.setParameter("dataIni", ini);
query.setParameter("dataFim", fim);
java.util.Collection dadosResposta = query.getResultList();
list.clear();
list.addAll(dadosResposta);
try {
Connection con = (Connection) new ConexaoMsql().getConnection();
HashMap parametros = new HashMap();
parametros.put("COMBUSTIVEL" ,tf_Pesquisa.getText());
parametros.put("DATA_INICIO", Datainicio.getText());
parametros.put("DATA_FIM", Datafim.getText());
JasperPrint jp = JasperFillManager.fillReport("C:/Siscor/Relatórios/RelGuiaAbastecimento.jasper", parametros, con);
JasperViewer jrv = new JasperViewer(jp);
JasperViewer.viewReport(jp, false);// fechar apenas o relatório
} catch (Exception e) {
e.printStackTrace();
}
e o erro que gera ao tentar compilar o relatório pela minha aplicação segue abaixo:
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
net.sf.jasperreports.engine.JRException: Incompatible java.lang.String value assigned to parameter DATA_INICIO in the RelGuiaAbastecimento dataset.
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameter(JRFillDataset.java:903)
at net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:642)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:585)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1280)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:901)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
bom já tentei colocar getValue e nada, não to conseguindo resolver esse problema e agradeço aos amigos em me auxiliar nesta resolução do problema.
fico no aguardo da ajuda dos amigos deste forum.