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