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

?

可定制報(bào)表系統(tǒng)的設(shè)計(jì)與應(yīng)用

2015-01-26 15:54潘永才劉海龍
物聯(lián)網(wǎng)技術(shù) 2015年1期
關(guān)鍵詞:邏輯設(shè)計(jì)報(bào)表管理系統(tǒng)

潘永才+劉海龍

摘 要:針對(duì)信息管理系統(tǒng)中報(bào)表系統(tǒng)設(shè)計(jì)靈活性差、維護(hù)困難的問(wèn)題,提出一種可定制報(bào)表系統(tǒng)的設(shè)計(jì)方法。該方法將報(bào)表設(shè)計(jì)抽象為報(bào)表結(jié)構(gòu)和報(bào)表邏輯設(shè)計(jì),以數(shù)據(jù)的形式描述報(bào)表結(jié)構(gòu)和邏輯,客戶端通過(guò)對(duì)報(bào)表結(jié)構(gòu)和邏輯數(shù)據(jù)的解析實(shí)現(xiàn)報(bào)表功能。通過(guò)將報(bào)表設(shè)計(jì)數(shù)據(jù)化,可實(shí)現(xiàn)更加靈活高效的報(bào)表設(shè)計(jì),提高了系統(tǒng)開(kāi)發(fā)維護(hù)效率,能夠更好地適應(yīng)報(bào)表的多樣性和變化性。

關(guān)鍵詞:可定制;報(bào)表;管理系統(tǒng);邏輯設(shè)計(jì)

中圖分類號(hào):TP316 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A ? ? ? 文章編號(hào):2095-1302(2015)01-00-03

0 ?引 ?言

目前,企業(yè)信息化建設(shè)已是大勢(shì)所趨,而報(bào)表系統(tǒng)是信息管理系統(tǒng)中的重要組成部分。在傳統(tǒng)的報(bào)表系統(tǒng)中,報(bào)表的結(jié)構(gòu)、查詢條件、用戶交互、展示細(xì)節(jié)等信息都是以靜態(tài)的方式固化在系統(tǒng)代碼中,因此在系統(tǒng)開(kāi)發(fā)測(cè)試到實(shí)施部署的整個(gè)階段,因應(yīng)用環(huán)境變化等因素而必須調(diào)整報(bào)表設(shè)計(jì)時(shí),必須修改系統(tǒng)源代碼。這種報(bào)表設(shè)計(jì)方式靈活性差,開(kāi)發(fā)維護(hù)困難且不具備通用性和可移植性。

近年來(lái),針對(duì)如何靈活設(shè)計(jì)報(bào)表系統(tǒng)的問(wèn)題,涌現(xiàn)了很多研究和開(kāi)發(fā)成果。李廣等提出一種基于Silverlight技術(shù)的柔性生產(chǎn)報(bào)表系統(tǒng)的設(shè)計(jì)方法,給出了柔性生產(chǎn)報(bào)表系統(tǒng)架構(gòu)與實(shí)現(xiàn)方法,并在.NET平臺(tái)下設(shè)計(jì)由報(bào)表柔性編輯模塊、報(bào)表生成模塊和報(bào)表顯示模塊等組成的柔性生產(chǎn)報(bào)表系統(tǒng),較好地實(shí)現(xiàn)了報(bào)表的靈活設(shè)計(jì)[1]。盧笑天等著眼于查詢報(bào)表的可定制,設(shè)計(jì)了基于XML的可定制查詢報(bào)表系統(tǒng),并提供了與管理系統(tǒng)集成的生產(chǎn)報(bào)表的配置接口及解析報(bào)表的解析接口,較好地實(shí)現(xiàn)面向二次開(kāi)發(fā)人員的可配置查詢報(bào)表系統(tǒng)設(shè)計(jì)[2]。

上述研究成果的思想很好地解決了報(bào)表生成與展示的問(wèn)題,但局限于對(duì)查詢報(bào)表系統(tǒng)的研究和開(kāi)發(fā),不能很好地解決錄入系統(tǒng)中與用戶交互的復(fù)雜業(yè)務(wù)邏輯的設(shè)計(jì),因此迫切需要研究一種靈活的錄入報(bào)表系統(tǒng)的設(shè)計(jì)方法。

本文提出一種可定制報(bào)表系統(tǒng)的設(shè)計(jì)方法;給出了可定制報(bào)表系統(tǒng)架構(gòu)與實(shí)現(xiàn)方法,在.NET平臺(tái)下設(shè)計(jì)了由報(bào)表定制模塊、報(bào)表解析模塊等組成的可定制報(bào)表系統(tǒng)。

