JasperReports入门教程(一):快速入门
JasperReports入門教程(一):快速入門
背景
現(xiàn)在公司的項目需要實現(xiàn)一個可以配置的報表,以便快速的適應(yīng)客戶的需求變化。后來在網(wǎng)上查資料發(fā)現(xiàn)可以使用JasperReports + Jaspersoft Studio工具來實現(xiàn)可配置的報表。在使用過程中也積累了一些經(jīng)驗,就想分享出來給大家,作為一個入門的指引,讓大家可以更快速的上手。下面大家跟著我一起來實現(xiàn)第一個JasperReports的報表應(yīng)用。
JasperReports基本介紹
JasperReports是一個非常強大,易用的開源報表引擎,它是用Java編寫的。它可以通過各種各樣的數(shù)據(jù)源來生成像素級的文檔,這些文檔都可以查看,打印以及導(dǎo)出(文檔格式包括HTML、PDF、Excel、Word等等)。下面我們先嘗試通過一個簡單的demo進行上手。
Jaspersoft Studio
Jaspersoft Studio是一個設(shè)計報表模板的工具,我們通過它來設(shè)計需要使用報表的模板。
1.下載Jaspersoft Studio工具,選擇下載Jaspersoft Studio CE 下載地址
2.安裝Jaspersoft Studio,安裝過程略過,默認安裝即可
3.開始我們的第一個報表模板
3.1.打開Jaspersoft Studio工具,點擊File->New->Project先創(chuàng)建一個項目
然后填寫項目名字為demo,創(chuàng)建一個名叫demo的項目
3.2.點擊File->New->Jasper Report(也可以直接在demo項目上右鍵New->Jasper Report),選擇一個豎向A4紙大小的模板
Data Adapter可以選擇 One Empty Record 選項,即空數(shù)據(jù)源,完成后就創(chuàng)建好了第一個模板
4.模板設(shè)計界面的區(qū)域說明如下。中間的模板設(shè)計區(qū)域分別多個band,這些band都可以右鍵刪除
Title:標題區(qū),如果數(shù)據(jù)有多頁只會在第一頁打印
Page Header:頁頭區(qū),多頁的情況下每頁都會打印
Column Header:列頭區(qū),配合下面的Detail區(qū)打印列表數(shù)據(jù),多頁的情況下每頁都會打印
Detail:可以新增多個Detail區(qū),可以組合打印出多個列表數(shù)據(jù),多頁的情況下每頁都會打印
Column Footer:列表底部區(qū),多頁的情況下每頁都會打印
Page Footer:頁底部區(qū),多頁的情況下每頁都會打印
Summary:合計區(qū),只會在最后一頁打印
5.添加報表元素
5.1.先從右側(cè)Basic Elements區(qū)域拖拽一個Static Text元素到Title區(qū),可以任意調(diào)整元素的大小和位置,雙擊可以修改元素要顯示的內(nèi)容,
選中元素后,可以在右側(cè)設(shè)置元素的邊框,字體和大小,文本的對齊方式等等。
5.2.在左側(cè)Outline區(qū)域Paramters上右鍵Create Paramter創(chuàng)建一個新的屬性,命名為name,類型java.lang.String
5.3.拖拽name屬性到Page Header區(qū)域,同樣可以在右側(cè)設(shè)置它的屬性
5.4.在左側(cè)Outline區(qū)域Fields上右鍵 Create Field創(chuàng)建兩個字段Field1,F(xiàn)ield2,類型java.lang.String
5.5.然后拖拽Field1,F(xiàn)ield2字段到Detail1區(qū)域,會自動帶出兩個值為Field1,F(xiàn)ield2的Static Text元素在Column Header區(qū)域,調(diào)整位置對齊
5.6.預(yù)覽可以看看樣式,因為此時我們未給Field1,F(xiàn)ield2的數(shù)據(jù)集賦值,所以預(yù)覽的為null
6.編譯報表模板
6.1.在左側(cè)的Project Explorer框文件Blank_A4.jrxml上右鍵Compile Report可以生成編譯好的文件Blank_A4.jasper
7.在java中調(diào)用模板并輸出到pdf/html
上面我們在設(shè)計器中設(shè)計好了報表的模板,下面我們需要在java中通過代碼把數(shù)據(jù)填充到模板中,并展示出來。
7.1.首先需要在maven中引用jasperreports的jar包依賴
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.9.0</version>
</dependency>
7.2.然后把6.1步驟中編譯好的文件Blank_A4.jasper放入資源文件中
7.3.然后調(diào)用代碼把數(shù)據(jù)填充到模板中,為了方便后續(xù)使用,我把JasperReport常用的方法封裝到了JasperReportUtil類中
@GetMapping("/jasper")
public void getReport(@RequestParam("type") String reportType, HttpServletResponse response)
throws Exception {
HashMap<String, Object> parameters = new HashMap<String, Object>();
parameters.put("name", "xiao ming");
List<HashMap> list = new ArrayList<>();
for (int i = 0; i < 100; i++) {
HashMap<String, String> item = new HashMap<String, String>();
item.put("Field1", "Field1-" + i);
item.put("Field2", "Field2-" + i);
list.add(item);
}
String jasperPath = JasperReportUtil.getJasperFileDir("chapter1");
if (reportType.equals("pdf")) {
JasperReportUtil.exportToPdf(jasperPath, parameters, list, response);
} else if (reportType.equals("html")) {
JasperReportUtil.exportToHtml(jasperPath, parameters, list, response);
}
}
7.4.把項目運行起來,在瀏覽器中訪問 http://localhost:8080/test/jasper?type=html 或者 http://localhost:8080/test/jasper?type=pdf 就可以在瀏覽器中看到html或者pdf格式的報表了
本節(jié)代碼和報表模板
總結(jié)
以上是生活随笔為你收集整理的JasperReports入门教程(一):快速入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cloudera目录位置
- 下一篇: 桂林山水甲天下的甲是什么意思(桂林山水甲