




已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
自定義報(bào)表概要設(shè)計(jì)自定義報(bào)表概要設(shè)計(jì)11. 編寫目的22. 定義22.1 JXDataSource23. 總體設(shè)計(jì)33.1 需求規(guī)定33.1.1 獲取報(bào)表配置文件33.1.2 解析配置文件及模板33.2 運(yùn)行環(huán)境33.3 處理流程43.4 未解決問(wèn)題44. 接口設(shè)計(jì)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對(duì)象84.2.2 獲取JasperPrint對(duì)象891. 編寫目的a、規(guī)范jasperreport報(bào)表工具整合方式b、定義通用報(bào)表工具接口2. 定義2.1 JXDataSource該類需要實(shí)現(xiàn)接口JRDataSource,用來(lái)為設(shè)計(jì)好的報(bào)表提供數(shù)據(jù)源,該類有以下幾個(gè)要求:a、定義List data, int index, int max三個(gè)成員變量,data為數(shù)據(jù)列表,index為數(shù)據(jù)索引,max為最大數(shù)據(jù)集b、定義帶參數(shù)構(gòu)造方法,參數(shù)為L(zhǎng)ist list,構(gòu)造方法內(nèi)部用list給成員變量賦值,并用list.size()給成員變量max賦值,用-1給成員變量index賦值c、實(shí)現(xiàn)next()方法,將index加一然后和max比較大小,只要比max小,都返回true,否則返回false,以便遍歷整個(gè)datad、實(shí)現(xiàn)getFieldValue(JRField field)方法。取出index索引所在的對(duì)象obj,返回obj中,名為field.getName()的字段的值。核心代碼:Object obj = data.get(index);Field f = obj.getClass().getDeclaredField(arg0.getName();return JXFieldUtil.getFieldValue(f, obj);3. 總體設(shè)計(jì)3.1 需求規(guī)定3.1.1 獲取報(bào)表配置文件a、定義配置文件放置路徑:在web.xml中定義配置文件的根目錄,在系統(tǒng)啟動(dòng)時(shí),初始化到全局對(duì)象中,從而方便后面使用。b、定義通用配置文件獲取方法:定義通用的配置文件獲取方式,對(duì)獲取失敗、文件不可讀等異常信息進(jìn)行處理。3.1.2 解析配置文件及模板解析jasperreport配置模板,并從數(shù)據(jù)源中獲取報(bào)表數(shù)據(jù),組裝成報(bào)表后,按指定格式返回給用戶。至少需要支持PDF、Excel、HTML、XML、純文本五種格式。其中HTML直接將結(jié)果寫入response,方便用戶前臺(tái)瀏覽。其他幾種格式寫入服務(wù)器文件,并返回文件路徑,方便用戶下載使用。3.2 運(yùn)行環(huán)境1、作為其它工程的類庫(kù),由其它需要使用報(bào)表自定義功能的J2EE項(xiàng)目進(jìn)行調(diào)用。使用JDK1.6以上2、設(shè)計(jì)報(bào)表請(qǐng)選擇javabean做數(shù)據(jù)源3.3 處理流程a、調(diào)用:根據(jù)用戶的選擇,調(diào)用不同的接口,從而進(jìn)行不同報(bào)表格式的處理。b、根據(jù)業(yè)務(wù)拼裝參數(shù)及加載數(shù)據(jù)集。c、獲取jasperreport報(bào)表配置文件,并進(jìn)行報(bào)表的數(shù)據(jù)填充。d、將填充好的報(bào)表返回給用戶。HTML格式直接返回HTML頁(yè)面,方便用戶預(yù)覽,其他格式,先將報(bào)表緩存到服務(wù)器,然后返回文件路徑,以供用戶下載使用。3.4 未解決問(wèn)題a、用戶自定義報(bào)表模板b、如何動(dòng)態(tài)傳遞參數(shù),進(jìn)行帶條件的查詢報(bào)表c、網(wǎng)頁(yè)預(yù)覽時(shí),背景圖片不能正常顯示4. 接口設(shè)計(jì)4.1 用戶接口4.1.1 獲取PDF結(jié)果loadPDFReport(HttpServletResponse response, String configFile, Map params, List data, String fileName):獲取PDF格式的報(bào)表,先解析報(bào)表為PDF文件,并存放到服務(wù)器的臨時(shí)文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對(duì)象,用來(lái)向?yàn)g覽器返回內(nèi)容configFile : 所對(duì)應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報(bào)表需要的參數(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格式的報(bào)表,先解析報(bào)表為Excel文件,并存放到服務(wù)器的臨時(shí)文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對(duì)象,用來(lái)向?yàn)g覽器返回內(nèi)容configFile : 所對(duì)應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報(bào)表需要的參數(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格式的報(bào)表,先解析報(bào)表為TXT文件,并存放到服務(wù)器的臨時(shí)文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對(duì)象,用來(lái)向?yàn)g覽器返回內(nèi)容configFile : 所對(duì)應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報(bào)表需要的參數(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格式的報(bào)表,先解析報(bào)表為XML文件,并存放到服務(wù)器的臨時(shí)文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對(duì)象,用來(lái)向?yàn)g覽器返回內(nèi)容configFile : 所對(duì)應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報(bào)表需要的參數(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格式的報(bào)表,先解析報(bào)表為TXT文件,并存放到服務(wù)器的臨時(shí)文件夾中,然后返回文件路徑,以供用戶下載使用。此方法要求先根據(jù)業(yè)務(wù)需求組裝參數(shù),及數(shù)據(jù)結(jié)果集,然后設(shè)置response的返回類型及數(shù)據(jù)。參數(shù):response : HttpServletResonse對(duì)象,用來(lái)向?yàn)g覽器返回內(nèi)容configFile : 所對(duì)應(yīng)的jasperreport模板名稱,該文件已經(jīng)放入了指定的文件夾內(nèi)params : 生成報(bào)表需要的參數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咨詢服務(wù)委托協(xié)議書
- 宣傳一般工作方案
- 2025年中石化蕪湖石油分公司招聘8人筆試參考題庫(kù)附帶答案詳解
- 2025年上半年宜昌宜都市交通運(yùn)輸局招考事業(yè)單位工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年宜賓江安縣住房和城鄉(xiāng)規(guī)劃建設(shè)局招考建設(shè)監(jiān)察外勤人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽馬鞍山博望區(qū)政府部門招聘派遣制工作人員10人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蚌埠市信息資源中心招聘2人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省六安市直部分事業(yè)單位招聘83人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽合肥市水務(wù)環(huán)境建設(shè)投資限公司招聘14人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽合肥豐樂(lè)種業(yè)股份限公司招聘162人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 好的心理治愈只需一次:《了凡四訓(xùn)》的心理學(xué)解讀
- 污水處理廠項(xiàng)目委托運(yùn)營(yíng)協(xié)議
- 哈爾濱LED廣告市場(chǎng) 媒體數(shù)據(jù)分析
- 載波與測(cè)距碼
- AGV小車的設(shè)計(jì)與研究
- 康復(fù)醫(yī)療中心基本標(biāo)準(zhǔn)(試行)康復(fù)醫(yī)療中心管理規(guī)范(試行)
- GB/T 1551-2009硅單晶電阻率測(cè)定方法
- GB/T 33589-2017微電網(wǎng)接入電力系統(tǒng)技術(shù)規(guī)定
- GB/T 1094.4-2005電力變壓器第4部分:電力變壓器和電抗器的雷電沖擊和操作沖擊試驗(yàn)導(dǎo)則
- 學(xué)習(xí)-化工單元第十四講萃取
- 貝利嬰幼兒發(fā)展量表
評(píng)論
0/150
提交評(píng)論