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

...そして2番目のケースでは、このエラー:

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 に答える