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