Como Faço para Filtrar por data um Relatorio!

4 respostas
cloude

OLA PESSOAL SOU INICIANTE EM JAVA,
Meu problema e o seguinte: estou terminando uma aplicação java ,um sistema de estoque, so que esta faltando a parte de Relatórios.eu criei um JTextField TF_DEDATA e um TF_ATEDATA eu quero que gere um relatorio com a datas que forem digitadas no JTextField,
eu fiz um codigo assim:

try 
  {
      con_fax.resultset.first();        //Posiciona o primeiro registro
     String sql = "SELECT * from ControleEstoque where Data >= '"+tf_dedata.getText()+"'" +
            " and Data <= '"+tf_atedata.getText()+"'";
        con_fax.executeSQL(sql);
         HashMap parameters = new HashMap();    //Cria um parametro
           parameters.put("Data",tf_dedata.getText()); //Aqui passa o parametro para data
             parameters.put("Data",tf_atedata.getText());
                JRResultSetDataSource jrRS = new JRResultSetDataSource(con_fax.resultset);
                  JasperPrint jasperPrint = JasperFillManager.fillReport(
                    "relatorio/RelControleFax.jasper", new HashMap(), jrRS);
      	       JasperViewer.viewReport(jasperPrint,false);
     
                        }
                catch (Exception erro)
         {
             JOptionPane.showMessageDialog(null,"Ocorreu um erro ao Gerar o relatório"+erro);
               }
MAS ELE FILTRA SO O PRIMEIRO PARAMETRO!!!! o que pode estar errado

ALGUEM AE PODE ME AJUDAR........ :cry:

4 Respostas

E
cloude:
OLA PESSOAL SOU INICIANTE EM JAVA, Meu problema e o seguinte: estou terminando uma aplicação java ,um sistema de estoque, so que esta faltando a parte de Relatórios.eu criei um JTextField TF_DEDATA e um TF_ATEDATA eu quero que gere um relatorio com a datas que forem digitadas no JTextField, eu fiz um codigo assim:
try 
  {
      con_fax.resultset.first();        //Posiciona o primeiro registro
     String sql = "SELECT * from ControleEstoque where Data >= '"+tf_dedata.getText()+"'" +
            " and Data <= '"+tf_atedata.getText()+"'";
        con_fax.executeSQL(sql);
         HashMap parameters = new HashMap();    //Cria um parametro
           parameters.put("Data",tf_dedata.getText()); //Aqui passa o parametro para data
             parameters.put("Data",tf_atedata.getText());
                JRResultSetDataSource jrRS = new JRResultSetDataSource(con_fax.resultset);
                  JasperPrint jasperPrint = JasperFillManager.fillReport(
                    "relatorio/RelControleFax.jasper", new HashMap(), jrRS);
      	       JasperViewer.viewReport(jasperPrint,false);
     
                        }
                catch (Exception erro)
         {
             JOptionPane.showMessageDialog(null,"Ocorreu um erro ao Gerar o relatório"+erro);
               }
MAS ELE FILTRA SO O PRIMEIRO PARAMETRO!!!! o que pode estar errado

ALGUEM AE PODE ME AJUDAR........ :cry:

Vc estah passando dois parametros com o mesmo nome, lah no iReport vc deve ter dois parametros com nomes diferente para fazer o filtro.
De uma olhada no exemplo abaixo especificamente na classe RelatorioDepartamento.java:

http://www.javafree.org/topic-870555-RelatorioHibernate-Annotations-+-JSF-+-iReport.html

cloude

Descupe mas ainda não consegui resolver meu problema …

alguem ae pode me dar uma luz!!!

os campos de textos tf_dedata e ft_atedata estão como String e não como Date !!

alguem ae please!!!

leandrovrb

acho q isto abaixo vai lhe ajudar… o problema que tem poucos que sacam de ralatorio.fiquei garrado mto tempo com sub+parametros…
faça um teste com este fonte abaixo que esta legal
Agora lhe aconselho a voce nao usar textField em sua aplicacao para trabalhar com data e sim com jcalendar ou nachocalendar.pois se der um espaço pode dar erro!!!

try{ Connection con = new ConexaoMySQL().getConnection(); HashMap parametros = new HashMap(); parametros.put("DATA_INICIO", "2007/07/01"); parametros.put("DATA_FIM", "2007/07/10"); JasperPrint jp = JasperFillManager.fillReport("./jasper/Grafico.jasper", parametros, con); JasperViewer jrv = new JasperViewer(jp); jrv.setVisible(true); } catch(Exception e){ e.printStackTrace(); }

cloude

[b]Valeu ae Leandrovrb ,resolveu o meu problema!!!

Fico Grato!!![/b]

Criado 27 de janeiro de 2009
Ultima resposta 28 de jan. de 2009
Respostas 4
Participantes 3