ireport 匯入javabean資料來源生成報表!
阿新 • • 發佈:2019-02-05
1.我的具體操作如下
1.匯出vo-bean 生成jar檔案
2.把jar檔案拷貝包ireport lib下,
3.ireport 下的 classpath 下已加入jar包!
4.javabeans set datasource 下 test 測試成功
本文來自:軟體培訓專家-青軟培訓(http://www.qingsoft.net)原文連結:http://bbs.qingsoft.net/thread-1417-1-1.html
1.正確安裝jdk
2.到http://ireport.sourceforge.net/ 去下載ireport,本文使用1.3.1版本,解壓iReport在任意目錄,解壓後的檔案裡面有一個iReport.bat,通過雙擊執行。
3.到http://jasperreports.sourceforge.net/index.html 下載jasperreport,本文使用的是1.3.1版本,解壓到任意目錄,開發中需要使用其中的jasperreports-1.3.1.jar , commons-logging-1.0.2.jar , commons-collections-2.1.jar. 二.建立javabean
1.建立DailySales.java,一個簡單VO bean。
import
3.設定資料來源.在選單"Data"中選擇”Connection/Data sources”, 點選在彈出框中的new按鈕增加一個數據源.如圖
其中Name隨便取一個名字,Type of Connection/Data 選擇 JavaBeans set data source,如果使用其它的資料來源則選擇其它的選項.Factory class 為我們剛才建立的Factory類,裡面包含取得測試資料的靜態方法getBeanCollection().用Test測試是否成功,點Save儲存. 4. 設定活動連線.在選單"Data"中選擇”Set Active Connection”. 5.Report Query , 在選單"Data"中選擇” Report Query”,填寫javabean,即我們建立的VO bean.如圖 6.設計報表.
設計日期欄位如圖
設計填充欄位,如圖
設計頁數字段如圖 設計好的報表樣式如圖 點選單"build"中的"compile"進行編譯,然後再”execute with connection datasource”就可以看到報表的結果了.
報表設計完成,在ireport的執行路徑下會生成一個DailySales.jasper的檔案.
四.編寫測試類.
生成的DailySales.jasper可以在web服務端生成報表,也可以在肥客戶端如swing生成,這裡寫一個在肥客戶端和簡單運用.
import java.awt.Dimension; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.JasperViewer; public class TestReport { public static void main(String[] args) { TestReport.showReport (); } private static void showReport() { String reportPath = "D://dailySales.jasper" ; Map parameters = new HashMap(); // 如果報表中有用到變數,在這裡給它賦值. //parameters.put("ReportTitle", " 報表標題 "); try { JasperReport jasperReport = (JasperReport) JRLoader.loadObject (reportPath); JasperPrint jasperPrint = JasperFillManager.fillReport (jasperReport, parameters, new DailySalesDataSource()); JasperViewer jrview = new JasperViewer(jasperPrint); jrview.setPreferredSize( new Dimension(200,100)); jrview.setVisible( true ); } catch (JRException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } 執行生成的結果如圖