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