




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
自定義報表概要設(shè)計自定義報表概要設(shè)計11. 編寫目的22. 定義22.1 JXDataSource23. 總體設(shè)計33.1 需求規(guī)定33.1.1 獲取報表配置文件33.1.2 解析配置文件及模板33.2 運行環(huán)境33.3 處理流程43.4 未解決問題44. 接口設(shè)計44.1 用戶接口44.1.1 獲取PDF結(jié)果54.1.2 獲取excel結(jié)果54.1.3 獲取Html結(jié)果64.1.4 獲取XML結(jié)果64.1.5 獲取純文本結(jié)果74.2 內(nèi)部接口84.2.1 獲取JasperReport對象84.2.2 獲取JasperPrint對象891. 編寫目的a、規(guī)范jasperreport報表工具整合方式b、定義通用報表工具接口2. 定義2.1 JXDataSource該類需要實現(xiàn)接口JRDataSource,用來為設(shè)計好的報表提供數(shù)據(jù)源,該類有以下幾個要求:a、定義List data, int index, int max三個成員變量,data為數(shù)據(jù)列表,index為數(shù)據(jù)索引,max為最大數(shù)據(jù)集b、定義帶參數(shù)構(gòu)造方法,參數(shù)為List list,構(gòu)造方法內(nèi)部用list給成員變量賦值,并用list.size()給成員變量max賦值,用-1給成員變量index賦值c、實現(xiàn)next()方法,將index加一然后和max比較大小,只要比max小,都返回true,否則返回false,以便遍歷整個datad、實現(xiàn)getFieldValue(JRField field)方法。取出index索引所在的對象obj,返回obj中,名為field.getName()的字段的值。核心代碼:Object obj = data.get(index);Field f = obj.getClass().getDeclaredField(arg0.getName();return JXFieldUtil.getFieldValue(f, obj);3. 總體設(shè)計3.1 需求規(guī)定3.1.1 獲取報表配置文件a、定義配置文件放置路徑:在web.xml中定義配置文件的根目錄,在系統(tǒng)啟動時,初始化到全局對象中,從而方便后面使用。b、定義通用配置文件獲取方法:定義通用的配置文件獲取方式,對獲取失敗、文件不可讀等異常信息進行處理。3.1.2 解析配置文件及模板解析jasperreport配置模板,并從數(shù)據(jù)源中獲取報表數(shù)據(jù),組裝成報表后,按指定格式返回給用戶。至少需要支持PDF、Excel、HTML、XML、純文本五種格式。其中HTML直接將結(jié)果寫入response,方便用戶前臺瀏覽。其他幾種格式寫入服務(wù)器文件,并返回文件路徑,方便用戶下載使用。3.2 運行環(huán)境1、作為其它工程的類庫,由其它需要使用報表自定義功能的J2EE項目進行調(diào)用。使用JDK1.6以上2、設(shè)計報表請選擇javabean做數(shù)據(jù)源3.3 處理流程a、調(diào)用:根據(jù)用戶的選擇,調(diào)用不同的接口,從而進行不同報表格式的處理。b、根據(jù)業(yè)務(wù)拼裝參數(shù)及加載數(shù)據(jù)集。c、獲取jasperreport報表配置文件,并進行報表的數(shù)據(jù)填充。d、將填充好的報表返回給用戶。HTML格式直接返回HTML頁面,方便用戶預(yù)覽,其他格式,先將報表緩存到服務(wù)器,然后返回文件路徑,以供用戶下載使用。3.4 未解決問題a、用戶自定義報表模板b、如何動態(tài)傳遞參數(shù),進行帶條件的查詢報表c、網(wǎng)頁預(yù)覽時,背景圖片不能正常顯示4. 接口設(shè)計4.1 用戶接口4.1.1 獲取PDF結(jié)果loadPDFReport(HttpServletResponse response, String configFile, Map params, List data, String fileName):獲取PDF格式的報表,先解析報表為PDF文件,并存放到服務(wù)器的臨時文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對象,用來向瀏覽器返回內(nèi)容configFile : 所對應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報表需要的參數(shù),以map形式傳入data : 數(shù)據(jù)結(jié)果集fileName : 返回文件名稱關(guān)鍵代碼:JasperReport jr = loadJasperReport(configFile);JXDataSource ds = new JXDataSource(data);JasperPrint jp = loadJasperPrint(jr, params, ds);OutputStream out = response.getOutputStream();response.setContentType(application/pdf;charset=ISO8859-1);response.setHeader(Content-Disposition, attachment;filename= + new String(fileName.getBytes(), ISO8859-1) + );JRPdfExporter pdf = new JRPdfExporter();pdf.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);pdf.setParameter(JRExporterParameter.OUTPUT_STREAM, out);pdf.exportReport();4.1.2 獲取excel結(jié)果loadExcelReport(HttpServletResponse response, String configFile, Map params, List data, String fileName):獲取Excel格式的報表,先解析報表為Excel文件,并存放到服務(wù)器的臨時文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對象,用來向瀏覽器返回內(nèi)容configFile : 所對應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報表需要的參數(shù),以map形式傳入data : 數(shù)據(jù)結(jié)果集fileName : 返回文件名稱關(guān)鍵代碼:JasperReport jr = loadJasperReport(configFile);JXDataSource ds = new JXDataSource(data);JasperPrint jp = loadJasperPrint(jr, params, ds);OutputStream out = response.getOutputStream();response.setContentType(application/vnd.ms-excel;charset=ISO8859-1);response.setHeader(Content-Disposition, attachment;filename= + new String(fileName.getBytes(), ISO8859-1) + );JExcelApiExporter excel = new JExcelApiExporter();excel.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);excel.setParameter(JRExporterParameter.OUTPUT_STREAM, out);excel.exportReport();4.1.3 獲取Html結(jié)果loadTXTReport(HttpServletResponse response, String configFile, Map params, List data, String fileName):獲取TXT格式的報表,先解析報表為TXT文件,并存放到服務(wù)器的臨時文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對象,用來向瀏覽器返回內(nèi)容configFile : 所對應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報表需要的參數(shù),以map形式傳入data : 數(shù)據(jù)結(jié)果集fileName : 返回文件名稱關(guān)鍵代碼:JasperReport jr = loadJasperReport(configFile);JXDataSource ds = new JXDataSource(data);JasperPrint jp = loadJasperPrint(jr, params, ds);OutputStream out = response.getOutputStream();response.setContentType(text/plain;charset=utf-8);JRHtmlExporter html = new JRHtmlExporter();html.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);html.setParameter(JRExporterParameter.OUTPUT_STREAM, out);html.exportReport();4.1.4 獲取XML結(jié)果loadXMLReport(HttpServletResponse response, String configFile, Map params, List data, String fileName):獲取XML格式的報表,先解析報表為XML文件,并存放到服務(wù)器的臨時文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對象,用來向瀏覽器返回內(nèi)容configFile : 所對應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報表需要的參數(shù),以map形式傳入data : 數(shù)據(jù)結(jié)果集fileName : 返回文件名稱關(guān)鍵代碼:JasperReport jr = loadJasperReport(configFile);JXDataSource ds = new JXDataSource(data);JasperPrint jp = loadJasperPrint(jr, params, ds);OutputStream out = response.getOutputStream();response.setContentType(text/xml;charset=utf-8);JRXmlExporter excel = new JRXmlExporter();xml.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);xml.setParameter(JRExporterParameter.OUTPUT_STREAM, out);xml.exportReport();4.1.5 獲取純文本結(jié)果loadTXTReport(HttpServletResponse response, String configFile, Map params, List data, String fileName):獲取TXT格式的報表,先解析報表為TXT文件,并存放到服務(wù)器的臨時文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對象,用來向瀏覽器返回內(nèi)容configFile : 所對應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報表需要的參數(shù),以map形式傳入data : 數(shù)據(jù)結(jié)果集fileName : 返回文件名稱關(guān)鍵代碼:JasperReport jr = loadJasperReport(configFile);JXDataSource ds = new JXDataSource(data);JasperPrint jp = loadJasperPrint(jr, params, ds);OutputStream out = response.getOutputStream();response.setContentType(text/plain;charset=utf-8);JRTextExporter text = new JRTextExporter();text.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);text.setParameter(JRExporterParameter.OUTPUT_STREAM, out);text.setParameter(JRTextExporterParameter.CHARACTER_WIDTH, 200);text.setParam
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼筋混凝土建筑鋼材期貨鎖價采購合同
- 跨國醫(yī)療教育輸液訓(xùn)練臂租賃與教學(xué)服務(wù)合同
- 2025年中國手制動凸輪軸市場調(diào)查研究報告
- 2025年中國快熟蛋面市場調(diào)查研究報告
- 2025年中國彈涂槍市場調(diào)查研究報告
- 2025年中國幼兒園家具市場調(diào)查研究報告
- 2025年中國布垂直簾市場調(diào)查研究報告
- 2025年中國履帶式液壓挖掘機市場調(diào)查研究報告
- 2025年中國外徑測控儀市場調(diào)查研究報告
- 2025年中國圓棒榫機市場調(diào)查研究報告
- 環(huán)境藝術(shù)設(shè)計職業(yè)生涯規(guī)劃書
- 郵政社招筆試試題及答案
- 2025年java開發(fā)面試題及答案
- (完整版)公司的代賬協(xié)議模板合同7篇
- 全過程工程咨詢投標(biāo)方案(技術(shù)方案)
- 2024中國合同能源管理行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略咨詢報告
- 風(fēng)力發(fā)電項目實習(xí)報告范文
- 自然辯證法概論(視頻課)知到課后答案智慧樹章節(jié)測試答案2025年春安徽農(nóng)業(yè)大學(xué)
- 《大學(xué)物理》說課課件
- 支局一點一策PPT通用課件
- 國防科大暗室屏蔽部分標(biāo)書
評論
0/150
提交評論