2013-04-05 6 views
3

Я хочу подробно вставить изображения из базы данных в мой отчет в Jaspersoft Studio.
В JPG-изображения сохраняются в MySQL в поле imgdata из типа LONGBLOB.
I`v пытался поставить эти выражения в элементе Image:Как вставить изображения из базы данных?

  1. $F{imgdata}
  2. MyUtil.getInputStream($F{imgdata})

В первом случае я получаю эту ошибку:

net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Unknown image source class [B 

... и во втором случае эта ошибка:

net.sf.jasperreports.engine.JRException: 
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error 
evaluating expression : Source text : 
MyUtil.getInputStream($F{imgdata}) 

Мой вопрос: Как вставить изображения из базы данных в Отчет JasperReports?

+0

Может быть [Отображение изображения в Ireports с использованием PostGreSQL] (http://stackoverflow.com/q/8430313/876298) пост help –

+0

Каков тип поля 'imgdata' (в вашем * jrxml * файле)? –

ответ

5

Кажется, я сам решил проблему.

Вот шаги I`v сделали:

1) Выражение для поля отчета Изображение должно быть: $ F {} imgdata

(Примечание: imgdata это имя из поле базы данных, где хранятся данные изображения)

2) Откройте «Dataset и запросов Диалог» вашего отчета и изменить тип класса в imgdata поле сюда m java.lang.Object to java.io.InputStream ( ) Посмотреть скриншот --- извините, у меня нет достаточного количества точек репутации для отправки изображений). Закройте диалоговое окно.

3) Создайте отчет, переключившись на Preview-Tab. Теперь вы должны увидеть изображения в своем отчете.

8

Открыть представление XML файла .jrxml. Тогда найти код, подобный этому

<field name="image" class="java.lang.Object"/> 
/* "image" must be replaced by your actual field name */ 

и изменить его на

<field name="image" class="java.io.InputStream"/> 
Смежные вопросы