0

我正在研究需要将 DynamicReport 与 PrimeFaces 集成的项目。
我的问题:有什么方法可以在 PrimeFace 面板中显示未在新页面中打开的报告。

如果可能的话,请完整的例子来做到这一点,

谢谢

4

1 回答 1

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>
于 2015-05-13T16:08:12.733 回答