【问题标题】:Pentaho reports + JSFPentaho 报告 + JSF
【发布时间】:2023-03-19 12:23:01
【问题描述】:

我想开发一个包含预先设计好的 pentaho 报告的小型 JSF 门户。我的问题是:如何嵌入 pentaho 报告以及如何将参数从 jsf 传递到报告引擎。谢谢。

【问题讨论】:

  • 那个教程谈到调用基于 XACTION 的报告,这不是我需要的,我希望你有资格回答这个问题 :)
  • 我刚刚注意到那里提到了 jsf...认为它可能会对您有所帮助...我没有回答您的问题,只是发表了评论...顺便说一句,我在谷歌上搜索了一下注意到其他人建议在使用 JSF 时使用差异报告引擎(不是 100% 肯定)

标签: jsf primefaces reporting business-intelligence pentaho


【解决方案1】:
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) {
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多