使用 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"
,否則將生成空(空白)報告。