国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種自定義動(dòng)態(tài)報(bào)表系統(tǒng)的設(shè)計(jì)與應(yīng)用

2013-08-16 07:25:36巫喬順彭海波
關(guān)鍵詞:配置文件報(bào)表示例

巫喬順,彭海波,李 杰

(武鋼集團(tuán)昆明鋼鐵股份有限公司信息中心,云南昆明 650302)

報(bào)表主要用來展現(xiàn)一些綜合數(shù)據(jù),計(jì)算機(jī)廣泛應(yīng)用之前多以人工填報(bào)方式完成,不僅工作效率低下,勞動(dòng)強(qiáng)度大,而且出錯(cuò)率較高。隨著計(jì)算機(jī)技術(shù)的發(fā)展,在目前的實(shí)際應(yīng)用中,有的企業(yè)購買專門的報(bào)表軟件來完成報(bào)表填報(bào),有的企業(yè)則在計(jì)算機(jī)程序語言中采用硬編碼繪制。這些方法在實(shí)施成本、維護(hù)成本及靈活性等方面都存在這樣或那樣的不足,尤其當(dāng)用戶報(bào)表需求變化時(shí),往往要等待開發(fā)人員來修改報(bào)表,甚至要重新開發(fā)新程序后才能實(shí)現(xiàn),往往滿足不了報(bào)表需求經(jīng)常變化的實(shí)時(shí)性要求,即使勉強(qiáng)滿足,也會讓開發(fā)維護(hù)人員疲于奔命,增加實(shí)施和后期維護(hù)成本。而對于已出現(xiàn)的部分應(yīng)用Excel做介質(zhì)的報(bào)表處理技術(shù),除了在靈活性及可配置性方面有欠缺外,只能在Windows系統(tǒng)上實(shí)現(xiàn),在Linux或者Unix等系統(tǒng)上就無能為力了。

有鑒于此,為克服現(xiàn)有技術(shù)的不足,本文設(shè)計(jì)了一種以低成本、易用性、可配置、自定義為目的的動(dòng)態(tài)報(bào)表系統(tǒng),以滿足用戶多變的需求。

1 總體設(shè)計(jì)

首先,利用XML具有的自定義性、可擴(kuò)展性等優(yōu)勢[1],選定其來定義各種類型報(bào)表的數(shù)據(jù)乃至報(bào)表格式,作為報(bào)表數(shù)據(jù)和格式的定義語言;其次,選定目前市場上用途最廣、使用人數(shù)最多的電子表格系統(tǒng)Excel來定義報(bào)表模板,借助其強(qiáng)大的展現(xiàn)和數(shù)據(jù)處理功能,方便用戶根據(jù)需求自己編輯、定義所需報(bào)表以方便處理復(fù)雜的中國式報(bào)表,實(shí)現(xiàn)所見即所得功能[2]。

本文設(shè)計(jì)的是一種自定義動(dòng)態(tài)報(bào)表系統(tǒng),由數(shù)據(jù)層、定義層、業(yè)務(wù)層和展現(xiàn)層構(gòu)成,如圖1所示。

圖1 報(bào)表系統(tǒng)結(jié)構(gòu)圖

數(shù)據(jù)層為任何能提供報(bào)表原始數(shù)據(jù)的數(shù)據(jù)源,如數(shù)據(jù)庫、文本文件等,可以是異構(gòu)的。

定義層是基于XML的配置文件,由報(bào)表宏觀定義、報(bào)表頭定義、報(bào)表體定義、報(bào)表尾定義共4部分組成。報(bào)表宏觀定義主要用來定義報(bào)表的類型、最終處理方式、打印機(jī)名、打印份數(shù)、數(shù)據(jù)源獲取方式等;報(bào)表頭定義、報(bào)表體定義、報(bào)表尾定義用來定義報(bào)表數(shù)據(jù)具體對應(yīng)的數(shù)據(jù)層數(shù)據(jù)和顯示位置、計(jì)算公式。

展現(xiàn)層是基于Excel的模板文件,在模板中定義共性的報(bào)表元素或者特征,或者由程序根據(jù)配置文件生成報(bào)表,如報(bào)表的風(fēng)格、描述性文字及其內(nèi)容、字體、顏色、計(jì)算公式等信息。

業(yè)務(wù)層具有解析配置文件、加載報(bào)表模板、處理報(bào)表數(shù)據(jù)、生成最終報(bào)表的功能。