1 ?報(bào)表結(jié)構(gòu)與邏輯抽象

油田采油廠的生產(chǎn)管理報(bào)表系統(tǒng)包含大量生產(chǎn)投入和產(chǎn)出要素等基礎(chǔ)數(shù)據(jù)錄入和各類管理指標(biāo)查詢報(bào)表,大部分?jǐn)?shù)據(jù)經(jīng)手工錄入系統(tǒng)。錄入報(bào)表系統(tǒng)的作用在于將手工錄入操作規(guī)范化、自動(dòng)化,提高手工錄入效率,減少錄入數(shù)據(jù)出錯(cuò)率。

基礎(chǔ)數(shù)據(jù)錄入分為自動(dòng)生成、手工選擇和手工填寫三種情況。通過(guò)自動(dòng)生成和手工選擇的方式可將錄入系統(tǒng)的基礎(chǔ)數(shù)據(jù)規(guī)范化,方便對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步匯總處理;對(duì)于數(shù)字量數(shù)據(jù)通過(guò)手工錄入加一定的限定方法實(shí)現(xiàn)數(shù)據(jù)的有效性控制;備注等非匯總數(shù)據(jù)通過(guò)手工填寫。對(duì)自動(dòng)生成和手工選擇的操作的規(guī)范稱為報(bào)表的業(yè)務(wù)邏輯。

可定制報(bào)表系統(tǒng)的設(shè)計(jì)方法將報(bào)表拆分為報(bào)表結(jié)構(gòu)、報(bào)表數(shù)據(jù)、報(bào)表邏輯,報(bào)表設(shè)計(jì)則包含報(bào)表結(jié)構(gòu)設(shè)計(jì)和報(bào)表邏輯設(shè)計(jì)。報(bào)表結(jié)構(gòu)與邏輯均以數(shù)據(jù)的形式描述并保存于數(shù)據(jù)庫(kù)對(duì)應(yīng)數(shù)據(jù)表中,報(bào)表結(jié)構(gòu)數(shù)據(jù)與邏輯數(shù)據(jù)相互對(duì)立又相互關(guān)聯(lián),共同決定了報(bào)表的顯示形式和可執(zhí)行的操作。

1.1 ?報(bào)表結(jié)構(gòu)描述

報(bào)表結(jié)構(gòu)包括構(gòu)成報(bào)表的所有數(shù)據(jù)列的數(shù)據(jù)源字段名、列標(biāo)題文本、數(shù)據(jù)列格式、寬度、對(duì)齊方式等基本信息。數(shù)據(jù)列的字段名與該報(bào)表在數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)表對(duì)應(yīng)字段一致;列標(biāo)題文本具有一定的可擴(kuò)展性以適應(yīng)報(bào)表多級(jí)列標(biāo)題的需要。

對(duì)完整的報(bào)表結(jié)構(gòu)數(shù)據(jù)進(jìn)行解析并綁定報(bào)表數(shù)據(jù)內(nèi)容即可顯示完整的查詢報(bào)表,而完成錄入報(bào)表設(shè)計(jì)則需要在此基礎(chǔ)上增加業(yè)務(wù)邏輯的設(shè)計(jì)與解析。

1.2 ?報(bào)表業(yè)務(wù)邏輯抽象

在一般條件下,報(bào)表數(shù)據(jù)之間的業(yè)務(wù)邏輯可描述為一個(gè)方法:

y = function (x)

其中,x、y為報(bào)表數(shù)據(jù)元素,x為源數(shù)據(jù)元素,y為目標(biāo)數(shù)據(jù)元素,function為根據(jù)源數(shù)據(jù)元素x生成目標(biāo)數(shù)據(jù)元素值并處理用戶交互的過(guò)程。

根據(jù)實(shí)際情況,業(yè)務(wù)邏輯有一下幾種形式:

y = text(x)。根據(jù)源數(shù)據(jù)元素x的值獲取唯一目標(biāo)數(shù)據(jù)元素y的值并綁定該值。

y = list(x)。根據(jù)源數(shù)據(jù)元素x的值獲取目標(biāo)數(shù)據(jù)元素y的取值列表,綁定該取值列表,用戶選擇后確定數(shù)據(jù)值。

x = query(x)。源數(shù)據(jù)元素與目標(biāo)數(shù)據(jù)元素相同,用于模糊查詢?cè)刂?,根?jù)用戶輸入的部分內(nèi)容查詢其可能的元素值。

