2015-11-12 8 views
1

В настоящее время я разрабатываю отчеты в jaspersoft, используя mongoDb в фоновом режиме. У меня есть изображения, загруженные в gridFS mongoDb, и вам нужно отображать эти изображения в отчетах из баз данных.jaspersoft и mongoDb gridFs image

Я был успешным в прошлом, делая это из SQL, но не могу получить изображения для рендеринга из mongoDb.

Есть ли у кого-нибудь опыт отображения изображений из gridFS в отчетах jaspersoft?

JRXML НИЖЕ:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Created with Jaspersoft Studio version 6.1.0.final using JasperReports Library version 6.1.0 --> 
<!-- 2015-11-12T09:57:02 --> 
<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="imageTest" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="a2bd4e02-ac58-4869-8bca-92fe8eff6d77"> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="mongoLocal"/> 
    <subDataset name="fileQuery" uuid="c420c8eb-8dad-4163-a067-fb1e783c7bfa"> 
     <property name="com.jaspersoft.studio.data.defaultdataadapter" value="mongoLocal"/> 
     <queryString language="MongoDbQuery"> 
      <![CDATA[{ 
    collectionName: 'studentImages.files', 
    findQuery: { '_id' : { $oid : "55d74f02149c82ac5b615791" } } 
}]]> 
     </queryString> 
     <field name="_id" class="org.bson.types.ObjectId"/> 
     <field name="chunkSize" class="java.lang.Long"/> 
     <field name="contentType" class="java.lang.String"/> 
     <field name="filename" class="com.mongodb.gridfs.GridFSDBFile"/> 
     <field name="length" class="java.lang.Long"/> 
     <field name="md5" class="java.lang.String"/> 
     <field name="uploadDate" class="java.util.Date"/> 
    </subDataset> 
    <queryString language="MongoDbQuery"> 
     <![CDATA[{ 
    collectionName: 'fs.chunks', 
    findQuery: { 'files_id' : { $oid : "5644a7d1eeb5ea4e43774267" } } 
}]]> 
+0

Можете ли вы разместить свой код, если вы пробовали? –

+0

Я добавил свою самую последнюю попытку оригинального вопроса. –

+0

Является ли проблема в запросе или отображении файла в отчете jasper ?, каково ваше текущее значение имени файла? –

ответ

0

Я не знаю, как запросить в вашем MongoDbQuery, но если вам удастся заполнить имя файла (его не равно нулю), Вы можете, вероятно, использовать getInputStream() в GridFSDBFile API для отображения изображение в отчете о яшме.

<image scaleImage="FillFrame" onErrorType="Blank"> 
    <reportElement x="0" y="0" width="100" height="100"/> 
    <imageExpression class="java.io.InputStream"><![CDATA[$P{filename}.getInputStream()]]></imageExpression> 
</image> 
Смежные вопросы