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?
技術ブログをにおわせるようなサブタイトルにしておきながら、おもちゃねた+放置と抜群の幕開けを演じたわけですが。
ってことで、とりあえず、技術ネタを書いてみようかな。
今仕事で業務アプリケーションの帳票印刷機能を作っています。
なので、超マイナーだけど、自分的にホットな技術の覚書から。
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?