日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

JasperReports入门教程(一):快速入门

發(fā)布時(shí)間:2023/12/29 综合教程 53 生活家
生活随笔 收集整理的這篇文章主要介紹了 JasperReports入门教程(一):快速入门 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JasperReports入門教程(一):快速入門


背景

現(xiàn)在公司的項(xiàng)目需要實(shí)現(xiàn)一個(gè)可以配置的報(bào)表,以便快速的適應(yīng)客戶的需求變化。后來在網(wǎng)上查資料發(fā)現(xiàn)可以使用JasperReports + Jaspersoft Studio工具來實(shí)現(xiàn)可配置的報(bào)表。在使用過程中也積累了一些經(jīng)驗(yàn),就想分享出來給大家,作為一個(gè)入門的指引,讓大家可以更快速的上手。下面大家跟著我一起來實(shí)現(xiàn)第一個(gè)JasperReports的報(bào)表應(yīng)用。

JasperReports基本介紹

JasperReports是一個(gè)非常強(qiáng)大,易用的開源報(bào)表引擎,它是用Java編寫的。它可以通過各種各樣的數(shù)據(jù)源來生成像素級(jí)的文檔,這些文檔都可以查看,打印以及導(dǎo)出(文檔格式包括HTML、PDF、Excel、Word等等)。下面我們先嘗試通過一個(gè)簡(jiǎn)單的demo進(jìn)行上手。

Jaspersoft Studio

Jaspersoft Studio是一個(gè)設(shè)計(jì)報(bào)表模板的工具,我們通過它來設(shè)計(jì)需要使用報(bào)表的模板。

1.下載Jaspersoft Studio工具,選擇下載Jaspersoft Studio CE 下載地址

2.安裝Jaspersoft Studio,安裝過程略過,默認(rèn)安裝即可

3.開始我們的第一個(gè)報(bào)表模板

3.1.打開Jaspersoft Studio工具,點(diǎn)擊File->New->Project先創(chuàng)建一個(gè)項(xiàng)目

然后填寫項(xiàng)目名字為demo,創(chuàng)建一個(gè)名叫demo的項(xiàng)目

3.2.點(diǎn)擊File->New->Jasper Report(也可以直接在demo項(xiàng)目上右鍵New->Jasper Report),選擇一個(gè)豎向A4紙大小的模板

Data Adapter可以選擇 One Empty Record 選項(xiàng),即空數(shù)據(jù)源,完成后就創(chuàng)建好了第一個(gè)模板

4.模板設(shè)計(jì)界面的區(qū)域說明如下。中間的模板設(shè)計(jì)區(qū)域分別多個(gè)band,這些band都可以右鍵刪除

Title:標(biāo)題區(qū),如果數(shù)據(jù)有多頁只會(huì)在第一頁打印
Page Header:頁頭區(qū),多頁的情況下每頁都會(huì)打印
Column Header:列頭區(qū),配合下面的Detail區(qū)打印列表數(shù)據(jù),多頁的情況下每頁都會(huì)打印
Detail:可以新增多個(gè)Detail區(qū),可以組合打印出多個(gè)列表數(shù)據(jù),多頁的情況下每頁都會(huì)打印
Column Footer:列表底部區(qū),多頁的情況下每頁都會(huì)打印
Page Footer:頁底部區(qū),多頁的情況下每頁都會(huì)打印
Summary:合計(jì)區(qū),只會(huì)在最后一頁打印

5.添加報(bào)表元素

5.1.先從右側(cè)Basic Elements區(qū)域拖拽一個(gè)Static Text元素到Title區(qū),可以任意調(diào)整元素的大小和位置,雙擊可以修改元素要顯示的內(nèi)容,
選中元素后,可以在右側(cè)設(shè)置元素的邊框,字體和大小,文本的對(duì)齊方式等等。

5.2.在左側(cè)Outline區(qū)域Paramters上右鍵Create Paramter創(chuàng)建一個(gè)新的屬性,命名為name,類型java.lang.String

5.3.拖拽name屬性到Page Header區(qū)域,同樣可以在右側(cè)設(shè)置它的屬性

5.4.在左側(cè)Outline區(qū)域Fields上右鍵 Create Field創(chuàng)建兩個(gè)字段Field1,F(xiàn)ield2,類型java.lang.String

5.5.然后拖拽Field1,F(xiàn)ield2字段到Detail1區(qū)域,會(huì)自動(dòng)帶出兩個(gè)值為Field1,F(xiàn)ield2的Static Text元素在Column Header區(qū)域,調(diào)整位置對(duì)齊

5.6.預(yù)覽可以看看樣式,因?yàn)榇藭r(shí)我們未給Field1,F(xiàn)ield2的數(shù)據(jù)集賦值,所以預(yù)覽的為null

6.編譯報(bào)表模板

6.1.在左側(cè)的Project Explorer框文件Blank_A4.jrxml上右鍵Compile Report可以生成編譯好的文件Blank_A4.jasper

7.在java中調(diào)用模板并輸出到pdf/html

上面我們?cè)谠O(shè)計(jì)器中設(shè)計(jì)好了報(bào)表的模板,下面我們需要在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.把項(xiàng)目運(yùn)行起來,在瀏覽器中訪問 http://localhost:8080/test/jasper?type=html 或者 http://localhost:8080/test/jasper?type=pdf 就可以在瀏覽器中看到html或者pdf格式的報(bào)表了

本節(jié)代碼和報(bào)表模板

總結(jié)

以上是生活随笔為你收集整理的JasperReports入门教程(一):快速入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。