x = round(x)。源數(shù)據(jù)元素與目標(biāo)數(shù)據(jù)元素相同,用于格式化數(shù)字類型數(shù)據(jù),限制數(shù)字小數(shù)位數(shù)。

x = limit(x)。源數(shù)據(jù)元素與目標(biāo)數(shù)據(jù)元素相同,用于格式化數(shù)字類型數(shù)據(jù),限制數(shù)字大小。

含有兩個(gè)及以上源數(shù)據(jù)元素的業(yè)務(wù)邏輯y = text (x1, x2,…)、y = list (x1, x2,…)等與處理方式與上述類似。源數(shù)據(jù)元素也可以是報(bào)表的基礎(chǔ)數(shù)據(jù)(用來(lái)唯一確定報(bào)表類型)或某一確定值。

1.3 ?報(bào)表業(yè)務(wù)邏輯的數(shù)據(jù)描述形式

報(bào)表業(yè)務(wù)邏輯可用類似結(jié)構(gòu)化查詢語(yǔ)言(SQL:Structured Query Language)的形式描述,利用其數(shù)據(jù)查詢語(yǔ)言(DQL:Data Query Language)的查詢功能處理報(bào)表數(shù)據(jù)間的邏輯關(guān)系。

常用的數(shù)據(jù)查詢語(yǔ)言語(yǔ)句如下:

SELECT resultField FROM table WHERE field = conditionValue;

將特定的SQL語(yǔ)句中的conditionValue以源數(shù)據(jù)元素x的值代替,其返回為目標(biāo)數(shù)據(jù)元素(y)的值或其列表。在業(yè)務(wù)邏輯SQL語(yǔ)句中,源數(shù)據(jù)元素x為自變量,將其以花括號(hào)環(huán)繞以方便解析。業(yè)務(wù)邏輯描述如下:

SELECT resultField [as y] FROM table WHERE field = {x};

其中,方括號(hào)部分為可選項(xiàng),將返回結(jié)果的字段名轉(zhuǎn)換為報(bào)表目標(biāo)數(shù)據(jù)元素的字段名。

配合SQL Aggregate、Scalar函數(shù),該數(shù)據(jù)描述形式可實(shí)現(xiàn)較豐富的業(yè)務(wù)邏輯。

2 ?可定制報(bào)表系統(tǒng)設(shè)計(jì)

本文在.NET平臺(tái)下用C#語(yǔ)言設(shè)計(jì)可定制報(bào)表系統(tǒng)。

如圖1所示為可定制報(bào)表系統(tǒng)架構(gòu)。其核心為報(bào)表解析模塊和報(bào)表定制模塊,而對(duì)報(bào)表進(jìn)行結(jié)構(gòu)與邏輯抽象則是報(bào)表定制和解析的核心。數(shù)據(jù)交互模塊完成客戶端與數(shù)據(jù)庫(kù)之間數(shù)據(jù)交互。報(bào)表解析模塊通過(guò)數(shù)據(jù)交互模塊獲取報(bào)表結(jié)構(gòu)與邏輯數(shù)據(jù)對(duì)報(bào)表進(jìn)行功能解析,完成報(bào)表系統(tǒng)與用戶交互的底層功能,為報(bào)表系統(tǒng)提供支持。報(bào)表定制模塊根據(jù)報(bào)表結(jié)構(gòu)與邏輯的描述方法完成報(bào)表的定制功能。

2.1 ?報(bào)表解析模塊

報(bào)表解析流程框圖如圖2所示。報(bào)表解析模塊從數(shù)據(jù)庫(kù)中的報(bào)表結(jié)構(gòu)表和報(bào)表邏輯表中讀取指定報(bào)表的結(jié)構(gòu)數(shù)據(jù)和邏輯數(shù)據(jù),進(jìn)行結(jié)構(gòu)解析和邏輯解析,生成報(bào)表結(jié)構(gòu),完成邏輯解析的初始化,等待響應(yīng)用戶交互。

圖1 ?可定制報(bào)表系統(tǒng)架構(gòu)

圖2 ?報(bào)表解析流程框圖

結(jié)構(gòu)解析過(guò)程為:根據(jù)結(jié)構(gòu)數(shù)據(jù)生成報(bào)表的數(shù)據(jù)列,設(shè)置列標(biāo)題、列字段、列寬、可讀屬性等信息,對(duì)于有多級(jí)列標(biāo)題的報(bào)表,自動(dòng)檢測(cè)合并相應(yīng)的標(biāo)題單元格。

