通过 RapidClipseX 调用 JasperReports 报告

call JasperReports report by RapidClipseX

对于 RapidClipse4,我使用以下代码在新 window

中调用和打开 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。 但是使用的代码并没有更多的工作。

有没有经验/示例代码

这是一个小例子:

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 报告所需的代码。

在上述答案的帮助下,我通过以下代码得到了 运行:

            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);