1. 程式人生 > >JasperReport學習筆記5-其它資料生成動態的報表(WEB)

JasperReport學習筆記5-其它資料生成動態的報表(WEB)

1.空資料(Empty Datasources)
就是說JRXML檔案裡面的內容都是靜態的,直接使用 
JREmptyDataSource就行了

Java程式碼  收藏程式碼
  1. JasperRunManager.runReportToPdfStream(reportStream,  
  2. servletOutputStream, new HashMap(), new JREmptyDataSource());  


2.Map陣列(Map Datasources)
有的時候資料不一定要從資料庫裡面來,還有可能從Map數組裡面來 
成生Map[]的方法 
Java程式碼  
收藏程式碼
  1. private Map[] initializeMapArray()  
  2. {  
  3. //你可以把數組裡面的每個map看成一個物件,就相於資料庫裡面的每個欄位  
  4. HashMap[] reportRows = new HashMap[4];  
  5. HashMap row1Map = new HashMap();  
  6. HashMap row2Map = new HashMap();  
  7. HashMap row3Map = new HashMap();  
  8. HashMap row4Map = new HashMap();  
  9. row1Map.put("tail_num""N263Y"
    );  
  10. row1Map.put("aircraft_serial""T-11");  
  11. row1Map.put("aircraft_model""39 ROSCOE TRNR RACER");  
  12. row1Map.put("engine_model""R1830 SERIES");  
  13. row2Map.put("tail_num""N4087X");  
  14. row2Map.put("aircraft_serial""BA100-163");  
  15. row2Map.put("aircraft_model""BRADLEY AEROBAT");  
  16. row2Map.put("engine_model"
    "R2800 SERIES");  
  17. row3Map.put("tail_num""N43JE");  
  18. row3Map.put("aircraft_serial""HAYABUSA 1");  
  19. row3Map.put("aircraft_model""NAKAJIMA KI-43 IIIA");  
  20. row3Map.put("engine_model""R1830 SERIES");  
  21. row4Map.put("tail_num""N912S");  
  22. row4Map.put("aircraft_serial""9973CC");  
  23. row4Map.put("aircraft_model""PA18-150");  
  24. row4Map.put("engine_model""R-1820 SER");  
  25. reportRows[0] = row1Map;  
  26. reportRows[1] = row2Map;  
  27. reportRows[2] = row3Map;  
  28. reportRows[3] = row4Map;  
  29. return reportRows;  
  30. }  


生成JRMapArrayDataSource物件 
Java程式碼  收藏程式碼
  1. private JRDataSource createReportDataSource()  
  2. {  
  3. JRMapArrayDataSource dataSource;  
  4. Map[] reportRows = initializeMapArray();  
  5. dataSource = new JRMapArrayDataSource(reportRows);  
  6. return dataSource;  
  7. }  


Servlet裡面 
Java程式碼  收藏程式碼
  1. JRDataSource dataSource = createReportDataSource();  
  2. JasperRunManager.runReportToPdfStream(reportStream,  
  3. servletOutputStream, new HashMap(), dataSource);  


3.Map集合
Java程式碼  收藏程式碼
  1. private JRDataSource createReportDataSource()  
  2. {  
  3. JRMapCollectionDataSource dataSource;  
  4. Collection reportRows = initializeMapCollection();  
  5. dataSource = new JRMapCollectionDataSource(reportRows);  
  6. return dataSource;  
  7. }  
  8. private Collection initializeMapCollection()  
  9. {  
  10. ArrayList reportRows = new ArrayList();  
  11. HashMap row1Map = new HashMap();  
  12. HashMap row2Map = new HashMap();  
  13. HashMap row3Map = new HashMap();  
  14. HashMap row4Map = new HashMap();  
  15. row1Map.put("tail_num""N263Y");  
  16. row1Map.put("aircraft_serial""T-11");  
  17. row1Map.put("aircraft_model""39 ROSCOE TRNR RACER");  
  18. row1Map.put("engine_model""R1830 SERIES");  
  19. row2Map.put("tail_num""N4087X");  
  20. row2Map.put("aircraft_serial""BA100-163");  
  21. row2Map.put("aircraft_model""BRADLEY AEROBAT");  
  22. row2Map.put("engine_model""R2800 SERIES");  
  23. row3Map.put("tail_num""N43JE");  
  24. row3Map.put("aircraft_serial""HAYABUSA 1");  
  25. row3Map.put("aircraft_model""NAKAJIMA KI-43 IIIA");  
  26. row3Map.put("engine_model""R1830 SERIES");  
  27. row4Map.put("tail_num""N912S");  
  28. row4Map.put("aircraft_serial""9973CC");  
  29. row4Map.put("aircraft_model""PA18-150");  
  30. row4Map.put("engine_model""R-1820 SER");  
  31. reportRows.add(row1Map);  
  32. reportRows.add(row2Map);  
  33. reportRows.add(row3Map);  
  34. reportRows.add(row4Map);  
  35. return reportRows;  
  36. }  


