繁体   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