Imagens do Postgres no iReport

Boa noite!

Tenho uma tabela no banco de dados Postgres onde existe um campo chamado logo do tipo bigInt onde eu guardo os bytes de uma imagem. A minha dúvida é como exibir essa imagem em um relatório criado pelo iReport, sem a interferência do JAVA, direto no relatório.

Desde já agradeço!

Olá
Sem interferência de uma codificação em Java eu não sei se é possível. Uma sugestão é pegar os bytes e salvar em disco e fazer com que o ireport leia ele. Outra possibilidade é criar um objeto Image em memória e passar como parâmetro para o relatório.

Olá, prezado realmente sem Java também não sei se é possivel, mais no Ireport o que vc irá fazer é simplesmente
pegar na paleta o image, arrasta ele para a banda detalhe e nas sua propriedade ( no meu caso o campo tem o nome conFoto )
use a expressão

new ByteArrayInputStream(( byte[] )$ F{conFoto} )

na lista de campos a classe sera do tipo java.lang.Object

bem outro detalhe no meu caso o campo que contem a imagem no banco é do tipo bytea
na minha classe entidade o campo foi mapeado desta forma

@Column(name="con_foto")
private byte[] conFoto ;

Bom dia rlira!

Fiz como você falou, mas no iReport gera o seguinte erro:

Error filling print... Byte data not found at location : java.io.ByteArrayInputStream@1639ed1 net.sf.jasperreports.engine.JRException: Byte data not found at location : java.io.ByteArrayInputStream@1639ed1 at net.sf.jasperreports.engine.util.JRLoader.loadBytesFromLocation(JRLoader.java:477) at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:217) at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:1057) at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:1004) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:325) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:261) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:127) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:942) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841) 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) at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:877) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

Mapeamento no JAVA:

@Column(name = "logo_relatorio") private byte[] logoRelatorio;

No banco de dados (Postgres) ele é do tipo bytea.

Olá Dassayev

Vc esta fazendo isto direto no Ireport certo? como vc disse vc não estaria querendo usar Java…

Quando eu disse que não queria usar JAVA era que eu não queria passar a imagem por parâmetro quando eu chamo o relatório (pelo JAVA). Quero usar a imagem que vem do banco! Entendeu?

Ok entendi, bem como faço para te enviar alguns arquivos?

veja o que eu fiz passo a passo

tenho um projeto web simples aqueles de agenda de contatos ok?
no pacote model a classe Contato.java

abri o ireport e crei o relatorio, no ireport eu não criei nenhuma conexao com o banco, fiz so o layout
e inserir os campos baseado nos atributos da minha classe Contato.java

copiei o jrxml para uma pasta do meu projeto, e fiz uma classe para popular e chamar o relatorio
se vc quizer posso te enviar os fontes.

Veja onde eu peguei a dica


http://javafree.uol.com.br/topic-870971-Imagem-do-Banco-de-Dados-no-Ireport.html