2012-09-26 84 views
0

我正在處理需要將DynamicReport與PrimeFaces集成的項目。
我的問題:有沒有什麼方法可以顯示PrimeFace Panel內的報表,而不是在新頁面中打開。DynamicReports與JSF 2和PrimeFaces

如果可能的話,請完整的例子要做到這一點,

謝謝

+0

內PrimeFaces面板在同一頁 – ToOoT

+0

可以使用彈出? – CycDemo

+0

是的,沒關係,。 – ToOoT

回答

0

這裏有一個例子:

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
try { 
     DynamicReports.report() 
       .setTemplate(Templates.reportTemplate) 
       .columns(stateColumn, statePorc) 
       .title(Templates.createTitleComponent2("Tittle")) 
       .summary(
         DynamicReports.cht.pie3DChart() 
         .setTitleFont(boldFont) 
         .seriesColorsByName(seriesColors) 
         .setKey(stateColumn) 
         .series(
           DynamicReports.cht.serie(itemColumn).setSeries(stateColumn) 
         ) 
       ) 
       .pageFooter(Templates.footerComponent) 
       .setDataSource(createDataSource4()) 
       .toPdf(baos); 
     InputStream inputStream = new ByteArrayInputStream(baos.toByteArray()); 
     barStream = new DefaultStreamedContent(inputStream, "application/pdf", "example.pdf"); 
     setBarStream(barStream); 
    } catch (DRException e) { 
     e.printStackTrace(); 
    } 

這裏是視圖:

<p:dialog resizable="false" closeOnEscape="false" draggable="false" appendTo="@(body)" modal="true" id="pdfViewer" widgetVar="pdfModal" width="1220px" height="730px" style="z-index: 999;"> 
       <p:media cache="false" value="#{yourBean.barStream}" width="100%" height="720px" player="pdf"/> 
      </p:dialog>