本文設(shè)計(jì)的報(bào)表系統(tǒng)根據(jù)報(bào)表頭、報(bào)表體、報(bào)表尾的特征按下列類型進(jìn)行劃分。

Ⅰ類報(bào)表:表中的行、列數(shù)據(jù)格式均固定不變,報(bào)表數(shù)據(jù)以填充單元格形式提供。

Ⅱ類報(bào)表:報(bào)表頭和報(bào)表尾格式固定,報(bào)表體的列格式及其中的數(shù)值類型、數(shù)量、描述固定,而行格式及其中的數(shù)據(jù)為動(dòng)態(tài)可變,如圖2所示。

圖2 報(bào)表分類示意圖

Ⅲ類報(bào)表:報(bào)表頭和報(bào)表尾格式固定,表中的行、列格式及其中的數(shù)值類型、數(shù)量、描述為動(dòng)態(tài)可變。

2 具體實(shí)現(xiàn)

下面以自定義帶條形碼打印的某鋼材標(biāo)牌報(bào)表的實(shí)現(xiàn)作為示例,介紹報(bào)表在本系統(tǒng)中的實(shí)現(xiàn),標(biāo)牌報(bào)表如圖3所示,實(shí)現(xiàn)流程如圖4所示。

圖3 Excel模板文件示例圖

101,根據(jù)報(bào)表需求定義報(bào)表類型。如圖3所示,該標(biāo)牌報(bào)表是一種鋼材產(chǎn)品標(biāo)牌,報(bào)表顯示的行、列格式固定,需要打印二維條碼,數(shù)據(jù)來源于數(shù)據(jù)庫,但標(biāo)簽打印紙的高度、長度、報(bào)表元素等格式為動(dòng)態(tài)可變,需要根據(jù)生產(chǎn)情況和標(biāo)簽紙消耗實(shí)際情況決定,因此根據(jù)報(bào)表需求將帶條形碼打印的標(biāo)牌報(bào)表定義為Ⅰ類報(bào)表。

圖4 自定義動(dòng)態(tài)報(bào)表生成流程圖

102,根據(jù)步驟101的Ⅰ類報(bào)表類型定義XML配置文件。

第一步,在計(jì)算機(jī)硬盤指定路徑下新建以該報(bào)表名字命名的文件夾“熱軋鋼帶大牌”。

第二步,在“熱軋鋼帶大牌”文件夾下新建一個(gè)Excel文件,命名為“熱軋鋼帶大牌.xls”。內(nèi)容包含品名、標(biāo)準(zhǔn)、級別、重量、規(guī)格、鋼種、檢驗(yàn)員、日期班別、二維條碼控件等。建立后的模板文件如圖3所示,其中的文字描述最好與生產(chǎn)實(shí)際的相似,能讓人一目了然,而二維條碼控件則是Excel自帶的ActiveX控件,值指向單元格A7。

圖5 XML配置文件示例圖

第三步,在“熱軋鋼帶大牌”文件夾下新建一個(gè)XML文件,命名為“Declare.xml”。建立后的配置文件如圖5所示,包含報(bào)表宏觀定義、報(bào)表頭定義、報(bào)表體定義、報(bào)表尾定義4個(gè)定義部分,其中報(bào)表宏觀定義中定義了報(bào)表的類型為Ⅰ,報(bào)表的處理方式為直接打印,打印機(jī)名為K28,打印數(shù)量為2。由于默認(rèn)的數(shù)據(jù)來源于數(shù)據(jù)庫,所以本示例省略了數(shù)據(jù)源方面的定義。由于此報(bào)表可以看作Ⅱ類型的特殊形式,即只有報(bào)表頭的報(bào)表,因而也只對報(bào)表頭進(jìn)行了定義,如圖5所示?!癋S PRINTMATERIAL”這一數(shù)據(jù)字段對應(yīng)圖3所示的“熱軋鋼帶大牌”所在單元格,即行索引為2,列索引為B,其他字段定義依此類推。

103,通過業(yè)務(wù)層解析 XML配置文件,得到“Declare.xml”配置文件信息,同時(shí)“熱軋鋼帶大牌.xls”模板文件加載至計(jì)算機(jī)內(nèi)存中,以形成普通報(bào)表。

