Jasper reports 如何处理;“未找到字节数据”;
我希望我的报表根据其他一些字段的值以行的形式显示图像。比如说:Jasper reports 如何处理;“未找到字节数据”;,jasper-reports,Jasper Reports,我希望我的报表根据其他一些字段的值以行的形式显示图像。比如说: column_1 | column_2 ====================== xyz | <xyz.jpg> abc | <abc.jpg> 第1列第2列 ====================== xyz| abc| 列_1保存文本,列_2显示文件text+“.jpg”中的图像。为此,我将图像表达式设置为:$F{COLUMN_1}+“.jpg” 问题是有时可能(在我的例子中
column_1 | column_2
======================
xyz | <xyz.jpg>
abc | <abc.jpg>
第1列第2列
======================
xyz|
abc|
列_1保存文本,列_2显示文件text+“.jpg”中的图像。为此,我将图像表达式设置为:$F{COLUMN_1}+“.jpg”
问题是有时可能(在我的例子中是:将会)不存在具有适当名称的图像文件。这将生成“填充打印时出错…在:[some_image_path]中找不到字节数据”
当指定的文件不存在时,是否有办法处理此类错误,例如,通过显示一些默认图像?事实证明,可以使用“onErrorType”确定图像出错时会发生什么情况。以下是一个例子:
<image scaleImage="RealHeight" hAlign="Center" vAlign="Middle" onErrorType="Blank">
这将在找不到图像文件时将图像设置为空白,而不是以错误结束。视图设计器->
属性->参数->单击左侧->添加->
子报表参数名称
形象
值表达式
双击IMAGEN(参数)选择此选项在XML代码中查找图像数据可能如下所示
<image>
<reportElement x="0" y="0" width="164" height="126"/>
<imageExpression class="java.lang.String">
<![CDATA["coffee.jpg"]]>
</imageExpression>
</image>
<![CDATA["src\\formsAndReports\\coffee.jpg"]]>
Tosz的解决方案确实有效,但不是很灵活:您只能得到一个空白帧,或者一个默认图标而不是图像 要指定自定义行为,可以使用以下表达式:
$P{REPORT_FILE_RESOLVER}.resolveFile( $F{COLUMN_1}+ ".jpg" )
当找不到文件时,它返回null。
例如,可以将其用作图像表达式,并通过简单的检查指定默认图像:
$P{REPORT_FILE_RESOLVER}.resolveFile( $F{COLUMN_1}+ ".jpg" ) != null ? $F{COLUMN_1}+ ".jpg" : "default.jpg"
这篇文章可能会帮助你: