趙強(qiáng) 屠衛(wèi) 周文慧
[摘 要] 隨著企業(yè)管理和信息化水平的不斷提高,ERP作為現(xiàn)代企業(yè)管理信息系統(tǒng)被廣大企業(yè)單位采用。報(bào)表是ERP系統(tǒng)中各種業(yè)務(wù)和數(shù)據(jù)的集中反映,是企業(yè)日常業(yè)務(wù)流轉(zhuǎn)的憑證,ERP系統(tǒng)的數(shù)據(jù)輸出已成為影響企業(yè)效率的關(guān)鍵因素。iReport作為一種智能化的報(bào)表軟件,應(yīng)用于ERP系統(tǒng),系統(tǒng)維護(hù)人員可以根據(jù)不同的業(yè)務(wù)需求靈活地設(shè)計(jì)報(bào)表,能極大地提高ERP系統(tǒng)報(bào)表輸出的效率。
[關(guān)鍵詞] ERP;報(bào)表;iReport
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2016. 07. 085
[中圖分類(lèi)號(hào)] TN948.61 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 1673 - 0194(2016)07- 0185- 02
1 引 言
當(dāng)前,ERP已經(jīng)成為國(guó)際上最先進(jìn)的企業(yè)管理模式,它以信息化技術(shù)為支撐,以現(xiàn)代化的管理思想為導(dǎo)向,為企業(yè)決策者和管理層提供一個(gè)安全的、方便的管理平臺(tái)[1]。ERP系統(tǒng)把企業(yè)的物流、人流、資金流、信息流統(tǒng)一起來(lái)管理,最大限度地利用企業(yè)現(xiàn)有資源,實(shí)現(xiàn)企業(yè)經(jīng)濟(jì)效益的最大化,為此就需要一款穩(wěn)定、高效、智能的報(bào)表系統(tǒng)作為保證[2],這也是ERP系統(tǒng)引入iReport報(bào)表的重要原因。
報(bào)表是反映某段時(shí)間內(nèi)企業(yè)活動(dòng)(如生產(chǎn)、銷(xiāo)售等)的相關(guān)記錄,以數(shù)據(jù)的列表、匯總和分析通過(guò)量化的形式直觀地展現(xiàn)出來(lái)。它是ERP系統(tǒng)中各種業(yè)務(wù)和數(shù)據(jù)的集中反映,能為具體業(yè)務(wù)流程提供支持,保證業(yè)務(wù)正常進(jìn)行;能反映公司整體運(yùn)營(yíng)情況和趨勢(shì),為公司管理提供決策支持;還可以發(fā)現(xiàn)業(yè)務(wù)流程和經(jīng)營(yíng)管理中存在的問(wèn)題,為業(yè)務(wù)改進(jìn)提供依據(jù)。因此報(bào)表對(duì)企業(yè)的運(yùn)營(yíng)管理具有重要意義。
報(bào)表作為一種經(jīng)過(guò)歸納、整理和統(tǒng)計(jì)的數(shù)據(jù)信息,是企業(yè)服務(wù)、管理和內(nèi)部控制的重要依據(jù)?;趫?bào)表的數(shù)據(jù)采集方式,是最符合人類(lèi)使用習(xí)慣的數(shù)據(jù)錄入和數(shù)據(jù)組織管理的有效方式。隨著信息化建設(shè)的逐步深入和現(xiàn)代化管理水平的不斷提高,基于報(bào)表的數(shù)據(jù)分析方式正在被大多數(shù)企事業(yè)單位采用。
2 主要技術(shù)
2.1 iReport簡(jiǎn)介
iReport是基于Jasperreport的一個(gè)可視化報(bào)表開(kāi)發(fā)工具,簡(jiǎn)單地說(shuō),Jasperreport是引擎部分,iReport是前端界面開(kāi)發(fā)工具。
iReport 系統(tǒng)是一套可視化的報(bào)表數(shù)據(jù)收集統(tǒng)計(jì)分析平臺(tái),具有良好的通用性、靈活性和可操作性,能處理多種的報(bào)表格式,如條碼,列表式報(bào)表,表單式報(bào)表以及綜合形式的報(bào)表,還可以在一個(gè)報(bào)表中嵌套多個(gè)子報(bào)表;報(bào)表系統(tǒng)具有自定義功能,隨著需求的變化,用戶(hù)可以輕松修改和調(diào)整報(bào)表;報(bào)表系統(tǒng)還具備腳本編寫(xiě)功能,使得用戶(hù)可以根據(jù)自身的特殊需要增強(qiáng)應(yīng)用程序的靈活性,最大程度的滿(mǎn)足用戶(hù)的需求。
2.2 工作原理
報(bào)表的生成、預(yù)覽、打印、導(dǎo)出等主要功能都在JasperReport的對(duì)應(yīng)類(lèi)中實(shí)現(xiàn)。報(bào)表的開(kāi)發(fā)和設(shè)計(jì)流程如下:
第一步.開(kāi)發(fā)人員首先根據(jù)業(yè)務(wù)需求設(shè)計(jì)一個(gè)*.xml或*.jrxml文件。
第二步.使用JasperReports提供API中的JasperCompileManager類(lèi)編譯*.jrxml文件,編譯后生成一個(gè)*.jasper文件。
第三步.使用JasperFillManager類(lèi)填充編譯后的*.jasper文件,填充后生成一個(gè)*.jrprint文件。
第四步.使用導(dǎo)出管理器(JasperExportManager)將*.jrprint文件導(dǎo)出成各種格式的報(bào)表文件。也可以使用JRViewer工具類(lèi)來(lái)直接瀏覽報(bào)表。
2.3 關(guān)鍵技術(shù)
JasperReports生成報(bào)表的過(guò)程不很復(fù)雜,只需要使用net.sf.jasperreports.engine包中的幾個(gè)類(lèi)就能完成報(bào)表的生成、預(yù)覽、打印、導(dǎo)出等功能[3]。下面對(duì)制作報(bào)表的幾個(gè)關(guān)鍵類(lèi)做一個(gè)簡(jiǎn)單的介紹:
(1)JasperCompileManager類(lèi)
報(bào)表的編譯工作是通過(guò)這個(gè)類(lèi)的幾個(gè)靜態(tài)方法實(shí)現(xiàn)的,編譯完成后,在*.jrxml文件所在的目錄下生成一個(gè)*.jasper文件.
(2)JasperFillManager類(lèi)
使用這個(gè)類(lèi)可以完成報(bào)表的數(shù)據(jù)填充工作。它可以使用JasperReport對(duì)象,也可以使用*.jasper文件作為報(bào)表模板。以JRDataSource類(lèi)作為數(shù)據(jù)源在iasper文件所在目錄生成一個(gè).jrprint文件。
(3)JasperExportManager類(lèi)
這個(gè)類(lèi)的作用是導(dǎo)出報(bào)表.它使用.irprint文件做為輸入,輸出不同格式的報(bào)表,例如PDF,HTML,XML,XLS,CVS等.
3 具體應(yīng)用
報(bào)表是ERP系統(tǒng)中用到的最頻繁的單據(jù)之一。企業(yè)的各個(gè)部門(mén)內(nèi)部業(yè)務(wù)記錄及部門(mén)之間的業(yè)務(wù)流轉(zhuǎn)都要用到報(bào)表,比如,采購(gòu)中心要打印采購(gòu)訂單明細(xì)、采購(gòu)物資驗(yàn)收單;倉(cāng)儲(chǔ)中心要打印入出庫(kù)申請(qǐng)單;生產(chǎn)部要打印車(chē)間任務(wù)工藝路線(xiàn)規(guī)程卡;銷(xiāo)售中心要打印銷(xiāo)售訂單明細(xì),等等。因此報(bào)表的使用在ERP系統(tǒng)中起著舉足輕重的地位。因此,在采用JasperReports開(kāi)發(fā)報(bào)表時(shí),可選擇使用可視化工具iReport來(lái)簡(jiǎn)化開(kāi)發(fā)過(guò)程。
3.1 使用iReport設(shè)計(jì)報(bào)表
(1)運(yùn)行iReport軟件,新建一個(gè)空?qǐng)?bào)表文件。
(2)在“report query”窗口里輸入查詢(xún)語(yǔ)句,格式為:select*from表名where條件。
(3)在空?qǐng)?bào)表窗口把相應(yīng)控件拖拽到指定位置,然后設(shè)置控件的屬性。
(4)報(bào)表設(shè)計(jì)完成后,編輯——運(yùn)行后在工作目錄下生成*.jasper文件,這個(gè)文件就是生成的報(bào)表文件。
3.2 ERP程序調(diào)用報(bào)表過(guò)程
報(bào)表文件生成后,要把它放在ERP程序所在的目錄下,然后再創(chuàng)建一個(gè)調(diào)用報(bào)表的文件,最后在ERP程序中調(diào)用這個(gè)程序來(lái)訪(fǎng)問(wèn)報(bào)表[4]。這樣,在ERP系統(tǒng)的前端頁(yè)面中點(diǎn)擊“打印”按鈕相應(yīng)的報(bào)表就會(huì)顯示在用戶(hù)的面前,接通打印機(jī)就能得到紙質(zhì)的報(bào)表。
調(diào)用報(bào)表文件的關(guān)鍵代碼如下:
第一步:裝載jasper文件
File jasperFileName =newFile(request.getRealPath("/Reports/test_report.jasper"));
第二步:設(shè)置參數(shù)值
HashMap params =new HashMap();
params.put("yourParamName","");//設(shè)置參數(shù)值
第三步:利用JasperRunManager生成PDF文件
ConnectionPoolconnMgr=ConnectionPool.getInstance();
Connectionconn=connMgr.getConnection();
JasperRunManager.runReportToPdfFile(jasperFileName.getPath(),parameters,conn);
4 實(shí) 驗(yàn)
4.1 實(shí)驗(yàn)環(huán)境
ERP環(huán)境:許昌煙草機(jī)械有限責(zé)任公司ERP系統(tǒng);
硬件:IBM服務(wù)器;
操作系統(tǒng):Windows 2000;
Web服務(wù):Websphere 6.0版本;
數(shù)據(jù)庫(kù):Oracle10g。
4.2 實(shí)驗(yàn)效果(見(jiàn)圖1)
5 結(jié) 語(yǔ)
綜上所述,把iReport報(bào)表引用企業(yè)ERP系統(tǒng)中,能夠根據(jù)業(yè)務(wù)的需要方便地定制報(bào)表,是一種簡(jiǎn)潔、直觀且高效的解決方案。動(dòng)態(tài)報(bào)表的設(shè)計(jì)使ERP系統(tǒng)更具柔性化,提高ERP系統(tǒng)的使用效率,進(jìn)而提升企業(yè)的整體管理水平。
主要參考文獻(xiàn)
[1]韋宗龍.淺議ERP系統(tǒng)實(shí)施的策略和方法[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2014(1).
[2]肖華.基于ERP的商業(yè)智能報(bào)表系統(tǒng)的研究與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2013.