Erro , chamando relatorio ireport jasper

boa tarde ,
estou tentando abrir meu relatorio na aplicacao
mas ele da o seguinte erro

Error evaluating expression : Source text : $F{data_venc}

esse data_venc eh um campo na consulta sql

vou manda a query do relatorio tambem

SELECT 
       *
       FROM 
       ( 
       SELECT 
       ( 
         SELECT SUM(valor_parcela+multa_por_atraso) 
         FROM paciente_parcela as parc 
         WHERE parc.id_unidade_atendimento = $P{P_ID_UNID} 
         AND parc.data_vencimento_fim  < (SELECT CURRENT_DATE) 
         AND parc.codigo_paciente = pc.codigo_paciente 
         AND parc.forma_pagamento = ''
       ) as debito, 
       ( 
         SELECT MIN(PER.data_vencimento)  
         FROM paciente_parcela as PER 
         WHERE PER.data_vencimento_fim  < (SELECT CURRENT_DATE) 
         AND PER.codigo_paciente= pc.codigo_paciente 
         AND PER.id_unidade_atendimento = $P{P_ID_UNID} 
       ) as data_venc, 
       ( 
         SELECT MAX(PER.data_pagamento)  
         FROM paciente_parcela as PER 
         WHERE PER.data_vencimento_fim  < (SELECT CURRENT_DATE) 
         AND PER.codigo_paciente= pc.codigo_paciente 
         AND PER.id_unidade_atendimento = $P{P_ID_UNID}
         AND PER.data_pagamento is not null 
         
       ) as data_pag, 
       pc.codigo_paciente,
       pc.nome_paciente,
       pc.status 
       FROM paciente AS pc 
       WHERE pc.id_unidade_atendimento = $P{P_ID_UNID} AND status = 'ATIVO' order by cod_int
       ) as ap 
WHERE debito is not null and month(data_pag) < month(data_venc) 

alguem pode me ajudar a resolver isso ?

ninguem ?? :frowning:

luzeras,

Já tentou executar esse select diretamente no banco de dados para ver se ele está correto? Estou só chutando…

[]'s

Sem código não dá, ajudaria também se vc fizesse um debug da execução do código, informando em qual linha ou comando aconteceu o erro.

[]'s

ja executei sim o select no banco de dados e foi corretamente

aleck vou procurar o debug e ja posto

java.lang.ClassCastException: java.lang.String
        at relatorio_cobranca_1184260805234_45023.evaluate(relatorio_cobranca_1184260805234_45023:252)
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:172)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:539)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:507)
        at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:805)
        at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:367)
        at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:354)
        at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:277)
        at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:399)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1289)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:228)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:758)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)
        at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:203)
        at servlet.relatorios.CobrancaGeralMes.processRequest(CobrancaGeralMes.java:88)
        at servlet.relatorios.CobrancaGeralMes.doGet(CobrancaGeralMes.java:114)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

NESTED BY :
java.lang.ClassCastException: java.lang.String
        at relatorio_cobranca_1184260805234_45023.evaluate(relatorio_cobranca_1184260805234_45023:252)
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:172)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:539)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:507)
        at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:805)
        at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:367)
        at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:354)
        at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:277)
        at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:399)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1289)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:228)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:758)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)
        at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:203)
        at servlet.relatorios.CobrancaGeralMes.processRequest(CobrancaGeralMes.java:88)
        at servlet.relatorios.CobrancaGeralMes.doGet(CobrancaGeralMes.java:114)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

NESTED BY :
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
        Source text : $F{data_venc}
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:183)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:539)
        at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:507)
        at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:805)
        at net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:367)
        at net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:354)
        at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:277)
        at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:399)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1289)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:228)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:758)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)
        at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:203)
        at servlet.relatorios.CobrancaGeralMes.processRequest(CobrancaGeralMes.java:88)
        at servlet.relatorios.CobrancaGeralMes.doGet(CobrancaGeralMes.java:114)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassCastException: java.lang.String
        at relatorio_cobranca_1184260805234_45023.evaluate(relatorio_cobranca_1184260805234_45023:252)
        at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:172)
        ... 35 more

ai vai … falando que esta dando erro na linha 88
que seria :

[code]

bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,con.getConnection());[/code]

Verifique dentro do relatorio o campo data_venc, ele está esperando um valor do tipo date e está recebendo uma String do seu select.

[]'s

entao , so que ele já esta como date .
no tela do select do relatorio , la em baixo aparece os campos e seus tipos
e data_venc está como date.

Java date ou sql date?

O erro é claro, de cast para o tipo String, faça um teste, retire do relatorio este campo de data e rode o relatório, não fique parado em um problema :slight_smile:

sim eu testei … tirei esse field para aparecer no meu relatorio e ele rodou… mas infelizmente preciso deste campo e nao sei como resolver isto :frowning:

Supondo que o campo $F{data_venc} está setado corretamente, você testou o relatório de dentro do IReport? Isto te indicaria aonde está o erro. Crie um datasource dentro do ireport para seu banco e mande gerar para ver se o erro é o mesmo, caso se repita mude o tipo do campo $F{data_venc}.

opa consegui alguma coisa aqui.
mudei o field para String , e o campo para String tambem.
Dai ele abre o relatorio com a data .
Mas abre com ela no estilo americano aaaa-mm-dd . E so consigo colocar mascara como Field Date .

E agora?

Formata ela no código :slight_smile:

Ps: Procure por SimpleDateFormat.

mas em que codigo ? no field da caixa de texto? ou na fonte xml do relatorio?

Da sua classe Java, antes de passar os valores para o relatório formate o campo com SimpleDate.

[]'s

Esse campo data_venc nao vem da classe java .
Vem de um select de dentro do relatorio .

Cara, no IReport, vá no campo onde vai aparecer e coloque no texto:

new SimpleDateFormat("DD/MM/YYYY").format(new java.util.Date($F{data_venc}));

Ou mude de acordo com o que precisar.

Até!

coloquei isso
compila normal , mas na hora de abrir o relatorio da erro
ai vai o stacktrace

java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file net/sf/jasperreports/engine/fill/JRIntegerCountIncrementer
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1812)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:866)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1319)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at net.sf.jasperreports.engine.fill.JRDefaultIncrementerFactory.getFactory(JRDefaultIncrementerFactory.java:128)
        at net.sf.jasperreports.engine.fill.JRFillVariable.getIncrementer(JRFillVariable.java:289)
        at net.sf.jasperreports.engine.fill.JRCalculator.estimateVariables(JRCalculator.java:176)
        at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:757)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1019)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:126)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:758)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:666)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)
        at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:203)
        at servlet.relatorios.CobrancaGeralMes.processRequest(CobrancaGeralMes.java:88)
        at servlet.relatorios.CobrancaGeralMes.doGet(CobrancaGeralMes.java:114)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

Encoding do banco e do arquivo são os mesmos?

como assim… ?
acho que sao