2017-02-18 1 views
0

Я использую инструмент ireport в своем приложении. Существует требование показать изображение в отчете. У меня есть поле объекта blob в базе данных для хранения изображения. Мне нужно показать поле объекта blob как изображение в отчете.Как показать изображение объекта blob с помощью JasperReports из базы данных sqlite?

Тем не менее, работает нормально, если я получить какие-либо другие данные, кроме Blob

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports  http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4_2" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="6bf1e8fc-5bd2-495a-abca-8c4d501c73af"> 
    <queryString><![CDATA[SELECT image FROM myimage]]></queryString> 
    <field name="image" class="java.io.InputStream"/> 
    <detail> 
     <band height="125" splitType="Stretch"> 
      <image> 
       <reportElement x="130" y="20" width="310" height="88" uuid="8b07de5d-ac9e-4245-9ca1-ccd6fd3fe993"/> 
       <imageExpression><![CDATA[$F{image}]]></imageExpression> 
      </image> 
     </band> 
    </detail> 
</jasperReport> 

Я получаю эту ошибку: "net.sf.jasperreports.engine.JRException: Unable to get value for result set field "image" of class java.io.InputStream"

есть какие-либо идеи?

+0

Это сообщения может помочь вам: [? Как просматривать изображение из столбца больших двоичных объектов в Oracle с JasperReports] (HTTP: // stackoverflow.com/q/12272283/876298) & [Отображение изображения в Ireports с использованием PostgreSql] (http://stackoverflow.com/q/8430313/876298) & [Как экспортировать изображение, являющееся блобом в базе данных из яшмы отчеты для excel?] (http://stackoverflow.com/q/33894102/876298) –

ответ

0

Я нашел решение. Шаги, чтобы исправить проблему:

  1. Изменение типа атрибута из Blob в двоичном
  2. Изменение типа поля: <field name="image" class="java.io.InputStream"/>
0

Согласовано с @joyo. Я последовал его примеру, и это сработало. Вот полный пример того, что он имел в виду (на всякий случай, если кто интересуется):

<?xml version="1.0" encoding="UTF-8"?> 
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="38e603dd-e931-410d-b545-b16f01f0b6a8"> 
    <property name="ireport.zoom" value="1.0"/> 
    <property name="ireport.x" value="0"/> 
    <property name="ireport.y" value="0"/> 
    <queryString> 
     <![CDATA[select * from rcis.invoice_print]]> 
    </queryString> 
    <field name="ORG_LOGO" class="java.io.InputStream"/> 
    <detail> 
     <band height="125" splitType="Stretch"> 
      <image> 
       <reportElement x="168" y="23" width="100" height="50" uuid="dab25674-c16b-4866-88d0-c97695108f60"/> 
       <imageExpression><![CDATA[$F{ORG_LOGO}]]></imageExpression> 
      </image> 
     </band> 
    </detail> 
</jasperReport> 
+0

Если полный пример чувствует себя достаточно важным, может быть лучше в качестве комментария выбранный ответ – max

+0

Я думаю, что полный пример полезен. Попробуйте отредактировать исходный ответ. –

Смежные вопросы