104,根據(jù)步驟103得到的配置文件信息,從數(shù)據(jù)層獲取原始數(shù)據(jù)并加工成報(bào)表數(shù)據(jù)。本步驟中,系統(tǒng)根據(jù)“Declare.xml”配置文件首先從數(shù)據(jù)庫中找到FS_PRINTMATERIAL、FS_STANDARD等原始數(shù)據(jù)并進(jìn)行處理,如是否求和、求平均值、小數(shù)位數(shù)處理等,本示例中的IsSum=“0”表示不需要進(jìn)行求和計(jì)算。實(shí)際操作中,大多數(shù)公式可以在Excel模板中直接進(jìn)行定義,并不需要報(bào)表系統(tǒng)解析公式后再單獨(dú)處理,“Declare.xml”配置文件中的公式定義功能是在情況比較復(fù)雜、Excel模板很難定義的情況下才使用。

105,將步驟104加工的報(bào)表數(shù)據(jù)與步驟103加載的展現(xiàn)層即Excel模板文件結(jié)合后,在系統(tǒng)內(nèi)存中生成報(bào)表。本步驟中,報(bào)表系統(tǒng)會將步驟104中處理好的報(bào)表數(shù)據(jù)依據(jù)配置文件定義信息填充到Excel模板對應(yīng)位置,如“品名”對應(yīng)的數(shù)據(jù)源FS_PRINTMATERIAL輸出到第二行的B列,生成后的報(bào)表駐留在內(nèi)存當(dāng)中。

106,根據(jù)步驟103得到的配置文件信息對步驟105生成的報(bào)表進(jìn)行處置后,打開或下載保存或直接打印出報(bào)表。本步驟中,報(bào)表系統(tǒng)會根據(jù)“Declare.xml”配置文件的配置信息處置駐留在內(nèi)存中的報(bào)表,處置完成后將Excel報(bào)表模板、XML定義文件、報(bào)表對象注銷,釋放內(nèi)存資源,在本示例中,將調(diào)用名為“K28”的打印機(jī)進(jìn)行打印,打印數(shù)量為2。

3 結(jié)束語

本系統(tǒng)能夠滿足多變的報(bào)表需求,既可應(yīng)用于C/S系統(tǒng),也可應(yīng)用于B/S系統(tǒng)。報(bào)表制作簡單,使用靈活,數(shù)據(jù)層、業(yè)務(wù)層、定義層及展現(xiàn)層的相互分離,使得用戶只要會使用Excel就可自己調(diào)整和定義,實(shí)現(xiàn)所見即所得。同時(shí)能使報(bào)表系統(tǒng)的實(shí)施和維護(hù)成本大幅降低,通過簡單的配置即可自定義動(dòng)態(tài)生成報(bào)表,服務(wù)端的部署可以在Linux或者Unix等系統(tǒng)上完成,具有極高的靈活性、易用性和實(shí)用性。

[1] 凌宇.基于XML的動(dòng)態(tài)報(bào)表實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004(增刊1):607-609.

[2] 文靜華,張梅,田建強(qiáng).基于Excel的企業(yè)通用動(dòng)態(tài)報(bào)表生成工具的設(shè)計(jì)[J].計(jì)算機(jī)工程,2005(4):221-223.

猜你喜歡
配置文件報(bào)表示例
大還是小
提示用戶配置文件錯(cuò)誤 這樣解決
搭建簡單的Kubernetes集群
2019年高考上海卷作文示例
互不干涉混用Chromium Edge
常見單位符號大小寫混淆示例
山東冶金(2019年5期)2019-11-16 09:09:22
LabWindows/CVI中Excel報(bào)表技術(shù)研究
忘記ESXi主機(jī)root密碼怎么辦
“全等三角形”錯(cuò)解示例
從三大報(bào)表讀懂養(yǎng)豬人的成績單
镇康县| 吴旗县| 六安市| 宜昌市| 衢州市| 隆化县| 防城港市| 安泽县| 九寨沟县| 金阳县| 西城区| 锡林郭勒盟| 大同县| 龙江县| 贵溪市| 剑河县| 宁河县| 张家川| 论坛| 平陆县| 阿巴嘎旗| 大悟县| 娄底市| 株洲市| 塔河县| 航空| 沾益县| 东至县| 仙居县| 前郭尔| 襄城县| 武安市| 中山市| 洪泽县| 唐海县| 上饶县| 贡觉县| 寿阳县| 穆棱市| 资溪县| 湖南省|