使用 Java 填充 JasperReport 模板
共同要求
无论数据如何呈现,所有报告都会获取报告模板和参数图的路径。变量用于以下所有示例:
// Parameters passed into the report.
Map<String, Object> parameters = new HashMap<>();
// Arbitrary parameter passed into the report.
parameters.put("KEY", "Value");
// The compiled report design.
String path = "path/to/template.jasper";
使用 .jrxml
文件会产生额外的编译步骤,这在大多数情况下是不必要的。除非你在报告运行之前编写了自定义软件来更改 .jrxml
(例如,动态添加或删除列),否则请使用 .jasper
文件,如后续示例所示。
使用数据库连接
// Establish a database connection.
Connection connection = DriverManager.getConnection(url, username, password);
// Fill the report, get the JasperPrint that can be exported to desired format.
JasperPrint jasperPrint = JasperFillManager.fillReport(
path, parameters, connection);
使用自定义数据源
// Populate this list of beans as per your requirements.
List<Bean> beans = new ArrayList<>();
// Wrap the beans in a beans in a JRBeanCollectionDataSource.
JRBeanCollectionDataSource datasource = new JRBeanCollectionDataSource(beans);
// Fill the report, get the JasperPrint that can be exported to desired format.
JasperPrint jasperPrint = JasperFillManager.fillReport(
path, parameters, datasource);
没有数据源,未使用的细节带
// Fill the report, get the JasperPrint that can be exported to desired format.
JasperPrint jasperPrint = JasperFillManager.fillReport(path, parameters);
如果没有数据源,则必须设置
JasperReport
元素上的属性whenNoDataType="AllSectionsNoDetail"
,否则将生成空(空白)报告。