[RESOLVIDO]Filtro de data no iReport  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

Ola pessoal, tenho meu relatorio que é da seguinte forma:
foi feito toda sua estrutura no iReport 3.0...ai tenho uma classe que trata do jasper...
ai eu só chamo o relatorio quando eu quero;

funciona numa boa....
Queria filtrar por data o mesmo agora...antes de chamar o relat agora tenho dois campos que o usuario vai informar
o periodo desejado...
Porem nao faço a menor ideia do que fazer agora..aonde vou tratar meu sql,como vou tratar, etc
se alguem puder da uma força!
agradeço desde ja.
Uso NetBeans 6.5 e iReport 3.0

This message was edited 1 time. Last update was at 20/10/2009 00:55:55


@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

Bom colega, eu faço da seguinte forma, pego as datas informadas pelo usuário, passo para o formato yyyy-mm-dd e mando como parametro para o ireport, onde coloco na query...funciona!

Entendeu? Fico no aguardo...

[]s.
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

ta, eu vou formatar a data para yyyy-MM-dd --> OK
Mandar como parametro para o iReport-->como seria +o- p/ criar esse parametro?
ai depois no sql dentro do iReport vou setar o Parametro?
[]'ss

@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

Bom, na sua classe java vc vai passar o parametro para o relatório:



fico no aguardo
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

Para criar os parametros em seu relatório, vá no menu Visualizar -> Parametros do relatório . Abre uma nova janela, botão novo -> vc informa o nome do parametro(detalhe: tem que ser gual ao nome passado em sua classe java, no caso dt1), Tipo da classe do parametro: java.lang.String e marque o check "Usar como uma sugestão", pronto foi criado um parametro... faça o mesmo para o dt2.
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

E no sql vc seta o parametro:

select *
from tabela
where data between $P!{dt1} and $P!{dt2} //nomes de cada parameto
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

Ola, fiz tudo isso...mas nao deu certo ainda...
da uma olhada:

@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

O Relatório funcionou no Ireport, com os parametros? O código acima parece ok...
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

Tb nao...na hora que mando gerar aparece o primeiro parametro...eu informo a data ai ele fica em um loop infinito ....e la em baixo fica processando relatorio...mas nada!
até que eu finalizo o "processando relatorio" ai sim aparece o segundo parametro...informo a data..mas nda tambem.

@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

Bom vc está colocando as datas no formato yyyy-MM-dd ao executar o relatório? Lembre-se de colocar os aspas simples no parâmtro! '2009-06-29', pode ser que seja isso... E a query está ok? fico no aguardo.
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

Paezani..era alguma coisa que tinha no meu iReport..mas esta ok agora...
estou conseguindo gerar pelo iReport...
só falta na aplicacao agora..ta quase laa!
Eu informo o periodo...mando gerar ai ele da erro:
net.sf.jasperreports.engine.JRException: Incompatible java.lang.String value assigned to parameter dataini in the classic dataset.
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameter(JRFillDataset.java:869)
at net.sf.jasperreports.engine.fill.JRFillDataset.setFillParameterValues(JRFillDataset.java:626)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:577)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1195)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:833)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:801)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)


no iReport os parametros estao como java.lang.Date..
Tentei tb passar o parametro na mao:
parameters.put("dataini", "'2009/06/01'");2009-06-01 ; 2009.06.01 ; 01.06.2009 (tentei de varias formas)
parameters.put("datafim", "'2009/06/20'");
sempre da o msmo erro.
agradeço pela paciencia ae!
[]'s

This message was edited 2 times. Last update was at 30/06/2009 22:26:43


@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

Bom altere o tipo dos parametros que recebem a data para java.lang.String, que é pra funcionar....Use o traço ao invés da barra...

parameters.put("dataini", "'2009-06-01'");
parameters.put("datafim", "'2009-06-20'");

Fico no aguardo...
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

Alterando para java.lang.String no iReport da erro
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Cannot cast from Date to String value = (java.lang.String)(((java.sql.Date)field_DATAVENC.getValue()));//$JR_EXPR_ID=0$ <------------------------------------------------------------> 2. Cannot cast from Date to String value = (java.lang.String)(((java.sql.Date)field_DATAVENC.getValue()));//$JR_EXPR_ID=1$ <------------------------------------------------------------> 3. Cannot cast from Date to String value = (java.lang.String)(((java.sql.Date)field_DATAVENC.getOldValue()));//$JR_EXPR_ID=0$ <---------------------------------------------------------------> 4. Cannot cast from Date to String value = (java.lang.String)(((java.sql.Date)field_DATAVENC.getOldValue()));//$JR_EXPR_ID=1$ <---------------------------------------------------------------> 5. Cannot cast from Date to String value = (java.lang.String)(((java.sql.Date)field_DATAVENC.getValue()));//$JR_EXPR_ID=0$ <------------------------------------------------------------> 6. Cannot cast from Date to String value = (java.lang.String)(((java.sql.Date)field_DATAVENC.getValue()));//$JR_EXPR_ID=1$ <------------------------------------------------------------>

@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
Paezani
JavaTeenager
[Avatar]

Membro desde: 29/04/2009 13:10:24
Mensagens: 166
Offline

Nossa que estranho, aqui funciona! A sua query esta ok?
O valor de suas datas está assim 2009-07-02?

Fico no aguardo
jeandonato
Thread.start()
[Avatar]

Membro desde: 17/09/2008 14:11:24
Mensagens: 43
Localização: São Paulo - SP
Offline

Entao.....ta sinistro o negocio aqui!A query esta ok sim...
só daquela forma que funciona msmo (java.lang.Date.) só que porem da o erro na aplicação la...

@JeanDonato

jeancarlosgoncalves@gmail.com
twitter.com/JeanDonato
www.donatoinfo.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team