2009-09-03 20 views
1

データベースの行と一致するJasperレポートに画像を配置する必要があります。私はJavaコードで簡単に抽出できる独自のアーカイブファイルに画像データを持っています。 JavaコードをJasperレポートに接続して抽出プロセスを実行する方法を知る必要があります.BIRTのonRowSets()メソッドのようなものです。 (塗りつぶしプロセスの仕組みについての概要を文書化する必要があります)ジャスパーレポートのアーカイブから画像を抽出して使用するにはどうすればよいですか?

POJO/beanデータソースを定義すると、データベースも簡単に使用できなくなります。必要なJava抽出コードをXMLに埋め込むことはできますか? 新しいファイル()実際にJavaコードをXMLに埋め込まれていること

 
    <imageExpression class="java.io.File"> 
     <![CDATA[(new File($P{BaseDir}, "logo_"+$P{ReportCollecter}+".gif").exists()) 
     ? new File($P{BaseDir}, "logo_"+$P{ReportCollecter}+".gif") 
     : new File($P{BaseDir}, "logo_BLANK.gif")]]> 
    </imageExpression> 

です:This example at the Jasper Assistant siteは、私ができることを示していると思われますか?私はコードを書こうと思っていますが、完全なクラス・コードの例は見つけられないようです(私は拡張されたイメージ・オブジェクトのようなものがほしいと思う)。

答えて

0

デフォルトでは、iReport(3.6.0)の現在のバージョンでは、クラスパス内のJavaライブラリにフルアクセスできるGroovy(Javaスクリプト言語の一種)が使用されます。

私がしなければならなかったのは、アーカイブからイメージを抽出し、(ByteArrayInputStreamから)InputStreamオブジェクトを返すコードを書くことでした。それから私は、jarファイルを作り、そのようなジャスパーjrxmlファイルから関数を呼び出し:

 
<imageExpression class="java.io.InputStream"> 
    <![CDATA[ 
com.mycompany.jasper.MyImageExtractor.getImage($F{IMAGE_URL}, $V{JasperVariable}) 
    ]]> 
</imageExpression> 

(あなたはまた、iReportはGUIを使用して、コードにリンクすることができます - あなたの新しいイメージのための「映像表現」プロパティを設定します"CDATA"の後の行に)

より簡単なJavaコーディングが必要な場合は、write simple Groovy codeのレポートのXMLを参照してください。

ジャスパー変数はGroovyで$V{VariableName}でアクセスでき、SQLデータベース列は$F{ColumnName}でアクセスできることに注意してください。

関連する問題