Campos Image no iReport

4 respostas
E

Ola Pessoal, estou tendo um problema com o ireport 2.0.1:
Tenho uma tabela em SQL Server com dois campos - id(char(1) e logo(Image);
Quando desenho um relatório no ireport para listar estes campos, o mesmo
compila sem erros, porém não monta o relatório, dando o seguinte erro:

Preenchendo relatório …

Região: português (Brasil)

Fuso Horário: Padrão

Erro ao preencher impressão … Error evaluating expression :      Source text : $F{LOGO}

java.lang.ClassCastException: net.sourceforge.jtds.jdbc.BlobImpl cannot be cast to java.io.InputStream      at classic_1249585530407_437018.evaluate(classic_1249585530407_437018:285)      at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:186)      at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:537)      at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:505)      at net.sf.jasperreports.engine.fill.JRFillElement.evaluateExpression(JRFillElement.java:811)      at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:443)      at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:426)      at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:274)      at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:403)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:791)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:695)      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 it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:943)      at java.lang.Thread.run(Unknown Source)

É alguma coisa relativa ao campo image do BD. Estou usando a classe java.io.inputstream na
configuração do elemento image do ireport;

Alguém já passou por isso ?

[]s, Edson.

4 Respostas

P

O registro salvo no bd é o nome da imagem ou seu caminho absoluto? O relatório é Web ou desktop?

E

O Registro gravado no BD é a própra imagem ( um campo blob ) e o relatório
e Web.
Edson.

P

Hum…
Eu salvo apenas o nome da imagem em um campo da tabela e a imagem tem que estar em uma pasta da projeto WEB… eu faço desta forma… Mas já salvando a imagem no bd eu nunca fiz…
Vou dar uma pesquisada e qualquer novidade eu posto aí…

[]s.

A

O problema é que o que esta sendo retornado pela sua pesquisa é um BlobImpl e o seu campo espera um InputStream. Tente alterar o código Source text : $F{LOGO} para o código abaixo:

Source text : $F{((BlobImpl)LOGO).getBinaryStream() }

Fonte:
https://www.hibernate.org/hib_docs/v3/api/org/hibernate/lob/BlobImpl.html

Criado 6 de agosto de 2009
Ultima resposta 11 de ago. de 2009
Respostas 4
Participantes 3