Jasperレポートは、次のように.jrxmlファイルで参照される外部テンプレートとサブレポートを使用できます。
<template><![CDATA["repo:template.jrtx"]]></template>
<subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>
これは、Jasperサーバーで実行すると完全に機能しますが、Javaコードからインプロセスで起動すると、次のようなエラーが返されます。
net.sf.jasperreports.engine.JRException:リソースが見つかりません:repo:template.jrxml at net.sf.jasperreports.repo.RepositoryUtil.getResourceFromLocation(RepositoryUtil.java:255)atnet.sf.jasperreports.repo.RepositoryUtil。 getReport(RepositoryUtil.java:208)at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateReport(JRFillSubreport.java:329)
Jasperでは、デザイナーリソースは、レポートファイル内に保存されていないリソースリストに追加されます。どうすれば同じことができRepositoryUtil
ますか?RepositoryUtil
つまり、「リポジトリ」を実際の場所に置き換えるように指示しますか?私が使用するコード:
Connection conn = ... ;
String reportSource = "C:\\report.jrxml";
Map<String, Object> params = new HashMap<String, Object>();
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, conn);