邏輯解析流程框圖如圖3所示,其具體過(guò)程為:對(duì)報(bào)表邏輯數(shù)據(jù)作簡(jiǎn)單處理后生成數(shù)據(jù)關(guān)系字典(邏輯字典),嘗試對(duì)報(bào)表邏輯數(shù)據(jù)進(jìn)行SQL生成與查詢,對(duì)于初始化過(guò)程中可以確定的報(bào)表數(shù)據(jù)保存在基礎(chǔ)數(shù)據(jù)字典中。對(duì)于用戶交互過(guò)程中的請(qǐng)求,處理程序首先搜索基礎(chǔ)數(shù)據(jù)字典,若存在其需要的數(shù)據(jù),則直接以該數(shù)據(jù)響應(yīng)用戶請(qǐng)求;若不存在,則從邏輯字典中讀取對(duì)應(yīng)邏輯數(shù)據(jù),生成SQL并以查詢結(jié)果響應(yīng)用戶請(qǐng)求。

圖3 ?邏輯解析流程框圖

SQL生成與查詢是將邏輯數(shù)據(jù)中的變量賦值為當(dāng)前操作數(shù)據(jù)記錄中的對(duì)應(yīng)數(shù)據(jù)元素的值或用戶基本信息的值,從而將邏輯數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)SQL語(yǔ)句,執(zhí)行該語(yǔ)句并獲取查詢結(jié)果。

報(bào)表解析模塊對(duì)DataGridView控件進(jìn)行自定義,使其能夠根據(jù)報(bào)表結(jié)構(gòu)數(shù)據(jù)自動(dòng)生成報(bào)表結(jié)構(gòu),支持多級(jí)行列標(biāo)題,支持報(bào)表行列轉(zhuǎn)換;通過(guò)對(duì)CellEnter、CellLeave、CellValueChanged、CellEndEdit、KeyPreview、Scroll等事件的處理對(duì)用戶操作做出適當(dāng)響應(yīng);增加對(duì)報(bào)表增、刪、改、查的自動(dòng)執(zhí)行過(guò)程。

2.2 ?報(bào)表定制模塊

報(bào)表定制模塊的作用是以圖形界面的形式靈活方便的對(duì)報(bào)表結(jié)構(gòu)和邏輯進(jìn)行定制。報(bào)表系統(tǒng)開(kāi)發(fā)者可以從一張空白報(bào)表模板表上完整的定制報(bào)表結(jié)構(gòu)和邏輯細(xì)節(jié),也可以將Excel報(bào)表框架或數(shù)據(jù)庫(kù)中已定制的類似報(bào)表導(dǎo)入空白模板表,進(jìn)行報(bào)表結(jié)構(gòu)和邏輯細(xì)節(jié)完善。報(bào)表結(jié)構(gòu)和邏輯設(shè)計(jì)完成后,生成的結(jié)構(gòu)和邏輯數(shù)據(jù)將分別保存至數(shù)據(jù)庫(kù)的報(bào)表結(jié)構(gòu)表和報(bào)表邏輯表中。

對(duì)報(bào)表結(jié)構(gòu)和邏輯抽象成數(shù)據(jù)形式描述后,可以靈活地對(duì)報(bào)表進(jìn)行個(gè)性化的定制。例如:對(duì)于同一報(bào)表不同類型的用戶可以獨(dú)立定制,使其顯示形式和業(yè)務(wù)邏輯更符合用戶個(gè)性化的需求,而對(duì)于其中相同的部分,不用重復(fù)設(shè)計(jì)。

2.3 ?報(bào)表系統(tǒng)設(shè)計(jì)

報(bào)表系統(tǒng)分為錄入系統(tǒng)和查詢系統(tǒng),通過(guò)報(bào)表導(dǎo)航模塊和報(bào)表解析模塊等模塊實(shí)現(xiàn)系統(tǒng)功能。用戶通過(guò)報(bào)表導(dǎo)航模塊選取某報(bào)表后,系統(tǒng)調(diào)用報(bào)表解析模塊并初始化用戶基礎(chǔ)數(shù)據(jù),通過(guò)報(bào)表解析模塊實(shí)現(xiàn)用戶交互操作。

根據(jù)報(bào)表解析模塊中的報(bào)表結(jié)構(gòu)等相關(guān)信息,可實(shí)現(xiàn)錄入報(bào)表Excel導(dǎo)入與糾錯(cuò)的功能和各類報(bào)表數(shù)據(jù)導(dǎo)出至Excel、PDF等文件的功能,并支持報(bào)表批量導(dǎo)出。

