📅  最后修改于: 2023-12-03 15:31:28.023000             🧑  作者: Mango
JasperReports是一个Java库,用于创建和填充各种类型的报表。本文将着重介绍如何使用JasperReports来填充报告。
JasperReports可以从官方网站下载,或者使用Maven或Gradle来添加依赖。
到JasperReports官方网站,下载适合您项目需求的JasperReports版本。
链接:https://community.jaspersoft.com/project/jasperreports-library/releases
在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.12.2</version>
</dependency>
在项目的build.gradle文件中添加以下依赖:
dependencies {
implementation 'net.sf.jasperreports:jasperreports:6.12.2'
}
下面是一个简单的示例,演示如何使用JasperReports来填充报告。
public class ReportFiller {
public void fillReport(String reportPath, Map<String, Object> parameters, JRDataSource dataSource) throws JRException {
JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromFile(reportPath);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint, "report.pdf");
}
}
该例子展示了使用JasperReports填充报告所需的步骤:
加载JasperReports模板文件:首先,使用JRLoader的loadObjectFromFile()方法从文件系统中加载JasperReports模板文件。
填充JasperReports报告:JasperReports提供了一个JasperFillManager.fillReport()方法,用于填充报告。该方法接受几个参数,包括报告模板、参数和数据源。填充报告将生成一个JasperPrint对象。
输出JasperReports报告:JasperReports提供了一个JasperExportManager.exportReportToPdfFile()方法,用于输出报告文件。该方法接受两个参数,包括生成的JasperPrint对象以及输出文件的路径。
使用JasperReports填充报告时,您可以将参数传递给报告。以下是一个简单示例,展示如何传递参数:
public void fillReportWithParameters(String reportPath, String outputFilePath, Map<String, Object> parameters, JRDataSource dataSource) throws JRException {
JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromFile(reportPath);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint, outputFilePath);
}
在该方法中,我们添加了一个参数Map<String, Object>,可以在报告中使用这些参数。
JasperReports支持多种数据源类型,包括:
在本文中,我们将演示如何使用基于JavaBean的JRBeanCollectionDataSource数据源。
使用基于JavaBean的数据源时,您需要创建一个JavaBean类,并将需要在报告中显示的数据保存在该类中。
public class Person {
private String firstName;
private String lastName;
private int age;
// 实现getters和setters
}
我们需要创建一个数据源来填充该类。为此,我们可以创建一个JRBeanCollectionDataSource对象,该对象接受一个Java集合。
List<Person> personList = new ArrayList<>();
personList.add(new Person("Joe", "Smith", 35));
personList.add(new Person("Mary", "Jones", 25));
personList.add(new Person("John", "Doe", 40));
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(personList);
接下来,我们可以将数据源传递给填充报告的填充方法。
fillReport(reportPath, parameters, dataSource);
这就是使用JasperReports填充报告的基本方法。我们学习了如何安装JasperReports,以及如何使用基于JavaBean的数据源填充报告。JasperReports还提供了更多功能,请查看官方文档以获取更多信息。