问题描述
对于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格式在新窗口中打开它吗?
解决方法
这是一个小例子:
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);
另一个有用的提示:在代码视图中时,在代码面板的左上方有一个“报告”条目。单击此按钮时,将打开一个向导,该向导将帮助您创建导入碧玉报告所需的代码。
,在上述答案的帮助下,我通过以下代码运行了它:
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);