簡體   English   中英

net.sf.jasperreports.engine.JRException:找不到字節數據

[英]net.sf.jasperreports.engine.JRException: Byte data not found

我正在嘗試傳遞給碧玉報告字符串位置的模板。 所以我在模板和值中傳遞參數的鍵。 當我的項目中有圖像時,一切正常,但我想把它放在另一個地方。 有沒有辦法從例如屬性文件中讀取參數? 我不知道為什么這個解決方案不起作用:

我的形象:

<parameter name="imagesDir" class="java.lang.String" isForPrompting="false"/>

...

<image isLazy="true">
    <reportElement key="image-1" style="PHLabel" x="0" y="0" width="160" height="33"/>
    <imageExpression class="java.lang.String"><![CDATA["$P{imagesDir}"+"logo.bmp"]]></imageExpression>
</image>

錯誤:

Error during exporting report statement_account_10 to PDF.
net.sf.jasperreports.engine.JRException: Byte data not found at : 
((java.lang.String)parameter_imagesDir.getValue())logo.bmp

好的,我找到了...應該是:

<image isLazy="true">
    <reportElement key="image-1" style="PHLabel" x="0" y="0" width="160" height="33"/>
    <imageExpression class="java.lang.String"><![CDATA[$P{imagesDir}+"logo.bmp"]]></imageExpression>
</image>

我遇到了這個問題,就我而言,問題是圖像的路徑。

最初我有類似的東西:

<imageExpression><![CDATA["logo.bmp"]]></imageExpression>

然后我將其替換為:

<imageExpression><![CDATA["/home/reports/logo.bmp"]]></imageExpression>

顯然它起作用了,因為我使用的是絕對路徑(這不是一個好方法),然后我用圖像文件夾的參數更改了靜態絕對路徑。

我不知道我的情況是否與@Cristian Arteaga 的情況完全相同,但他的解決方案啟發了對我有用的解決方案。

在我的例子中,這是在 Jaspersoft Studio 6.x 中創建的報告中發生的,然后在 iReport 4.5.1 中打開(因為我需要它與該版本的庫兼容,經過多次不成功的嘗試,這是我做到這一點的唯一方法),然后作為子報告包含在另一個主報告中(當它作為獨立報告運行時,它沒有發生)。

總而言之,就像刪除導致問題的圖像,然后再次導入它一樣簡單。 在提示輸入文件並將其導入后,在屬性中,它不僅會顯示文件名,還會顯示完整路徑。 編譯並嘗試了主要報告,沒有問題了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM