2012-04-14 11 views
-3

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

+0

あなたはhttp://wiki.pentaho.com/display/COM/Pentaho+reports+integration+with+portlets+web+applicationを読んでいますか? – Daniel

+0

このチュートリアルでは、XACTIONベースのレポートを呼び出す方法について話をしています。私が必要とするものではありません。質問に答えるには資格があるといいですね:) –

+0

jsfがそこに言及していることに気付きました。私はあなたの質問に答えなかった、ちょうどコメントを投稿... btw短いグーグルをしている間私はJSFで作業中に差分レポートエンジンを使用することが他の人に推奨されていることに気付いた。(100%ではない) – Daniel

答えて

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) { 
} 
関連する問題