-2

事前に設計された pentaho レポートを含む小さな JSF ポータルを開発したいと考えています。私の質問は、pentaho レポートを埋め込む方法と、jsf からレポート エンジンにパラメーターを渡す方法です。ありがとう。

4

1 に答える 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 に答える