2015-11-12 86 views
1

我目前正在使用mongoDb在後臺開發jaspersoft中的報告。我將圖像上傳到mongoDb gridFS,並且需要在數據庫外的報告中顯示這些圖像。jaspersoft和mongoDb gridFs圖像

我以前在SQL中做得很成功,但無法從mongoDb獲取圖像。

有沒有人在jaspersoft報告中顯示圖像超出gridFS的體驗?

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>