3

我想在Jaspersoft Studio的报告中的详细信息带中插入数据库中的图像。
JPG 图像保存在 MySQL 中类型为longblob的字段imgdata中。 我试图把这个表达式放在 Image 元素中:

  1. $F{imgdata}
  2. MyUtil.getInputStream($F{imgdata})

在第一种情况下,我收到此错误:

net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Unknown image source class [B

...在第二种情况下,此错误:

net.sf.jasperreports.engine.JRException:
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error
evaluating expression :  Source text :
MyUtil.getInputStream($F{imgdata})

我的问题:如何将数据库中的图像插入到JasperReports的报告中?

4

2 回答 2

10

打开 .jrxml 文件的 XML 视图。然后找到类似这样的代码

<field name="image" class="java.lang.Object"/>  
/* "image" must be replaced by your actual field name */

并将其更改为

<field name="image" class="java.io.InputStream"/>
于 2013-09-27T10:41:18.540 回答
6

看来我自己解决了这个问题。

以下是我已完成的步骤:

1) 图像报告字段的表达式应为:$F{imgdata}

(注:imgdata是存储图像数据的数据库字段的名称)

2) 打开报表的“数据集和查询对话框”,将imgdata字段的类类型从 java.lang.Object 更改为java.io.InputStream见截图--- 抱歉,我没有足够的声誉点来发布图片)。关闭对话框。

3) 通过切换到预览选项卡生成您的报告。现在您应该在报告中看到图像。

于 2013-04-06T21:24:01.197 回答