-1

对于 RapidClipse4,我使用以下代码在新窗口中调用并打开 JasperReport

try {
    this.browserFrame = new XdevBrowserFrame();
    final Resource exportToResource = Report.New()
        .jrxml("WebContent/WEB-INF/resources/reports/MeinReport.jrxml")
        .dataSource( com.xdev.dal.DAOs.get(com.MyReportDAO.class)
                            .parameter("selJahr", selJahr)
                            .mapField("L1_GroupName", "l1GroupName")
                            .mapField("L2_GroupName", "l2GroupName").mapField("dBetrag", "dbetrag")
                            .mapField("JahrMonat", "jahrMonat")
            .exportToResource(ExportType.PDF);

        this.browserFrame.setSource(exportToResource);

} catch (final Exception e) {
    e.printStackTrace();
}

几个月前,我改用 RapidClipseX。但是使用的代码没有更多的工作。

是否有任何经验/示例代码

  • 从 RapidClipseX Web 应用程序中调用 JasperReport?
  • 在新窗口中以pdf格式打开它?
4

2 回答 2

2

这是一个小例子:

final StreamResource pdf = Report.New()
        .dataSource(new ArrayList<>())
        .jrxml("/Simple.jrxml")
        .exportToResource(Format.Pdf());

final HtmlObject pdfViewer = new HtmlObject(pdf, "application/pdf");
pdfViewer.setSizeFull();

this.add(pdfViewer);

还有一个有用的提示:当您在代码视图中时,左上角的代码面板中有一个“报告”条目。当您单击此按钮时,将打开一个向导,该向导将帮助您创建导入 jasper 报告所需的代码。

于 2020-08-17T05:16:56.130 回答
0

在上面答案的帮助下,我通过以下代码运行它:

            final StreamResource pdf = Report.New()
            .jrxml("/frontend/reports/MyReport.jrxml")
            .dataSource(MyReportDAO.INSTANCE.findAll())
            .mapField("Beschreibung", "beschreibung").mapField("Status", "status")
            .mapField("Erfassungsdatum", "erfassungsdatum").mapField("StatusAenderungsDatum", "statusAenderungsDatum")
            .exportToResource(Format.Pdf());
        
        final HtmlObject pdfViewer = new HtmlObject(pdf, "application/pdf");
        pdfViewer.setSizeFull();
        this.add(pdfViewer);
于 2020-08-17T12:47:58.477 回答