JasperReport報表生成工具的基本使用和常見問題
JasperReports介紹
JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,並將之轉換成PDF、HTML或者XML格式,該庫完全由Java寫出,可以用於在各種Java應用程式,非常適合Java開發者用來做報表生成。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
新建專案
首先選擇模板,這裡就直接選了普通的A4模板。
這裡用來設定檔名字和檔案路徑。
這裡是選擇資料來源,我這裡已經事先建立好了資料庫連線,在後續測試取資料的時候會用到。
這裡就是JasperReport的主介面,首先介紹一下介面的五個主要區域:
區域1:選擇資料來源和專案;
區域2:用於展示報表的內容列表,報表內所含有的所有元件資訊都會展示在這裡;
區域3:就是視覺化報表內容區域,包含報表樣式,報表原始碼和預覽生成;
區域4:元件列表;
區域5:屬性編輯區域。
再介紹一下需要用的幾個基本屬性名稱:
Parameters:報表的引數,通常由外部傳入資料填充;
Fileds:欄位,由關聯的資料庫或實體類生成;
Vareables:變數,可以用來進行一些數學計算。
最後介紹一下報表內容的幾個模組:
Title(標題):只在整個報表的第一頁最上端顯示,其他頁面均不顯示;
Page Header(頁頭):在整個報表每一頁都會顯示,第一頁在Title區域下面,之後的每一頁均在頁面的最上端顯示;
Column Header(列頭):Detail中列印的是一張表的話,Column Header就是表中每一列的列頭;
Deatil(詳情):報表內容,可以迴圈顯示資料;
Column Footer(列腳):Detail中列印的是一張表的話,Column Footer就是表中每一列的列腳;
Page Footer(頁尾):整個報表每一頁都會在最下端顯示,一般用來顯示頁碼;
Summary(合計):出現在整個報表的最後一頁中,在Detail後面,主要用來做報表的合計顯示。
開始畫報表
這是該專案的原始碼,我在這裡需要取一些產品表裡的資料,queryString標籤內就是主專案的取數sql,直接加進去。
這裡加入sql後取到了產品ID欄位,後續會在報表內顯示,所以在FIelds域裡也新增了ID_PRODUCT的屬性,可以直接在程式碼裡新增,也可以在主介面新增,如下圖,直接右鍵Create Field,然後在區域5裡可以修改類和名稱。
接下來我們將Static Text和“Text Field”拖入Detail區域中,一個是靜態文字,一個用來放屬性。
雙擊Text Field,可以選擇我們剛才新新增的屬性ID_PRODUCT,並將靜態文字改為產品ID,即可初步生成我們的報表。
可以看到已經生成成功了,我這裡只去了前十條資料,這裡再展示一下透過外部輸入資料來篩選資料,使用投資性質VLU_INVEST_PROPERTY這個欄位,先新增該欄位的外部輸入引數,再在sql里加入對應篩選的語句。
之後將該欄位加入主介面,生成報表即可根據外部輸入該欄位來篩選資料。
這裡模板檔案生成的基本的操作流程就已經介紹完了,這時候是.jxml檔案,然後需要build成.jasper檔案,就可以在java程式裡呼叫jasper相關方法生成報表了。
常見問題
如圖錯誤
這個錯誤一般是由於頁面的寬度和列長度不匹配導致的。
主介面有些表格無法顯示
很有可能是表格重疊導致,分開後即可。
無查詢結果
在使用table元件後,外部資料輸入後sql查詢沒有結果。
因為外部輸入的資料沒有傳遞到子查詢中,需要設定值的傳遞。
像圖中所示即可將主專案的值傳遞到table中。
記憶體洩漏或者溢位
可以使用模擬器來解決問題,推薦使用JRGzipVirtualizer模擬器,能夠將記憶體洩漏壓縮在最小的範圍裡了。
最後:
可以到我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2901740/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpaceVim的基本安裝和常見問題
- RunLoop原始碼分析、基本使用場景和常見問題OOP原始碼
- FastReport報表生成器有關COM / ActiveX快速報告常見問題AST
- SDWebImage的基本用法及常見問題Web
- RHCE常見的報錯問題
- 安裝工具常見問題
- phpMyAdmin工具常見問題PHP
- Jasperreport 報表開發
- 必知的git基本命令及常見問題Git
- 使用兔展教程和常見製作問題
- 安卓so包常見報錯問題安卓
- 常見問題--表的約束initially immediate 理解
- flutter常見問題【3】:Flutter 使用Android studio 打包生成apkFlutterAndroidAPK
- docker安裝和常見問題Docker
- RDSforMySQLMysqldump常見問題和處理ORMMySql
- 常見問題03:php實現海報生成(包含多行文字與水印)PHP
- windows 10 安裝和使用中5個常見問題Windows
- rocketmq常見問題及使用 新手篇MQ
- C語言常見使用問題2C語言
- 【Nginx】常見問題Nginx
- js常見問題JS
- CSS常見問題CSS
- Git 常見問題Git
- PHP 常見問題PHP
- swiper常見問題
- nginx 常見問題Nginx
- java 常見問題Java
- MyBatis常見問題MyBatis
- 前端常見問題前端
- Git常見問題Git
- SQLServer常見問題SQLServer
- css 常見問題CSS
- HTML常見問題HTML
- PyMongo 常見問題Go
- xhtml常見問題HTML
- UITableview 常見問題UIView
- mysql常見問題MySql
- MySQL 常見問題MySql