Jarファイル内のサブレポートを読み込む | Java Code Monkeys

Jarファイル内のサブレポートを読み込む

いやー。
技術ブログをにおわせるようなサブタイトルにしておきながら、おもちゃねた+放置と抜群の幕開けを演じたわけですが。

ってことで、とりあえず、技術ネタを書いてみようかな。

今仕事で業務アプリケーションの帳票印刷機能を作っています。
なので、超マイナーだけど、自分的にホットな技術の覚書から。

JasperReportsのjrxmlファイル内で、subrportを参照するコードを下記のようにおまじないする。


<subreport>
  <dataSourceExpression>
    <![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subreportCollection})]]>
  </dataSourceExpression>
  <subreportExpression class="net.sf.jasperreports.engine.JasperReport">
    <![CDATA[net.sf.jasperreports.engine.util.JRLoader.loadObject(getClass().getResource("/template/jr_sample.jasper"))]]>
  </subreportExpression>
</subreport>

面倒なので、細かな解説はしませんが、
ミソは、サブレポートのロードに

net.sf.jasperreports.engine.util.JRLoader

を使うところですね。
そしてあとは普通に、Jarファイル内のリソースURLを指定して、クラスローダーからリソースを取得してくると。

参考にしたサイトは下記
SubReports in a JAR?