使用 
Java程式碼  收藏程式碼
  1. JRDataSource dataSource = createReportDataSource();  
  2. JasperRunManager.runReportToPdfStream(reportStream,  
  3. servletOutputStream, new HashMap(), dataSource);  


4.物件陣列(Java Objects as Datasources)物件JAVABEAN 
Java程式碼  收藏程式碼
  1. public class AircraftData  
  2. {  
  3. public AircraftData(String tail, String serial, String model,  
  4. String engine)  
  5. {  
  6. setTailNum(tail);  
  7. setAircraftSerial(serial);  
  8. setAircraftModel(model);  
  9. setEngineModel(engine);  
  10. 相關推薦

    JasperReport學習筆記5-其它資料生成動態報表WEB

    1.空資料(Empty Datasources) 就是說JRXML檔案裡面的內容都是靜態的,直接使用  JREmptyDataSource就行了 Java程式碼   JasperRunManager.runReportToPdfStre

    JasperReport學習筆記4-查詢資料庫生成動態報表WEB

    分兩種方法  第一種  1.模版  Xml程式碼   <?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE jasperReport PUBLIC "//Jaspe

    c學習筆記--5 結構體實現動態連結串列

    這裡不得不多說一句,對於c來說指標我認為最好用的就是連結串列,有很多實用的地方 #include<string.h> #include<stdio.h> //C語言 連結串列篇 //結構體實現單向連結串列 struct MyStruc

    MATLAB學習筆記——5.1 資料統計與分析

    1、求矩陣的最大元素和最小元素 函式: max():求向量或矩陣的最大元素; min():求向量或矩陣的最小元素; 當引數為向量時,上述函有兩種呼叫格式: (1)y=max(X):返回向量 : X的最大值存y,如果 X中包含複數元素,則按模取最大值。 (

    Hadoop學習筆記—20.網站日誌分析專案案例資料清洗

    網站日誌分析專案案例(二)資料清洗:當前頁面一、資料情況分析1.1 資料情況回顧  該論壇資料有兩部分:  (1)歷史資料約56GB,統計到2012-05-29。這也說明,在2012-05-29之前,日誌檔案都在一個檔案裡邊,採用了追加寫入的方式。  (2)自2013-05-

    [知了堂學習筆記]_JS小遊戲之打飛機3-飛機之間的互相撞擊,boss的出現,以及控制boss死亡

    時間 i++ score console function sss 間隔 app tint 我的小飛機和敵軍小飛機撞擊的效果的實現: 1 /** 2 * 定義我的飛機與敵機碰撞的方法: 3 */ 4 function destoryMyPlane(){ 5

    學習筆記:python3,一些基本語句2017

    val from 列表 除法 方法 是否 主程 return tuple 數學運算 1、整除、取模 a = 36 b = 10 c = d = 0 c = a//b #取整除 - 返回商的整數部分 d = a % b #取模 - 返回

    CSS學習筆記——CSS中定位的浮動float20171129002

    itl charset ear 浮動元素 有效 而是 mark 盒模型 頁面 昨天在解決了盒模型的問題之後又出現了新的知識模糊點:浮動和絕對定位?今天先解決浮動相關的問題,首先列舉出想要解決的問題: 1.浮動到底是怎麽樣的? 2.浮動對元素的影響有什麽? 3.浮動主要用來幹

    六LWIP學習筆記之用戶數據報協議UDP

    端口 數據結構 筆記 udp協議 pos body 校驗 傳輸 連接 一、背景知識 1、傳輸層協議 2、UDP協議 3、端口 4、UDP報文的交付 5、UDP報文格式 6、UDP偽首部與校驗和 二、UDP數據結構 1、報文首部結構 2、控制塊 三、控制塊操作函數 1、使用U

    Python學習筆記五函數式編程

    lis 運行 ast 計數 med tro append 避免 如果 參考教程:廖雪峰官網https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 一、返回函數 高

    ASP.NET MVC 學習筆記-7.自定義配置信息後續

    字符串 return abstract 新的 work 生成 value DC 連接字符串加密 自定義配置信息的高級應用 通過上篇博文對簡單的自定義配置信息的學習,使得更加靈活的控制系統配置信息。實際項目中,這種配置的靈活度往往無法滿足項目的靈活度和擴展性。 比如,一個

    機器學習實戰Machine Learning in Action學習筆記————04.樸素貝葉斯分類bayes

    機器學習實戰(Machine Learning in Action)學習筆記————04.樸素貝葉斯分類(bayes)關鍵字:樸素貝葉斯、python、原始碼解析作者:米倉山下時間:2018-10-25機器學習實戰(Machine Learning in Action,@author: Peter Harri

    機器學習實戰Machine Learning in Action學習筆記————06.k-均值聚類演算法kMeans學習筆記

    機器學習實戰(Machine Learning in Action)學習筆記————06.k-均值聚類演算法(kMeans)學習筆記關鍵字:k-均值、kMeans、聚類、非監督學習作者:米倉山下時間:2018-11-3機器學習實戰(Machine Learning in Action,@author: Pet

    JavaFX學習筆記——重要理念的建立與辨析

    慎用property繫結 原因:     1.常會出現意料之外的情況     2.程式碼可讀性降低   舉例:     Circle circle = new Circle(10

    JavaFX學習筆記——重要理念的建立與辨析

    處理器註冊與定義分離 問題      看過相關教程後,我們肯定對JavaFX在事件處理上,介紹的lambda表示式以及內部類簡潔用法印象深刻。但細想後其仍有很大的侷限性。     侷限一:不適用與團

    JavaFX學習筆記——重要理念的建立與辨析

    邏輯與樣式分離 這是我從網頁前端設計的HTML、JavaScript、CSS借鑑而來的概念,適用於所有團隊開發。   定義各元件的時候,往往會有下面這種想法 我Circle circle = new Circle(centerX,centerY,radius),順便就在

    JavaFX學習筆記——重要理念的建立與辨析

    並非萬物皆為Node 對Stage和Scene的大小位置等屬性設定與Node不統一             可能是之前用過QT以及cocos2dX的先入為主的觀念導致的問題 &n

    JavaFX學習筆記——重要理念的建立與辨析

    儘量使用css設定樣式 原因: 1.CSS語法簡單,格式統一,簡化了程式碼重用的方法,使得頁面邏輯與頁面樣式的設計相分離,更有利於團隊協作。更改起來也更加方便。 2.在靜態(即只需初始化一次,沒有太多複雜的額外操作)的元件樣式設定或者簡單動態響應(如滑鼠移入時的樣式,只需在類名中加“:h

    《離散時間訊號處理學習筆記》—連續時間訊號的取樣

    注:本部落格是基於奧本海姆《離散時間訊號處理》第三版編寫,主要是為了自己學習的複習與加深。 一、週期取樣 1、訊號的離散表示可以由多種形式,包括各種型別的基展開,訊號建模的引數模型和非均勻取樣。這些各種型別的表示方法通常都始於通過週期取樣得到的聯絡時間訊號的離散時

    《C語言程式設計:現代方法第2版K.N.King 著學習筆記三:C語言基本概念2

    2.3 註釋 每一個程式都應該包含識別資訊,即程式名、編寫日期、作者、程式的用途以及其他相關資訊。C語言把這類資訊放在註釋(comment)中。 符號 /* 標記註釋的開始,而符號 */ 則標記註釋