楊振東,何 宏,劉光霆
(后勤工程學院 基礎部,重慶 401311)
在管理信息系統(tǒng)(MIS)中,經(jīng)常涉及到對一些基本信息的管理。為了有效地組織、管理這些信息,開發(fā)者往往通過數(shù)據(jù)編碼來確保信息的檢索、分類、統(tǒng)計和便于控制,以提高信息的處理效率和利用價值[1]。編碼設計及其管理是信息系統(tǒng)中不可缺少的重要組成部分。在實際工作中,經(jīng)常遇到一些數(shù)據(jù)之間具有從屬或上下級關系的情況,例如機構編制、物資分類信息等都具有明顯的上下級和從屬關系。這類數(shù)據(jù)的編碼就是一種層次編碼。相比較傳統(tǒng)的基于C/S的應用系統(tǒng),基于B/S的Web應用系統(tǒng)靈活、易維護、成本低、使用方便、容易被用戶接受,已成為企業(yè)應用的首選[2]。本文以一種典型的層次編碼為例,設計并實現(xiàn)了一個基于Web的簡潔美觀、功能強大的單位編碼幫助模塊。該模塊界面如圖1所示。
如圖1所示界面,左邊顯示上級單位的編碼和名稱,并用分隔符分開,右邊顯示左邊單位的直供單位或下級單位的編碼和名稱。下部是 “返回上級”、“下級單位”、“確定”、“取消”按鈕。選中左邊某單位,然后單擊“下級單位”按鈕,界面顯示如圖2所示。
左邊自動顯示所選單位的下級單位,右邊則是左邊默認選中單位的下級單位,這樣逐層展示每層的單位編碼和名稱,層次結構清晰,便于用戶查找。
圖1 單位編碼幫助模塊一
用戶在操作某張頁面時,可能多個地方需調用幫助模塊,如果每次都提交后臺處理,則在服務器上的程序處理頁面并返回數(shù)據(jù)期間,用戶只能等待。這樣的Web應用程序因用戶得不到立即的反應,操作習慣和思路都會在每一次提交-等待中被打斷,交互性比較差,達不到桌面應用程序的效果。因而設計時主要考慮兩個問題:是利用Ajax技術異步調用數(shù)據(jù),還是直接把數(shù)據(jù)下載到客戶端進行處理;如何按層次展示數(shù)據(jù)。Ajax使用XMLHttpRequest對象與Web服務器進行異步數(shù)據(jù)交換[3]。但當數(shù)據(jù)量比較大時,異步獲取數(shù)據(jù)需較長的等待時間,因此可以把數(shù)據(jù)一次性下載到客戶端再進行分層處理。
圖2 單位編碼幫助模塊二
首先,在數(shù)據(jù)庫中建一個Dwxx表,用dwbm和dwmc兩個字段對應存儲單位編碼與單位名稱,以Java平臺為例,首先可以新建一個POJO類Dwxx:
然后,定義一個DwxxService類來組裝數(shù)據(jù),以ArrayList的形式返回客戶端進行處理:
客戶端處理代碼封裝成模塊且置入主界面 (如index.htm)中。用戶登錄系統(tǒng)進入主界面后自動下載單位編碼并生成幫助系統(tǒng)隱藏在客戶端,載入其他需調用單位編碼幫助功能的頁面時就不必重復去后臺下載單位編碼,而是把已生成的模塊由隱藏變?yōu)榭梢?,這樣大大提高層次編碼的處理速度。代碼以通用的JavaScirpt代碼為主,再輔以少量服務器端腳本。核心代碼如下:
參照以上設計思路,可以實現(xiàn)如圖3所示的單位編碼維護模塊。由于篇幅所限,就不再給出處理代碼。
編碼處理是構建優(yōu)秀、完善的管理信息系統(tǒng)的重要功能,其效率的高低直接關系到整個系統(tǒng)的性能。通過以上設計,完成了一個高效的層次編碼處理模塊。該模塊結構簡單,稍做修改就可以在.NET平臺下實現(xiàn),相對于大部分系統(tǒng)只列出一個層次編碼的下拉框來說,更符合用戶使用習慣,突出特點是對大數(shù)據(jù)量層次編碼的處理也非常迅速,目前已在多個大型管理信息系統(tǒng)中采用,受到用戶一致好評。此外,本文所提出的開發(fā)思路對處理其他各種復雜的層次編碼也起著良好的借鑒作用,完全可以運用于供貨商編碼、地區(qū)編碼、油品編碼等處理。
圖3 單位編碼維護模塊
[1]康業(yè)娜,許勇,魏士偉.物流信息系統(tǒng)編碼模型研究[J].微計算機信息,2007,36(2):59-60.
[2]郭曉峰,姚世軍,尹祖?zhèn)?基于.NET的Web應用框架的設計與應用[J].計算機工程與設計,2008,29(2):454-455.
[3]季強,田薇,陳遠.基于 Ajax技術的 WebOS系統(tǒng) NixOS的構建[J].計算機工程與設計,2008,29(5):1198-1199.