林弋程
針對MIS系統(tǒng)的批量數(shù)據(jù)錄入問題,提出一種具有通用性的自動化系統(tǒng),可廣泛運用于多種MIS系統(tǒng),實現(xiàn)高效、零差錯批量數(shù)據(jù)錄入。
【關鍵詞】MIS 批量數(shù)據(jù)錄入 自動化 通用
管理信息系統(tǒng)(Management Information System, MIS)在應用的過程中常常涉及批量數(shù)據(jù)錄入工作。例如,只有完成基礎數(shù)據(jù)錄入之后,MIS系統(tǒng)才能投入使用。在實際工作中,人們常常采用手工輸入的方式進行數(shù)據(jù)錄入。但是,這種方式存在效率低、易出差錯等缺點。隨著數(shù)據(jù)規(guī)模變大,這些缺點就會越發(fā)嚴重地顯現(xiàn)出來。因此,尋找一種用以替代手工錄入方式的自動化數(shù)據(jù)錄入技術方案,對于實際工作具有十分重要的意義。
當然,如果MIS系統(tǒng)提供數(shù)據(jù)導入功能或數(shù)據(jù)錄入接口,錄入原始電子數(shù)據(jù)只是一項簡單的日常工作,無需贅言;即便沒有這些便捷途徑,只要原始數(shù)據(jù)和它們在MIS系統(tǒng)中的存儲存在能夠確定的對應關系,也只需要編制數(shù)據(jù)轉換(必要時)和寫入程序就能實現(xiàn)高效、零差錯數(shù)據(jù)錄入;這些錄入方式有著一個重要的相同特征:繞開錄入界面,把待錄入數(shù)據(jù)直接寫入存儲位置。然而,如果原始電子數(shù)據(jù)與目標存儲之間的對應關系無法確定,例如,對于MIS系統(tǒng)用戶,由于不清楚加密算法,初始密碼與其在MIS系統(tǒng)中存儲的加密結果之間的對應關系通常是無法得知的,實現(xiàn)原始電子數(shù)據(jù)錄入自動化則需要做進一步的研究。
1 問題描述
前述雖已簡要提及所要研究的問題,但為明晰起見,問題詳細描述如下:由于無法確定原始數(shù)據(jù)與目標存儲之間的對應關系,因此,直接寫入存儲位置的方法是不可行的,必須通過錄入界面才能完成數(shù)據(jù)錄入。給定包含待錄入信息的原始電子數(shù)據(jù),在必須通過錄入界面錄入數(shù)據(jù)的條件下,考慮如何實現(xiàn)數(shù)據(jù)錄入自動化。此外,針對MIS系統(tǒng)批量數(shù)據(jù)錄入的自動化軟件系統(tǒng)應具有通用性(為簡化描述起見,以下將其簡稱為通用系統(tǒng)),以適應不同MIS系統(tǒng)的批量數(shù)據(jù)錄入的需要。
2 通用系統(tǒng)的設計思路
通過錄入界面錄入數(shù)據(jù),通常是采用諸如鍵盤和鼠標等輸入設備進行數(shù)據(jù)錄入的。但是,這并不意味著只能用手工的方式來完成錄入工作。實際上,利用某種具有發(fā)出鍵盤和鼠標等設備的輸入指令的程序設計語言,就可以實現(xiàn)數(shù)據(jù)錄入自動化。目前來說,AutoIt和 AutoHotkey是Windows平臺下具備此項功能且較為流行的兩款開源自動化腳本語言。本文選用AutoHotKey來說明如何借助自動化腳本語言設計出前述通用系統(tǒng)。首先,在AutoHotKey程序中,可以向一個或多個窗口發(fā)送鍵盤按鍵和鼠標點擊操作,效果上等同于手動操作。其二,可以在AutoHotKey程序中啟動運行指定的程序,如Run notepad.exe表示啟動運行記事本程序。借助該功能,可以在程序中啟動MIS系統(tǒng),待啟動完畢后進行數(shù)據(jù)錄入。其三,AutoHotKey支持對文件、目錄和磁盤的管理操作。借助該功能,可以打開原始數(shù)據(jù)文件,讀取數(shù)據(jù)進行錄入。其四,AutoHotKey可以創(chuàng)建圖形化操作界面,提高界面的用戶友好程度。其五,AutoHotKey提供打包工具,使得程序用戶無需安裝AutoHotKey也能運行用AutoHotKey編寫的腳本程序。
通用系統(tǒng)可以設計成如下算法完成對應關系的建立:
(1)讓用戶打開原始數(shù)據(jù)文件和運行MIS系統(tǒng),通用系統(tǒng)記錄完整路徑;
(2)根據(jù)原始數(shù)據(jù)文件格式解析數(shù)據(jù),得到一條條數(shù)據(jù)記錄;
(3)呈現(xiàn)第一條數(shù)據(jù)記錄;
(4)fieldID=1;
(5)設置數(shù)據(jù)記錄第fieldID個字段為當前字段;
(6)在數(shù)據(jù)轉換框中輸入轉換公式,結果作為當前輸入內容;
(7)讓用戶在MIS系統(tǒng)輸入界面上找到對應輸入項,通用系統(tǒng)把當前輸入內容復制其中,供用戶查看;通用系統(tǒng)記錄用戶操作步驟;
(8)若正確,轉到下一步,否則轉第(6)步;
(9)若第fieldID字段非最后字段,則fieldID=fieldID+1,并轉第(5)步;
(10)結束。
以上算法涉及到解析原始數(shù)據(jù)文件的問題。原始數(shù)據(jù)文件的格式有多種形式,如Excel表格,Access數(shù)據(jù)庫文件和CVS文本文件等,并且具體是哪一種文件格式事先無法得知,甚至是通用系統(tǒng)原來不支持的文件格式。雖然AutoHotKey不支持面向對象技術,但是我們可以在如C++等其它程序設計語言中通過選用恰當?shù)脑O計模式來解決上述文件格式解析的問題,然后在AutoHotKey腳本程序中調用這一文件解析功能。在考慮選用設計模式時,可以選用如下方案:用XML文件記錄不同文件格式的解析規(guī)則,通過添加新的解析規(guī)則就可以做到支持新的文件格式;采用工廠模式從XML中讀取文件格式解析規(guī)則,動態(tài)創(chuàng)建解析器對象。
3 結束語
采用文中提出的通用系統(tǒng)可以實現(xiàn)高效且零差錯的批量數(shù)據(jù)錄入自動化,并且適用于不同的MIS系統(tǒng)。下面以酒店管理系統(tǒng)批量數(shù)據(jù)錄入為例,說明該通用系統(tǒng)的實際應用效果。在筆者學校,以Fidelio作為酒店管理系統(tǒng)實操軟件開設《酒店信息管理》課程,每期修讀學生都多達數(shù)百人,最多時超過700人。開課前,任課教師需要為每名學生創(chuàng)建登錄賬戶和收銀賬戶。創(chuàng)建一個登錄賬戶和收銀賬戶,涉及到的數(shù)據(jù)項多達12項,且分布在若干個不同界面上。若采用人工輸入,工作量非常大,通常需要數(shù)十小時時間才能完成。運用上述通用系統(tǒng)之后,這一工作不到十分鐘既能完成,極大地提高了效率,任課老師繁重的錄入工作也因此得到了解放。
參考文獻
[1]安世虎.提高MIS應用軟件數(shù)據(jù)錄入速度的設計策略[J].計算機系統(tǒng)應用,1999, 8(07):65-66.
[2]https://www.autohotkey.com ErichGamma...[etal.Design patterns:elements of reusable object-oriented software-英文版[M].北京:機械工業(yè)出版社,2002.
作者單位
廣西桂林市桂林旅游學院 廣西壯族自治區(qū)桂林市 541004