2.4 ?報(bào)表定制系統(tǒng)設(shè)計(jì)

報(bào)表定制系統(tǒng)通過(guò)報(bào)表定制模塊定制報(bào)表并通過(guò)報(bào)表解析模塊測(cè)試定制報(bào)表的實(shí)現(xiàn)效果。設(shè)計(jì)者可循環(huán)對(duì)報(bào)表設(shè)計(jì)進(jìn)行修改和測(cè)試,直到定制報(bào)表滿足設(shè)計(jì)要求。整個(gè)報(bào)表系統(tǒng)設(shè)計(jì)完成投入使用后,若因使用單位組織調(diào)整、應(yīng)用環(huán)境變化等情況必須對(duì)報(bào)表系統(tǒng)做出調(diào)整時(shí),更新數(shù)據(jù)庫(kù)中的結(jié)構(gòu)和邏輯模板表即可實(shí)現(xiàn),無(wú)須對(duì)已安裝的客戶端程序進(jìn)行更新,因而系統(tǒng)的開(kāi)發(fā)維護(hù)更新更為靈活高效。

3 ?結(jié) ?語(yǔ)

本文提出的可定制錄入報(bào)表系統(tǒng)的設(shè)計(jì)方法,將報(bào)表設(shè)計(jì)抽象為報(bào)表結(jié)構(gòu)與邏輯設(shè)計(jì),將報(bào)表的結(jié)構(gòu)數(shù)據(jù)和邏輯數(shù)據(jù)保存在數(shù)據(jù)庫(kù)對(duì)應(yīng)的數(shù)據(jù)表中,可實(shí)現(xiàn)更加簡(jiǎn)單高效的錄入報(bào)表設(shè)計(jì),更加靈活精細(xì)的報(bào)表定制,增強(qiáng)了數(shù)據(jù)的復(fù)用性,提高了系統(tǒng)開(kāi)發(fā)維護(hù)的效率,能夠更好地適應(yīng)生產(chǎn)過(guò)程中報(bào)表系統(tǒng)的多樣性和變化性。應(yīng)用該方法設(shè)計(jì)的報(bào)表系統(tǒng)已成功應(yīng)用于國(guó)內(nèi)某石化企業(yè)的生產(chǎn)管理信息系統(tǒng)中,取得了良好的應(yīng)用效果。

參考文獻(xiàn)

[1]李廣,王建林,趙利強(qiáng),等.基于Silverlight的柔性生產(chǎn)報(bào)表系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013(7):2595-2598.

[2]盧笑天,唐慧佳.基于XML的可定制查詢報(bào)表系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2014(5):1847-1852.

[3]許南山,孫風(fēng)平.基于XML的可復(fù)用報(bào)表生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2006,27(3):463-465..

[4]巫喬順,彭海波,李杰.一種自定義動(dòng)態(tài)報(bào)表系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].機(jī)械設(shè)計(jì)與制造工程,2013(1):80-82.

[5]宋曉宇,劉蔚然,劉天波.基于組件的自定義報(bào)表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2008(11):2963-2966.

[6]霍志華,王建林,薛堯予.基于工作流和XML的生產(chǎn)報(bào)表系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(16):4249-4251.

猜你喜歡
邏輯設(shè)計(jì)報(bào)表管理系統(tǒng)
基于James的院內(nèi)郵件管理系統(tǒng)的實(shí)現(xiàn)
LabWindows/CVI中Excel報(bào)表技術(shù)研究
基于LED聯(lián)動(dòng)顯示的違停管理系統(tǒng)
火電機(jī)組公用電泵系統(tǒng)介紹及邏輯設(shè)計(jì)
從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
海盾壓載水管理系統(tǒng)
基于RFID的倉(cāng)儲(chǔ)管理系統(tǒng)實(shí)現(xiàn)
月度報(bào)表
月度報(bào)表
天柱县| 黄浦区| 丰台区| 铅山县| 原平市| 泌阳县| 屏东市| 垦利县| 永仁县| 永新县| 县级市| 伊金霍洛旗| 武胜县| 沭阳县| 虎林市| 新野县| 江山市| 太仓市| SHOW| 军事| 华坪县| 龙里县| 桓台县| 扎兰屯市| 高碑店市| 塔城市| 刚察县| 乡城县| 绍兴县| 黑水县| 宝坻区| 永康市| 定安县| 华池县| 定南县| 平昌县| 集贤县| 全南县| 垦利县| 灵石县| 吉木萨尔县|