事前に設計された pentaho レポートを含む小さな JSF ポータルを開発したいと考えています。私の質問は、pentaho レポートを埋め込む方法と、jsf からレポート エンジンにパラメーターを渡す方法です。ありがとう。
1262 次
1 に答える
0
final FacesContext context = FacesContext.getCurrentInstance();
ClassicEngineBoot.getInstance().start();
try {
// load report definition
ResourceManager manager = new ResourceManager();
manager.registerDefaults();
manager.registerDefaultLoaders();
ExternalContext extContext = context.getExternalContext();
String reportPath = "file:" + extContext.getRealPath("aaaaaaaaaaaaa.prpt");
Resource res = manager.createDirectly(new URL(reportPath), MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
report.getParameterValues().put("x1","%" + current.getx1() +"%");
report.getParameterValues().put("x2","%" + current.getx2() +"%");
HttpServletResponse httpServletResponse =
(HttpServletResponse) extContext.getResponse();
httpServletResponse.setContentType("application/rtf");
httpServletResponse.setHeader("Content-Disposition",
"attachment; filename=\"bbbbbbbbb.rtf\"");
RTFReportUtil.createRTF(report, httpServletResponse.getOutputStream());
FacesContext.getCurrentInstance().responseComplete();
} catch (ReportProcessingException ex) {
}
于 2012-05-16T10:38:10.120 に答える