專利名稱:X86平臺(tái)稅源監(jiān)控系統(tǒng)及其采集商業(yè)銷售數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及監(jiān)控技術(shù)領(lǐng)域,特別涉及一種X86平臺(tái)稅源監(jiān)控系統(tǒng)及其采集商業(yè)銷售數(shù)據(jù)的方法。
背景技術(shù):
我國(guó)稅收的主要政策是以票控稅。隨著“金稅工程”的實(shí)施,對(duì)增值稅的監(jiān)控逐漸完善。但商業(yè)零售業(yè)的稅收監(jiān)控始終是一個(gè)難點(diǎn)。由于歷史和文化的原因,普通消費(fèi)者在發(fā)生消費(fèi)行為時(shí),沒(méi)有養(yǎng)成向商家主動(dòng)索要發(fā)票的習(xí)慣,也很難強(qiáng)迫商場(chǎng)主動(dòng)為消費(fèi)者開(kāi)具發(fā)票,因此商業(yè)企業(yè)的稅收,完全靠商家自覺(jué)上繳,稅務(wù)局很難查證。商業(yè)零售業(yè)的稅收監(jiān)控是目前國(guó)家稅收監(jiān)督的一個(gè)主要方向。
從2003年6月開(kāi)始,稅控收款機(jī)國(guó)家標(biāo)準(zhǔn)GB18240陸續(xù)發(fā)布。按照該標(biāo)準(zhǔn)的規(guī)定,在小的商業(yè)零售業(yè)、餐飲業(yè)、娛樂(lè)業(yè)等營(yíng)業(yè)場(chǎng)所,推廣使用稅控收款機(jī),對(duì)于已經(jīng)具有計(jì)算機(jī)等設(shè)備的企業(yè),推廣使用智能稅控器,由計(jì)算機(jī)和智能稅控器配合,共同完成稅控功能。
智能稅控器的推出,在一定程度上解決了具有計(jì)算機(jī)等設(shè)備的企業(yè)的開(kāi)票問(wèn)題,避免設(shè)備重復(fù)投資。但在大中型商業(yè)企業(yè)中使用智能稅控器,則存在一定的困難,主要原因如下1.企業(yè)規(guī)模一般較大,已經(jīng)建立了成熟的商業(yè)管理信息系統(tǒng),使用智能稅控器涉及到對(duì)原來(lái)的系統(tǒng)做改動(dòng),增加稅控實(shí)施的難度;2.商業(yè)管理信息系統(tǒng)的原始軟件開(kāi)發(fā)商不可能提供軟件源代碼,使智能稅控器具無(wú)法與商業(yè)管理信息系統(tǒng)對(duì)接;3.對(duì)每個(gè)顧客的每次消費(fèi),收款機(jī)都打印發(fā)票,增加了商家的運(yùn)營(yíng)成本。
參見(jiàn)圖1,在不改變商業(yè)企業(yè)原來(lái)的商業(yè)MIS系統(tǒng)(包括整體布線、硬件結(jié)構(gòu)、前后臺(tái)操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、應(yīng)用軟件、商業(yè)人員的操作習(xí)慣)的前提下,實(shí)施銷售數(shù)據(jù)的監(jiān)控,是稅控工作亟待解決的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述缺陷,提供一種在不改變商業(yè)企業(yè)原來(lái)的商業(yè)MIS系統(tǒng),包括整體布線、硬件結(jié)構(gòu)、前后臺(tái)操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、商業(yè)應(yīng)用模塊和商業(yè)人員的操作習(xí)慣的前提下,獲取銷售數(shù)據(jù)的X86平臺(tái)稅源監(jiān)控系統(tǒng),以及多種簡(jiǎn)便的采集商業(yè)銷售數(shù)據(jù)的方法。
為達(dá)到上述目的,本發(fā)明提供的X86平臺(tái)稅源監(jiān)控系統(tǒng),包括若干銷售終端和與其相連的打印機(jī),所述銷售終端包括操作系統(tǒng)模塊和商業(yè)應(yīng)用模塊,所述銷售終端通過(guò)商場(chǎng)以太網(wǎng)交換機(jī)HUB與管理終端和數(shù)據(jù)庫(kù)服務(wù)器分別相連,還包括一稅控服務(wù)器和與每個(gè)所述銷售終端分別相連的若干智能稅控器,所述稅控服務(wù)器與所述商場(chǎng)以太網(wǎng)交換機(jī)HUB相連;所述智能稅控器包括一以太網(wǎng)HUB模塊,該模塊具有兩個(gè)RJ45端口,所述智能稅控器通過(guò)其中一個(gè)RJ45端口和串口分別與所述銷售終端相連接,通過(guò)另一個(gè)RJ45端口與所述商場(chǎng)以太網(wǎng)交換機(jī)HUB相連接;所述銷售終端設(shè)有用于采集銷售數(shù)據(jù)的監(jiān)控模塊,所述監(jiān)控模塊接于所述商業(yè)應(yīng)用模塊和所述操作系統(tǒng)模塊之間,所述監(jiān)控模塊將采集的商業(yè)銷售數(shù)據(jù)經(jīng)所述串口傳輸至所述智能稅控器,所述智能稅控器接收所述稅控服務(wù)器的命令和查詢信息并將所述商業(yè)銷售數(shù)據(jù)傳輸至所述稅控服務(wù)器。
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng),其中所述操作系統(tǒng)模塊采用DOS操作系統(tǒng)或Windows操作系統(tǒng)。
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng),其中所述監(jiān)控模塊包括運(yùn)行于DOS操作系統(tǒng)或Windows操作系統(tǒng)下的初始化模塊、安裝模塊、加載模塊、數(shù)據(jù)截獲模塊、文件打開(kāi)模塊和文件關(guān)閉模塊。
為達(dá)到上述目的,本發(fā)明提供的采集商業(yè)銷售數(shù)據(jù)的方法,該方法在DOS操作系統(tǒng)下采集所述銷售終端的打印銷售數(shù)據(jù),該方法執(zhí)行的步驟是第一步 智能稅控器和監(jiān)控模塊初始化當(dāng)智能稅控器開(kāi)機(jī)時(shí),從所述稅控服務(wù)器獲取系統(tǒng)的配置參數(shù);第二步 銷售終端從智能稅控器獲取配置參數(shù),并決定監(jiān)控的數(shù)據(jù)源,以根據(jù)配置啟動(dòng)不同的加載模塊和在所述銷售終端中駐留不同的截獲模塊,若決定監(jiān)控的數(shù)據(jù)源為打印數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為打印數(shù)據(jù);第三步 采集打印數(shù)據(jù)A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)內(nèi)容,判斷監(jiān)控類型為直接地址監(jiān)控還是中斷監(jiān)控,若為中斷監(jiān)控,則執(zhí)行3),若為直接地址監(jiān)控,則執(zhí)行4);3)從初始化數(shù)據(jù)中獲取需要截獲的中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;執(zhí)行7)。
4)在DOS系統(tǒng)下,將運(yùn)行模式轉(zhuǎn)換為V86虛擬模式;5)修改V86權(quán)限表,原保護(hù)模式下運(yùn)行在3級(jí)的程序在訪問(wèn)初始化數(shù)據(jù)制定的IO地址時(shí)產(chǎn)生保護(hù)中斷{0EH};6)保存{0EH}中斷的原始地址,然后將截獲模塊入口地址保存在中斷描述符表中該中斷的入口地址處;7)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)數(shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述數(shù)據(jù)截獲模塊從所述智能稅控器獲取應(yīng)答數(shù)據(jù);3)所述數(shù)據(jù)截獲模塊根據(jù)應(yīng)答數(shù)據(jù)判斷原有數(shù)據(jù)是否需要修改,若不需要修改,則執(zhí)行5);4)若需要修改,則應(yīng)答數(shù)據(jù)中包括所述只能稅控器解析獲得的發(fā)票號(hào)碼和發(fā)票稅控碼,所述截獲模塊對(duì)原有的數(shù)據(jù)進(jìn)行修改,使其包括所述發(fā)票號(hào)碼和發(fā)票稅控碼;5)用要打印的數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束,轉(zhuǎn)到第四步;第四步 所述智能稅控器接收從監(jiān)控模塊截獲的數(shù)據(jù),并分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù);第五步 采集結(jié)束。
本發(fā)明提供的采集商業(yè)銷售數(shù)據(jù)的方法,在其中所述第二步中,若決定監(jiān)控的數(shù)據(jù)源為客顯數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為客顯數(shù)據(jù);其中所述第三步替換為第三步 采集客顯數(shù)據(jù)A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)內(nèi)容,判斷監(jiān)控類型為直接地址監(jiān)控還是中斷監(jiān)控,若為中斷監(jiān)控,則執(zhí)行3),若為直接地址監(jiān)控,則執(zhí)行4);
3)從初始化數(shù)據(jù)中獲取需要截獲的中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;執(zhí)行7)。
4)在DOS系統(tǒng)下,將運(yùn)行模式轉(zhuǎn)換為V86虛擬模式;5)修改V86權(quán)限表,原保護(hù)模式下運(yùn)行在3級(jí)的程序在訪問(wèn)初始化數(shù)據(jù)制定的IO地址時(shí)產(chǎn)生保護(hù)中斷{0EH};6)保存{0EH}中斷的原始地址,然后將截獲模塊入口地址保存在中斷描述符表中該中斷的入口地址處;7)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)數(shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)用原始的中斷數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束,轉(zhuǎn)到第四步。
本發(fā)明提供的采集商業(yè)銷售數(shù)據(jù)的方法,其中所述在其中所述第二步中,若決定監(jiān)控的數(shù)據(jù)源為文件數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為文件數(shù)據(jù);其中所述第三步替換為第三步 采集文件數(shù)據(jù)A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟1)加載模塊從智能稅控器讀取初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)確定需要監(jiān)控的文件名列表;3)查找被監(jiān)控的源文件,并將該文件的原文件發(fā)送給智能稅控器;4)截獲21H中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;5)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)文件打開(kāi)模塊,所述文件打開(kāi)模塊執(zhí)行以下步驟1)在被監(jiān)控程序打開(kāi)文件時(shí)激活打開(kāi)文件模塊,并調(diào)用原有的文件打開(kāi)中斷服務(wù)程序進(jìn)行文件打開(kāi);2)檢查文件名是否在初始化數(shù)據(jù)的監(jiān)控文件范圍內(nèi),如果是,則記錄該文件的文件句柄編號(hào);如果否,則打開(kāi)結(jié)束;C.啟動(dòng)文件數(shù)據(jù)截獲模塊,所述文件數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)對(duì)被監(jiān)控文件進(jìn)行操作時(shí)激活數(shù)據(jù)截獲模塊,并判斷當(dāng)前操作文件的句柄編號(hào)是否在監(jiān)控范圍內(nèi),如果是,則將文件操作數(shù)據(jù)發(fā)送給智能稅控器進(jìn)行解析;如果否,執(zhí)行原有的中斷服務(wù)程序;2)截獲結(jié)束,轉(zhuǎn)到第四步;D.啟動(dòng)文件關(guān)閉模塊,所述文件關(guān)閉模塊執(zhí)行如下步驟;1)被監(jiān)控對(duì)象關(guān)閉文件的時(shí)候激活關(guān)閉模塊,關(guān)閉模塊首先調(diào)用原有的文件關(guān)閉中斷服務(wù)程序,然后根據(jù)該文件的文件句柄編號(hào)判斷該文件是否在監(jiān)控的范圍內(nèi),若為是,則從監(jiān)控文件句柄列表中清除該句柄;2)關(guān)閉結(jié)束。
為達(dá)到上述目的,本發(fā)明提供的另一種采集商業(yè)銷售數(shù)據(jù)的方法,該方法在Windows操作系統(tǒng)下采集所述銷售終端的打印銷售數(shù)據(jù),該方法執(zhí)行的步驟是第一步 運(yùn)行安裝程序,輸入監(jiān)控的數(shù)據(jù)源和監(jiān)控方式,若輸入監(jiān)控的數(shù)據(jù)源為打印數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為打印數(shù)據(jù),執(zhí)行第二步;第二步 若監(jiān)控方式為鉤子函數(shù)方式,則將數(shù)據(jù)截獲模塊注冊(cè)到系統(tǒng)服務(wù),重新啟動(dòng)機(jī)器,轉(zhuǎn)到第三步;若監(jiān)控方式為驅(qū)動(dòng)程序方式,首先安裝打印機(jī)截獲驅(qū)動(dòng)程序,設(shè)置該驅(qū)動(dòng)程序在被監(jiān)管的驅(qū)動(dòng)之后第一個(gè)被加載,然后重新啟動(dòng)機(jī)器,轉(zhuǎn)到第五步;第三步 啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);
2)修改打印相關(guān)函數(shù)的地址,駐留截獲模塊;3)安裝模塊結(jié)束,重新啟動(dòng)機(jī)器,執(zhí)行第四步;第四步 安裝接收后,每次啟動(dòng)機(jī)器時(shí),操作系統(tǒng)自動(dòng)啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述數(shù)據(jù)截獲模塊從智能稅控器接收應(yīng)答數(shù)據(jù);3)所述數(shù)據(jù)截獲模塊根據(jù)所述應(yīng)答數(shù)據(jù)判斷原有數(shù)據(jù)是否需要修改,若不需要修改,則執(zhí)行5);4)若需要修改,從應(yīng)答數(shù)據(jù)中獲取發(fā)票號(hào)碼和發(fā)票稅控碼,插入到原有的打印數(shù)據(jù)中;5)用要打印的數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束,轉(zhuǎn)到第六步;第五步 采集打印數(shù)據(jù)A操作系統(tǒng)自動(dòng)啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)加載模塊從下層設(shè)備指針中獲取下層設(shè)備信息;2)根據(jù)該信息判斷下層設(shè)備是否為被監(jiān)控設(shè)備,若是,執(zhí)行下一步;若否,則停止加載;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述智能稅控器將解析結(jié)果產(chǎn)生的發(fā)票號(hào)碼或者發(fā)票稅控碼返回?cái)?shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊接收這些數(shù)據(jù);3)如果所述智能稅控器沒(méi)有返回?cái)?shù)據(jù),則執(zhí)行5);4)數(shù)據(jù)截獲模塊根據(jù)返回來(lái)的數(shù)據(jù)修改原有的打印序列,使其符合打印定長(zhǎng)發(fā)票、打印稅控碼的稅控要求;5)將數(shù)據(jù)發(fā)送給原設(shè)備驅(qū)動(dòng)程序,截獲結(jié)束,轉(zhuǎn)到第六步;第六步 智能稅控器接收從監(jiān)控模塊截獲的數(shù)據(jù),并分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù);第七步 采集結(jié)束。
本發(fā)明提供的另一種采集商業(yè)銷售數(shù)據(jù)的方法,在其中所述第一步中,若決定監(jiān)控的數(shù)據(jù)源為文件數(shù)據(jù),則第二步和第三步替換為第二步 將數(shù)據(jù)截獲模塊注冊(cè)到系統(tǒng)服務(wù),重新啟動(dòng)機(jī)器;第三步 以鉤子函數(shù)方式采集文件數(shù)據(jù)A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)操作系統(tǒng)啟動(dòng)時(shí)激活加載模塊,從智能稅控器讀取初始化數(shù)據(jù);2)從初始化數(shù)據(jù)中分離出被監(jiān)控的文件名列表;3)將被監(jiān)控文件的源文件發(fā)送給智能稅控器;4)通過(guò)修改文件操作函數(shù)指向監(jiān)控模塊的相應(yīng)函數(shù),截獲模塊駐留內(nèi)存;B啟動(dòng)打開(kāi)文件模塊,打開(kāi)文件模塊執(zhí)行以下步驟1)在被監(jiān)控對(duì)象打開(kāi)文件時(shí)激活打開(kāi)文件模塊,調(diào)用原有的文件打開(kāi)函數(shù),并獲得文件操作句柄編號(hào);2)根據(jù)打開(kāi)文件的文件名判斷該文件是否在監(jiān)控的范圍內(nèi),若是,則記錄該文件的文件句柄編號(hào);若否,則結(jié)束打開(kāi);
C啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟被監(jiān)控文件進(jìn)行操作時(shí)激活數(shù)據(jù)截獲模塊,并判斷當(dāng)前操作文件的句柄編號(hào)是否在監(jiān)控范圍內(nèi),如果是,則將文件操作數(shù)據(jù)發(fā)送給智能稅控器進(jìn)行解析;如果否,則直接調(diào)用原文件處理函數(shù);D啟動(dòng)關(guān)閉模塊,關(guān)閉模塊執(zhí)行以下步驟1)在被監(jiān)控對(duì)象打開(kāi)文件時(shí)激活關(guān)閉模塊,關(guān)閉模塊首先調(diào)用原有的文件關(guān)閉函數(shù),并獲得文件句柄編號(hào);2)根據(jù)關(guān)閉文件的文件句柄編號(hào)判斷該文件是否在監(jiān)控的范圍內(nèi),若為是,則從監(jiān)控文件句柄列表中清除該句柄;若為否,則結(jié)束關(guān)閉;3)數(shù)據(jù)截獲結(jié)束,轉(zhuǎn)到第六步。
本發(fā)明提供的另一種采集商業(yè)銷售數(shù)據(jù)的方法,在其中所述第一步中,若決定監(jiān)控的數(shù)據(jù)源為客顯數(shù)據(jù),則第二步和第三步替換為第二步執(zhí)行加載模塊,安裝客顯截獲驅(qū)動(dòng)程序,設(shè)置該驅(qū)動(dòng)程序在被監(jiān)管的驅(qū)動(dòng)之后第一個(gè)被加載,然后重新啟動(dòng)機(jī)器;第三步 以驅(qū)動(dòng)程序方式采集客顯數(shù)據(jù)A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)加載模塊從下層設(shè)備指針中獲取下層設(shè)備信息;2)根據(jù)該信息判斷下層設(shè)備是否為被監(jiān)控設(shè)備,若是,執(zhí)行下一步;若否,則停止加載;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)將數(shù)據(jù)發(fā)送給原設(shè)備驅(qū)動(dòng)程序,截獲結(jié)束,轉(zhuǎn)到第六步。
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)及其采集商業(yè)銷售數(shù)據(jù)的方法,其優(yōu)點(diǎn)是第一,由于借助于商業(yè)零售企業(yè)原有的硬件設(shè)備實(shí)施稅收控,不改變商業(yè)零售企業(yè)原有的信息系統(tǒng)的硬件投入,保護(hù)了商業(yè)零售企業(yè)原有的硬件設(shè)備投資。
第二,不改變?cè)械钠髽I(yè)軟件系統(tǒng),原來(lái)的軟件系統(tǒng)可以正常使用。這使商業(yè)零售企業(yè)不存在新建一個(gè)信息系統(tǒng)的中經(jīng)常需要的軟件測(cè)試,員工培訓(xùn),管理模式改變等問(wèn)題。這是保證稅源監(jiān)控系統(tǒng)可以順利實(shí)施的一個(gè)重要原因。
第三,新添加的硬件設(shè)備有限,而且不改變商業(yè)零售企業(yè)原有信息系統(tǒng)的邏輯和物理結(jié)構(gòu),不需要改動(dòng)商業(yè)零售企業(yè)的弱電系統(tǒng),沒(méi)有布線等施工工程,設(shè)備和施工投入少。
第四,稅源監(jiān)控系統(tǒng)在收款機(jī)不打印發(fā)票的情況下,監(jiān)控商業(yè)零售企業(yè)銷售,為企業(yè)節(jié)約了因打印發(fā)票帶來(lái)的額外運(yùn)行成本(300筆水單成本3元,100張卷筒發(fā)票單成本13元),有利于稅源監(jiān)控系統(tǒng)的推廣減輕企業(yè)的抵觸。特別適用于大型超市、麥當(dāng)勞、肯得雞這樣客戶量大每單銷售額小的企業(yè);第五,系統(tǒng)實(shí)施簡(jiǎn)便,在實(shí)施過(guò)程中,不影響原有商業(yè)信息系統(tǒng)的順利使用。
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行進(jìn)一步的描述。
圖1是已知技術(shù)X86平臺(tái)稅源監(jiān)控系統(tǒng)組成的商業(yè)MIS系統(tǒng)的方框圖;圖2是本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)的方框圖;圖3是本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)中銷售終端的結(jié)構(gòu)圖;圖4是DOS操作系統(tǒng)下智能稅控器的主流程圖;圖5是Windows操作系統(tǒng)下智能稅控器的主流程圖;圖6是DOS操作系統(tǒng)下監(jiān)控模塊初始化的流程圖;圖7是Windows操作系統(tǒng)下安裝程序的流程圖;圖8是DOS操作系統(tǒng)下采集打印數(shù)據(jù)時(shí)加載模塊的流程圖;圖9是DOS操作系統(tǒng)下采集打印數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;
圖10是DOS操作系統(tǒng)下采集客顯數(shù)據(jù)時(shí)加載模塊的流程圖;圖11是DOS操作系統(tǒng)下采集客顯數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;圖12是DOS操作系統(tǒng)下采集文件數(shù)據(jù)時(shí)加載模塊的流程圖;圖13是DOS操作系統(tǒng)下采集文件數(shù)據(jù)時(shí)文件打開(kāi)模塊的流程圖;圖14是DOS操作系統(tǒng)下采集文件數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;圖15是DOS操作系統(tǒng)下采集文件數(shù)據(jù)時(shí)關(guān)閉模塊的流程圖;圖16是Windows操作系統(tǒng)下鉤子函數(shù)方式采集打印數(shù)據(jù)時(shí)加載模塊的流程圖;圖17是Windows操作系統(tǒng)下鉤子函數(shù)方式采集打印數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;圖18是Windows操作系統(tǒng)下驅(qū)動(dòng)程序方式采集打印數(shù)據(jù)時(shí)加載模塊的流程圖;圖19是Windows操作系統(tǒng)下驅(qū)動(dòng)程序方式采集打印數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;圖20是Windows操作系統(tǒng)下驅(qū)動(dòng)程序方式采集客顯數(shù)據(jù)時(shí)加載模塊的流程圖;圖21是Windows操作系統(tǒng)下驅(qū)動(dòng)程序方式采集客顯數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;圖22是Windows操作系統(tǒng)下鉤子函數(shù)方式采集文件數(shù)據(jù)時(shí)加載模塊的流程圖;圖23是Windows操作系統(tǒng)下鉤子函數(shù)方式采集文件數(shù)據(jù)時(shí)文件打開(kāi)模塊的流程圖;圖24是Windows操作系統(tǒng)下鉤子函數(shù)方式采集文件數(shù)據(jù)時(shí)數(shù)據(jù)截獲模塊的流程圖;圖25是Windows操作系統(tǒng)下鉤子函數(shù)方式采集文件數(shù)據(jù)時(shí)關(guān)閉模塊的流程圖。
具體實(shí)施例方式
實(shí)現(xiàn)稅控的核心是獲取最真實(shí)的銷售數(shù)據(jù)。在商業(yè)MIS系統(tǒng)中,最真實(shí)的數(shù)據(jù)必然來(lái)自于銷售的終端(銷售終端)。因此,本發(fā)明是要在銷售終端中獲取真實(shí)的銷售數(shù)據(jù)。
消費(fèi)者購(gòu)買商品時(shí),通過(guò)銷售終端交費(fèi),由銷售終端打印購(gòu)物小票,交易數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸給服務(wù)器。管理人員通過(guò)管理端設(shè)置整個(gè)系統(tǒng),比如修改價(jià)格、設(shè)置折扣率等。
對(duì)于商業(yè)管理信息系統(tǒng)來(lái)說(shuō),收款機(jī)就是商場(chǎng)銷售信息的采集點(diǎn),其銷售金額絕不會(huì)做假,若能在不改變收款機(jī)前臺(tái)軟件模塊及商場(chǎng)整體硬件結(jié)構(gòu)的情況下,采集到收款機(jī)的銷售數(shù)據(jù),就可以準(zhǔn)確無(wú)誤地收集到商業(yè)零售企業(yè)的銷售數(shù)據(jù),實(shí)現(xiàn)對(duì)商業(yè)零售企業(yè)的銷售額監(jiān)控。
因此,整個(gè)系統(tǒng)的核心是在不改銷售終端前臺(tái)應(yīng)用軟件模塊及商場(chǎng)整體硬件結(jié)構(gòu)的前提下,獲取銷售數(shù)據(jù)。從而實(shí)現(xiàn)稅收監(jiān)控。其中,涉及銷售數(shù)據(jù)的途徑包括打印機(jī)銷售終端要打印的銷售小票,包含本次銷售的銷售數(shù)據(jù);顧客顯示器顧客顯示屏包含銷售數(shù)據(jù);銷售文件在商業(yè)MIS中,為預(yù)防網(wǎng)絡(luò)故障,銷售終端必然在本地保存銷售數(shù)據(jù),因此監(jiān)控銷售文件可以獲取銷售數(shù)據(jù)。
這里分述如下一、從打印數(shù)據(jù)中獲取銷售數(shù)據(jù)對(duì)于銷售終端而言,無(wú)論其采用何種操作系統(tǒng),商業(yè)應(yīng)用模塊的形式如何,其基本功能必然包括通過(guò)打印機(jī)打印銷售小票,而且小票上的銷售數(shù)據(jù)必然是最準(zhǔn)確的(顧客必然要通過(guò)該方法進(jìn)行監(jiān)督),因此獲取銷售數(shù)據(jù)的最佳途徑即獲取商業(yè)應(yīng)用模塊發(fā)往打印機(jī)的數(shù)據(jù),加以分析,得到銷售數(shù)據(jù)。
銷售終端多種多樣,打印機(jī)也多種多樣,打印機(jī)和銷售終端連接方法也各不相同,從接口方式上分,有通過(guò)串口和并口和銷售終端連接,從連接方法上看,有內(nèi)部連接(打印機(jī)和銷售終端設(shè)計(jì)為一體,不通過(guò)外接的串口或并口連接)和外部連接。因此,僅通過(guò)外部連接獲取打印機(jī)數(shù)據(jù)的方法都不完全可行。
但是,無(wú)論設(shè)備的物理連接方法如何變化,從系統(tǒng)的體系結(jié)構(gòu)和模塊結(jié)構(gòu)看,連接方法則比較單一1.體系結(jié)構(gòu)上看,外設(shè)(打印機(jī))總是存在于系統(tǒng)的某個(gè)IO口地址中;2.模塊結(jié)構(gòu)上看,商業(yè)應(yīng)用模塊通過(guò)系統(tǒng)調(diào)用或直接訪問(wèn)IO口地址,讀寫打印機(jī);
3.因此,可以通過(guò)監(jiān)控模塊調(diào)用或監(jiān)控IO口地址,實(shí)現(xiàn)對(duì)打印機(jī)數(shù)據(jù)的監(jiān)控,從而獲取銷售數(shù)據(jù)。這種方法具有通用性。
二、從顧客顯示器獲取銷售數(shù)據(jù)顧客顯示器和銷售終端通過(guò)串口連接,因此可以監(jiān)控銷售終端發(fā)往顧客顯示器的數(shù)據(jù),從而獲取打印數(shù)據(jù)。
三、從銷售文件中獲取銷售數(shù)據(jù)商業(yè)應(yīng)用模塊對(duì)文件操作是通過(guò)系統(tǒng)調(diào)用實(shí)現(xiàn)的,因此監(jiān)控該系統(tǒng)調(diào)用,可以獲取寫往文件的數(shù)據(jù),從而獲取銷售數(shù)據(jù)。
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)的框架中設(shè)置有稅控服務(wù)器(稅控服務(wù)器位于商場(chǎng)機(jī)房),它是一臺(tái)服務(wù)于稅控目的的服務(wù)器,可以和互連網(wǎng)連接。它可以根據(jù)實(shí)際企業(yè)的軟硬件及稅務(wù)信息,設(shè)置系統(tǒng)參數(shù),從智能稅控器中獲得銷售終端機(jī)的銷售數(shù)據(jù)(是按照GB18240.3,經(jīng)過(guò)智能稅控器完成銷售數(shù)據(jù)簽名的各種銷售數(shù)據(jù))。根據(jù)需要,它可以供稅務(wù)局遠(yuǎn)程訪問(wèn)(遠(yuǎn)程稽查),也可以主動(dòng)將銷售數(shù)據(jù)傳輸給稅務(wù)局。
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)的框架中,在每個(gè)銷售終端機(jī)配置一個(gè)智能稅控器,和銷售終端機(jī)共同構(gòu)成銷售終端子系統(tǒng),它獲取稅控服務(wù)器的各種參數(shù),根據(jù)參數(shù)分析從銷售終端中獲取的商業(yè)銷售數(shù)據(jù),并且發(fā)送給稅控服務(wù)器。它具有GB18240.3定義的所有功能。
實(shí)施例1參見(jiàn)圖2和圖3,本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)包括若干銷售終端、打印機(jī)、稅控服務(wù)器和與每個(gè)銷售終端分別相連的若干智能稅控器。智能稅控器具有稅控卡。銷售終端通過(guò)商場(chǎng)以太網(wǎng)交換機(jī)HUB與管理終端和數(shù)據(jù)庫(kù)服務(wù)器分別相連。稅控服務(wù)器與商場(chǎng)以太網(wǎng)交換機(jī)HUB相連。銷售終端包括操作系統(tǒng)模塊和商業(yè)應(yīng)用模塊。智能稅控器包括一以太網(wǎng)HUB模塊,該模塊具有兩個(gè)RJ45端口,智能稅控器通過(guò)其中一個(gè)RJ45端口和串口分別與銷售終端相連接,通過(guò)另一個(gè)RJ45端口與商場(chǎng)以太網(wǎng)交換機(jī)HUB相連接。銷售終端設(shè)有用于采集銷售數(shù)據(jù)的監(jiān)控模塊,監(jiān)控模塊接于商業(yè)應(yīng)用模塊和操作系統(tǒng)模塊之間。操作系統(tǒng)模塊運(yùn)行于DOS操作系統(tǒng)或Windows操作系統(tǒng)。監(jiān)控模塊包括運(yùn)行于DOS操作系統(tǒng)或Windows操作系統(tǒng)下的初始化模塊、文件打開(kāi)模塊、加載模塊、數(shù)據(jù)截獲模塊和關(guān)閉模塊。監(jiān)控模塊將采集的商業(yè)銷售數(shù)據(jù)經(jīng)串口/并口傳輸至智能稅控器,智能稅控器接收稅控服務(wù)器的操作和查詢信息并將商業(yè)銷售數(shù)據(jù)傳輸至稅控服務(wù)器。其基本功能如下1.參見(jiàn)圖4和圖5,在銷售終端機(jī)內(nèi),運(yùn)行監(jiān)控模塊(包括初始化模塊、安裝模塊,加載模塊、數(shù)據(jù)截獲模塊、文件打開(kāi)模塊和文件關(guān)閉模塊),可以獲取系統(tǒng)發(fā)往打印機(jī)(或客顯)及寫往文件的所有數(shù)據(jù);2.智能稅控器通過(guò)并口或串口和銷售終端連接,功能如下a)開(kāi)機(jī)時(shí),從稅控服務(wù)器獲取系統(tǒng)配置數(shù)據(jù);b)接收從監(jiān)控模塊截獲的數(shù)據(jù);c)分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù);d)包括GB18240定義的稅控器功能,可以對(duì)銷售數(shù)據(jù)進(jìn)行數(shù)據(jù)簽名,得到的稅控碼發(fā)送到監(jiān)控模塊,打印到銷售小票上,避免商場(chǎng)使用發(fā)票,降低商場(chǎng)運(yùn)營(yíng)成本;e)把經(jīng)過(guò)簽名的數(shù)據(jù),存貯在本地,實(shí)現(xiàn)稅控器的功能;f)包含一個(gè)以太網(wǎng)HUB,可以提供至少兩個(gè)以太網(wǎng)接口,一個(gè)供接口卡與稅控服務(wù)器連接,另一個(gè)與銷售終端連接,避免商場(chǎng)MIS系統(tǒng)重新布線;g)通過(guò)以太網(wǎng)HUB與稅控服務(wù)器通信,實(shí)現(xiàn)如下功能把銷售數(shù)據(jù)發(fā)往稅控服務(wù)器;支持稅控服務(wù)器的查詢功能(稅控服務(wù)器作為GB18240.3的主機(jī))。
下面現(xiàn)在通過(guò)實(shí)施例對(duì)本發(fā)明采用上述稅源監(jiān)控系統(tǒng)采集商業(yè)銷售數(shù)據(jù)的方法進(jìn)行詳細(xì)描述。
實(shí)施例2本實(shí)施例智能稅控器工作于DOS操作系統(tǒng)下。
參見(jiàn)圖6,DOS系統(tǒng)下監(jiān)控模塊的初始化流程如下智能稅控器初始化當(dāng)系統(tǒng)開(kāi)機(jī)時(shí),執(zhí)行智能稅控器的初始化工作,若系統(tǒng)沒(méi)有運(yùn)行參數(shù),則它從稅控服務(wù)器獲取系統(tǒng)的配置參數(shù);在銷售終端機(jī)監(jiān)控模塊啟動(dòng)時(shí),它從智能稅控器獲取配置參數(shù),決定自己要監(jiān)控的數(shù)據(jù)源和監(jiān)控方法●數(shù)據(jù)源包括打印機(jī)數(shù)據(jù)、客顯數(shù)據(jù)、文件數(shù)據(jù);●監(jiān)控方式系統(tǒng)調(diào)用、IO口;根據(jù)配置,啟動(dòng)不同的加載模塊,在銷售終端中駐留不同的截獲模塊。
參見(jiàn)圖4,當(dāng)駐留的截獲程序被執(zhí)行時(shí),用戶執(zhí)行銷售操作時(shí),將發(fā)生系統(tǒng)調(diào)用,從而自動(dòng)啟動(dòng)截獲模塊,執(zhí)行截獲模塊的功能,把銷售數(shù)據(jù)發(fā)送到智能稅控器,從而實(shí)現(xiàn)監(jiān)控銷售數(shù)據(jù)的目的。智能稅控器接收從監(jiān)控模塊截獲的數(shù)據(jù),并分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù),采集結(jié)束。
下面進(jìn)行詳細(xì)說(shuō)明。
參見(jiàn)圖8和圖9,DOS系統(tǒng)下采集打印數(shù)據(jù)的加載模塊流程如下A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟(參見(jiàn)圖8)1)加載模塊從所述智能稅控器讀取監(jiān)控方式數(shù)作為初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)內(nèi)容,判斷監(jiān)控類型為直接地址監(jiān)控還是中斷監(jiān)控,若為中斷監(jiān)控,則執(zhí)行3),若為直接地址監(jiān)控,則執(zhí)行4);3)從初始化數(shù)據(jù)中獲取需要截獲的中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;執(zhí)行7)。
4)在DOS系統(tǒng)下,將運(yùn)行模式轉(zhuǎn)換為V86虛擬模式;5)修改V86權(quán)限表,原保護(hù)模式下運(yùn)行在3級(jí)的程序在訪問(wèn)初始化數(shù)據(jù)制定的IO地址時(shí)產(chǎn)生保護(hù)中斷{0EH};6)保存{0EH}中斷的原始地址,然后將截獲模塊入口地址保存在中斷描述符表中該中斷的入口地址處;7)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)數(shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊執(zhí)行以下步驟(參見(jiàn)圖9)1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述數(shù)據(jù)截獲模塊從所述智能稅控器獲取應(yīng)答數(shù)據(jù);3)所述數(shù)據(jù)截獲模塊根據(jù)應(yīng)答數(shù)據(jù)判斷原有數(shù)據(jù)是否需要修改,若不需要修改,則執(zhí)行5);4)若需要修改,則應(yīng)答數(shù)據(jù)中包括所述智能稅控器解析獲得的發(fā)票號(hào)碼和發(fā)票稅控碼,所述截獲模塊對(duì)原有的數(shù)據(jù)進(jìn)行修改,使其包括所述發(fā)票號(hào)碼和發(fā)票稅控碼;5)用要打印的數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束。
參見(jiàn)圖10和圖11,DOS系統(tǒng)下采集客顯數(shù)據(jù)的加載模塊流程如下A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟(參見(jiàn)圖10)1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);
2)根據(jù)初始化數(shù)據(jù)內(nèi)容,判斷監(jiān)控類型為直接地址監(jiān)控還是中斷監(jiān)控,若為中斷監(jiān)控,則執(zhí)行3),若為直接地址監(jiān)控,則執(zhí)行4);3)從初始化數(shù)據(jù)中獲取需要截獲的中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;執(zhí)行7)。
4)在DOS系統(tǒng)下,將運(yùn)行模式轉(zhuǎn)換為V86虛擬模式;5)修改V86權(quán)限表,原保護(hù)模式下運(yùn)行在3級(jí)的程序在訪問(wèn)初始化數(shù)據(jù)制定的IO地址時(shí)產(chǎn)生保護(hù)中斷{0EH};6)保存{0EH}中斷的原始地址,然后將截獲模塊入口地址保存在中斷描述符表中該中斷的入口地址處;7)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)數(shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊執(zhí)行以下步驟(參見(jiàn)圖11)1)數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)用原始的中斷數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束。
參見(jiàn)圖12-圖15,DOS系統(tǒng)下采集文件數(shù)據(jù)的加載模塊流程如下A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟(參見(jiàn)圖12)1)加載模塊從智能稅控器讀取初始化數(shù)據(jù);2)據(jù)初始化數(shù)據(jù)確定需要監(jiān)控的文件名列表;3)找被監(jiān)控的源文件,并將該文件的原文件發(fā)送給智能稅控器;4)截獲21H中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;5)操作系統(tǒng)模塊將截獲程序駐留內(nèi)存;B.啟動(dòng)文件打開(kāi)模塊,所述文件打開(kāi)模塊執(zhí)行以下步驟(參見(jiàn)圖13)1)在被監(jiān)控程序打開(kāi)文件時(shí)激活打開(kāi)文件模塊,并調(diào)用原有的文件打開(kāi)中斷服務(wù)程序進(jìn)行文件打開(kāi);2)檢查文件名是否在初始化數(shù)據(jù)的監(jiān)控文件范圍內(nèi),如果是,則記錄該文件的文件句柄編號(hào);如果否,則打開(kāi)結(jié)束;C.啟動(dòng)文件數(shù)據(jù)截獲模塊,所述文件數(shù)據(jù)截獲模塊執(zhí)行以下步驟(參見(jiàn)圖14)1)對(duì)被監(jiān)控文件進(jìn)行操作時(shí)激活數(shù)據(jù)截獲模塊,并判斷當(dāng)前操作文件的句柄編號(hào)是否在監(jiān)控范圍內(nèi),如果是,則將文件操作數(shù)據(jù)發(fā)送給智能稅控器進(jìn)行解析;如果否,執(zhí)行原有的中斷服務(wù)程序;2)截獲結(jié)束,轉(zhuǎn)到第四步;D.啟動(dòng)文件關(guān)閉模塊,所述文件關(guān)閉模塊執(zhí)行如下步驟(參見(jiàn)圖15);1)被監(jiān)控對(duì)象關(guān)閉文件的時(shí)候激活關(guān)閉模塊,關(guān)閉模塊首先調(diào)用原有的文件關(guān)閉中斷服務(wù)程序,然后根據(jù)該文件的文件句柄編號(hào)判斷該文件是否在監(jiān)控的范圍內(nèi),若為是,則從監(jiān)控文件句柄列表中清除該句柄;2)關(guān)閉結(jié)束智能稅控器在接收從監(jiān)控模塊截獲的數(shù)據(jù)后,分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù),采集結(jié)束。
實(shí)施例3本實(shí)施例智能稅控器工作于Windows操作系統(tǒng)下。
參見(jiàn)圖7,Windows操作系統(tǒng)下監(jiān)控模塊的初始化流程沒(méi)有監(jiān)控模塊的初始化,當(dāng)銷售終端運(yùn)行Windows操作系統(tǒng)時(shí),首先要運(yùn)行安裝模塊并設(shè)置該程序在被監(jiān)管的驅(qū)動(dòng)之后第一個(gè)被加載,在安裝模塊中實(shí)現(xiàn)本監(jiān)控程序的配置操作。在安裝完成后,數(shù)據(jù)截獲程序?qū)⒂蒞indows在啟動(dòng)時(shí),自動(dòng)加載。
同實(shí)施例2,監(jiān)控的數(shù)據(jù)源和監(jiān)控方式分為打印機(jī)數(shù)據(jù)、客顯數(shù)據(jù)和文件數(shù)據(jù)。
參見(jiàn)圖5,當(dāng)駐留的截獲程序被執(zhí)行時(shí),用戶執(zhí)行銷售操作時(shí),將發(fā)生系統(tǒng)調(diào)用,從而自動(dòng)啟動(dòng)截獲模塊,執(zhí)行截獲模塊的功能,把銷售數(shù)據(jù)發(fā)送到智能稅控器,從而實(shí)現(xiàn)監(jiān)控銷售數(shù)據(jù)的目的。智能稅控器接收從監(jiān)控模塊截獲的數(shù)據(jù),并分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù),采集結(jié)束。
參見(jiàn)圖16-圖19,Windows操作系統(tǒng)下采集打印數(shù)據(jù)的加載模塊流程如下Windows操作系統(tǒng)下打印數(shù)據(jù)的獲取存在兩種方法一、鉤子函數(shù)方式,該方式適用于商業(yè)應(yīng)用模塊通過(guò)打印機(jī)驅(qū)動(dòng)模塊進(jìn)行打印的情況,改種情況下機(jī)器與打印機(jī)的通訊采用專用的打印命令方式;二、驅(qū)動(dòng)模塊方式,該方式適用于商業(yè)應(yīng)用模塊直接通過(guò)中斷或者IO地址操作的方式進(jìn)行打印的情況,該種情況下銷售終端與打印機(jī)的通訊采用標(biāo)準(zhǔn)的ASCII或GB2312字符集方式進(jìn)行。
以上兩種方式的選擇可由人工根據(jù)具體系統(tǒng)的運(yùn)作方式進(jìn)行選擇。
1.鉤子函數(shù)方式A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟(參見(jiàn)圖16)1)銷售終端從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);2)修改打印相關(guān)函數(shù)的地址,駐留截獲模塊;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟(參見(jiàn)圖17)1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述數(shù)據(jù)截獲模塊從智能稅控器接收應(yīng)答數(shù)據(jù);3)所述數(shù)據(jù)截獲模塊根據(jù)所述應(yīng)答數(shù)據(jù)判斷原有數(shù)據(jù)是否需要修改,若不需要修改,則執(zhí)行5);4)若需要修改,從應(yīng)答數(shù)據(jù)中獲取發(fā)票號(hào)碼和發(fā)票稅控碼,插入到原有的打印數(shù)據(jù)中;5)用要打印的數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束。
2.驅(qū)動(dòng)模塊方式A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟(參見(jiàn)圖18)1)從下層設(shè)備指針中獲取下層設(shè)備信息;2)根據(jù)該信息判斷下層設(shè)備是否為被監(jiān)控設(shè)備,若是,執(zhí)行下一步;若否,則停止加載;3)繼續(xù)加載;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟(參見(jiàn)圖19)1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述智能稅控器將解析結(jié)果產(chǎn)生的發(fā)票號(hào)碼或者發(fā)票稅控碼返回?cái)?shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊接收這些數(shù)據(jù);3)如果所述智能稅控器沒(méi)有返回?cái)?shù)據(jù),則執(zhí)行5);4)數(shù)據(jù)截獲模塊根據(jù)返回來(lái)的數(shù)據(jù)修改原有的打印序列,使其符合打印定長(zhǎng)發(fā)票、打印稅控碼的稅控要求;5)將數(shù)據(jù)發(fā)送給原設(shè)備驅(qū)動(dòng)程序,截獲結(jié)束。
參見(jiàn)圖20和圖21,Windows操作系統(tǒng)下以鉤子函數(shù)方式采集客顯數(shù)據(jù)的加載模塊流程如下A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟(參見(jiàn)圖20)
1)加載模塊從下層設(shè)備指針中獲取下層設(shè)備信息;2)根據(jù)該信息判斷下層設(shè)備是否為被監(jiān)控設(shè)備,若是,執(zhí)行下一步;若否,則停止加載;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟(參見(jiàn)圖21)1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)將數(shù)據(jù)發(fā)送給原設(shè)備驅(qū)動(dòng)程序,截獲結(jié)束。
參見(jiàn)圖23-圖25,Windows操作系統(tǒng)下以鉤子函數(shù)方式采集文件數(shù)據(jù)的加載模塊流程如下A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟(參見(jiàn)圖23)1)操作系統(tǒng)啟動(dòng)時(shí)激活加載模塊,從智能稅控器讀取初始化數(shù)據(jù);2)從初始化數(shù)據(jù)中分離出被監(jiān)控的文件名列表;3)將被監(jiān)控文件的源文件發(fā)送給智能稅控器;4)通過(guò)修改文件操作函數(shù)指向監(jiān)控模塊的相應(yīng)函數(shù),截獲模塊駐留內(nèi)存;B啟動(dòng)打開(kāi)文件模塊,打開(kāi)文件模塊執(zhí)行以下步驟(參見(jiàn)圖24)1)在被監(jiān)控對(duì)象打開(kāi)文件時(shí)激活打開(kāi)文件模塊,調(diào)用原有的文件打開(kāi)函數(shù),并獲得文件操作句柄編號(hào);2)根據(jù)打開(kāi)文件的文件名判斷該文件是否在監(jiān)控的范圍內(nèi),若是,則記錄該文件的文件句柄編號(hào);若否,則結(jié)束打開(kāi);C啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟被監(jiān)控文件進(jìn)行操作時(shí)激活數(shù)據(jù)截獲模塊,并判斷當(dāng)前操作文件的句柄編號(hào)是否在監(jiān)控范圍內(nèi),如果是,則將文件操作數(shù)據(jù)發(fā)送給智能稅控器進(jìn)行解析;如果否,則直接調(diào)用原文件處理函數(shù);D啟動(dòng)關(guān)閉模塊,關(guān)閉模塊執(zhí)行以下步驟(參見(jiàn)圖25)1)在被監(jiān)控對(duì)象打開(kāi)文件時(shí)激活關(guān)閉模塊,關(guān)閉模塊首先調(diào)用原有的文件關(guān)閉函數(shù),并獲得文件句柄編號(hào);2)根據(jù)關(guān)閉文件的文件句柄編號(hào)判斷該文件是否在監(jiān)控的范圍內(nèi),若為是,則從監(jiān)控文件句柄列表中清除該句柄;若為否,則結(jié)束關(guān)閉;3)數(shù)據(jù)截獲結(jié)束。
智能稅控器在接收從監(jiān)控模塊截獲的數(shù)據(jù)后,分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù),采集結(jié)束。
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng)及其采集商業(yè)銷售數(shù)據(jù)的方法,具有以下特點(diǎn)第一,借助于商業(yè)零售企業(yè)原有的硬件設(shè)備實(shí)施稅收控,不改變商業(yè)零售企業(yè)原有的信息系統(tǒng)的硬件投入,保護(hù)了商業(yè)零售企業(yè)原有的硬件設(shè)備投資。
第二,不改變?cè)械钠髽I(yè)軟件系統(tǒng),原來(lái)的軟件系統(tǒng)可以正常使用。這使商業(yè)零售企業(yè)不存在新建一個(gè)信息系統(tǒng)的中經(jīng)常需要的軟件測(cè)試,員工培訓(xùn),管理模式改變等問(wèn)題。這是保證稅源監(jiān)控系統(tǒng)可以順利實(shí)施的一個(gè)重要原因。
第三,新添加的硬件設(shè)備有限,而且不會(huì)改變商業(yè)零售企業(yè)原有信息系統(tǒng)的邏輯和物理結(jié)構(gòu),不需要改動(dòng)商業(yè)零售企業(yè)的弱電系統(tǒng),沒(méi)有布線等施工工程,設(shè)備和施工投入少。
第四,稅源監(jiān)控系統(tǒng)在收款機(jī)不打印發(fā)票的情況下,監(jiān)控商業(yè)零售企業(yè)銷售,為企業(yè)節(jié)約了因打印發(fā)票帶來(lái)的額外運(yùn)行成本(300筆水單成本3元,100張卷筒發(fā)票單成本13元),有利于稅源監(jiān)控系統(tǒng)的推廣減輕企業(yè)的抵觸。特別適用于大型超市、麥當(dāng)勞、肯得雞這樣客戶量大每單銷售額小的企業(yè);第五,系統(tǒng)實(shí)施簡(jiǎn)便,在實(shí)施過(guò)程中,不影響原有商業(yè)信息系統(tǒng)的順利使用。
權(quán)利要求
1.一種X86平臺(tái)下的稅源監(jiān)控系統(tǒng),包括若干銷售終端和與其相連的打印機(jī),所述銷售終端包括操作系統(tǒng)模塊和商業(yè)應(yīng)用模塊,所述銷售終端通過(guò)商場(chǎng)以太網(wǎng)交換機(jī)HUB與管理終端和數(shù)據(jù)庫(kù)服務(wù)器分別相連,其特征在于還包括一臺(tái)稅控服務(wù)器和與每個(gè)所述銷售終端分別相連的若干智能稅控器,所述稅控服務(wù)器與所述商場(chǎng)以太網(wǎng)交換機(jī)HUB相連;所述智能稅控器包括一個(gè)串口和一個(gè)以太網(wǎng)HUB模塊,該模塊具有兩個(gè)RJ45端口,所述智能稅控器通過(guò)其中一個(gè)RJ45端口和串口分別與所述銷售終端相連接,通過(guò)另一個(gè)RJ45端口與所述商場(chǎng)以太網(wǎng)交換機(jī)HUB相連接;所述銷售終端設(shè)有用于采集銷售數(shù)據(jù)的監(jiān)控模塊,所述監(jiān)控模塊接于所述商業(yè)應(yīng)用模塊和所述操作系統(tǒng)模塊之間,所述監(jiān)控模塊將采集的商業(yè)銷售數(shù)據(jù)經(jīng)所述串口傳輸至所述智能稅控器,所述智能稅控器接收所述稅控服務(wù)器的命令和查詢信息并將所述商業(yè)銷售數(shù)據(jù)傳輸至所述稅控服務(wù)器。
2.根據(jù)權(quán)利要求1所述的監(jiān)控系統(tǒng),其特征在于其中所述操作系統(tǒng)模塊采用DOS操作系統(tǒng)或Windows操作系統(tǒng)。
3.根據(jù)權(quán)利要求1或2所述的監(jiān)控系統(tǒng),其特征在于其中所述監(jiān)控模塊包括運(yùn)行于DOS操作系統(tǒng)或Windows操作系統(tǒng)下的初始化模塊、安裝模塊、加載模塊、數(shù)據(jù)截獲模塊、文件打開(kāi)模塊和文件關(guān)閉模塊。
4.一種采用權(quán)利要求1所述的稅源監(jiān)控系統(tǒng)的采集商業(yè)銷售數(shù)據(jù)的方法,其特征在于,該方法在DOS操作系統(tǒng)下采集所述銷售終端的商業(yè)銷售數(shù)據(jù),該方法執(zhí)行的步驟是第一步 智能稅控器和監(jiān)控模塊初始化當(dāng)智能稅控器開(kāi)機(jī)時(shí),從所述稅控服務(wù)器獲取系統(tǒng)的配置參數(shù);第二步 所述初始化模塊從智能稅控器獲取配置參數(shù),獲取監(jiān)控的數(shù)據(jù)源,根據(jù)配置啟動(dòng)不同的加載模塊和在所述銷售終端中駐留不同的截獲模塊;若決定監(jiān)控的數(shù)據(jù)源為打印數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為打印數(shù)據(jù);第三步 采集打印數(shù)據(jù)A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)內(nèi)容,判斷監(jiān)控類型為直接地址監(jiān)控還是中斷監(jiān)控,若為中斷監(jiān)控,則執(zhí)行3),若為直接地址監(jiān)控,則執(zhí)行4);3)從初始化數(shù)據(jù)中獲取需要截獲的中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;執(zhí)行7)。4)在DOS系統(tǒng)下,將運(yùn)行模式轉(zhuǎn)換為V86虛擬模式;5)修改V86權(quán)限表,原保護(hù)模式下運(yùn)行在3級(jí)的程序在訪問(wèn)初始化數(shù)據(jù)指定的IO地址時(shí)產(chǎn)生保護(hù)中斷{0EH};6)保存{0EH}中斷的原始地址,然后將截獲模塊入口地址保存在中斷描述符表中該中斷的入口地址處;7)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)數(shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述數(shù)據(jù)截獲模塊從所述智能稅控器獲取應(yīng)答數(shù)據(jù);3)所述數(shù)據(jù)截獲模塊根據(jù)應(yīng)答數(shù)據(jù)判斷原有數(shù)據(jù)是否需要修改,若不需要修改,則執(zhí)行5);4)若需要修改,則應(yīng)答數(shù)據(jù)中包括所述智能稅控器解析獲得的發(fā)票號(hào)碼和發(fā)票稅控碼,所述截獲模塊對(duì)原有的數(shù)據(jù)進(jìn)行修改,使其包括所述發(fā)票號(hào)碼和發(fā)票稅控碼;5)用要打印的數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束,轉(zhuǎn)到第四步;第四步 所述智能稅控器接收從監(jiān)控模塊截獲的數(shù)據(jù),并分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù);第五步 采集結(jié)束。
5.根據(jù)權(quán)利要求4所述的采集商業(yè)銷售數(shù)據(jù)的方法,其特征在于在其中所述第二步中,若決定監(jiān)控的數(shù)據(jù)源為客顯數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為客顯數(shù)據(jù);其中所述第三步替換為第三步 采集客顯數(shù)據(jù)A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)內(nèi)容,判斷監(jiān)控類型為直接地址監(jiān)控還是中斷監(jiān)控,若為中斷監(jiān)控,則執(zhí)行3),若為直接地址監(jiān)控,則執(zhí)行4);3)從初始化數(shù)據(jù)中獲取需要截獲的中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;執(zhí)行7)。4)在DOS系統(tǒng)下,將運(yùn)行模式轉(zhuǎn)換為V86虛擬模式;5)修改V86權(quán)限表,原保護(hù)模式下運(yùn)行在3級(jí)的程序在訪問(wèn)初始化數(shù)據(jù)指定的IO地址時(shí)產(chǎn)生保護(hù)中斷{0EH};6)保存{0EH}中斷的原始地址,然后將截獲模塊入口地址保存在中斷描述符表中該中斷的入口地址處;7)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)數(shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)用原始的中斷數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束,轉(zhuǎn)到第四步。
6.根據(jù)權(quán)利要求4或5所述的采集商業(yè)銷售數(shù)據(jù)的方法,其特征在于在其中所述第二步中,若決定監(jiān)控的數(shù)據(jù)源為文件數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為文件數(shù)據(jù);其中所述第三步替換為第三步 采集文件數(shù)據(jù)A.啟動(dòng)加載模塊,所述加載模塊執(zhí)行以下步驟1)加載模塊從智能稅控器讀取初始化數(shù)據(jù);2)根據(jù)初始化數(shù)據(jù)確定需要監(jiān)控的文件名列表;3)查找被監(jiān)控的源文件,并將該文件的內(nèi)容發(fā)送給智能稅控器;4)截獲21H中斷,將該中斷的入口地址保存,然后將截獲模塊的入口地址存入中斷向量表中該中斷的入口地址處;5)調(diào)用操作系統(tǒng)模塊將截獲模塊駐留內(nèi)存;B.啟動(dòng)文件打開(kāi)模塊,所述文件打開(kāi)模塊執(zhí)行以下步驟1)在被監(jiān)控程序打開(kāi)文件時(shí)激活打開(kāi)文件模塊,并調(diào)用原有的文件打開(kāi)中斷服務(wù)程序進(jìn)行文件打開(kāi);2)檢查文件名是否在初始化數(shù)據(jù)的監(jiān)控文件范圍內(nèi),如果是,則記錄該文件的文件句柄編號(hào);如果否,則打開(kāi)結(jié)束;C.啟動(dòng)文件數(shù)據(jù)截獲模塊,所述文件數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)對(duì)被監(jiān)控文件進(jìn)行操作時(shí)激活數(shù)據(jù)截獲模塊,并判斷當(dāng)前操作文件的句柄編號(hào)是否在監(jiān)控范圍內(nèi),如果是,則將文件操作數(shù)據(jù)發(fā)送給智能稅控器進(jìn)行解析;如果否,執(zhí)行原有的中斷服務(wù)程序;2)截獲結(jié)束,轉(zhuǎn)到第四步;D.啟動(dòng)文件關(guān)閉模塊,所述文件關(guān)閉模塊執(zhí)行如下步驟;1)被監(jiān)控對(duì)象關(guān)閉文件的時(shí)候激活關(guān)閉模塊,關(guān)閉模塊首先調(diào)用原有的文件關(guān)閉中斷服務(wù)程序,然后根據(jù)該文件的文件句柄編號(hào)判斷該文件是否在監(jiān)控的范圍內(nèi),若為是,則從監(jiān)控文件句柄列表中清除該句柄;2)關(guān)閉結(jié)束。
7.另一種采用權(quán)利要求1所述的稅源監(jiān)控系統(tǒng)的采集商業(yè)銷售數(shù)據(jù)的方法,其特征在于,該方法在Windows操作系統(tǒng)下采集所述銷售終端的商業(yè)銷售數(shù)據(jù),該方法執(zhí)行的步驟是第一步 運(yùn)行安裝程序,輸入監(jiān)控的數(shù)據(jù)源和監(jiān)控方式,若輸入監(jiān)控的數(shù)據(jù)源為打印數(shù)據(jù),則采集的商業(yè)銷售數(shù)據(jù)為打印數(shù)據(jù),執(zhí)行第二步;第二步 若監(jiān)控方式為鉤子函數(shù)方式,則將數(shù)據(jù)截獲模塊注冊(cè)到系統(tǒng)服務(wù),重新啟動(dòng)機(jī)器,轉(zhuǎn)到第三步;若監(jiān)控方式為驅(qū)動(dòng)程序方式,首先安裝打印機(jī)截獲驅(qū)動(dòng)程序,設(shè)置該驅(qū)動(dòng)程序在被監(jiān)管的驅(qū)動(dòng)之后第一個(gè)被加載,然后重新啟動(dòng)機(jī)器,轉(zhuǎn)到第五步;第三步 啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)加載模塊從所述智能稅控器讀取監(jiān)控方式參數(shù)作為初始化數(shù)據(jù);2)修改打印相關(guān)函數(shù)的地址,駐留截獲模塊;3)安裝模塊結(jié)束,重新啟動(dòng)機(jī)器,執(zhí)行第四步;第四步 安裝結(jié)束后,每次啟動(dòng)機(jī)器時(shí),操作系統(tǒng)自動(dòng)啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述數(shù)據(jù)截獲模塊從智能稅控器接收應(yīng)答數(shù)據(jù);3)所述數(shù)據(jù)截獲模塊根據(jù)所述應(yīng)答數(shù)據(jù)判斷原有數(shù)據(jù)是否需要修改,若不需要修改,則執(zhí)行5);4)若需要修改,從應(yīng)答數(shù)據(jù)中獲取發(fā)票號(hào)碼和發(fā)票稅控碼,插入到原有的打印數(shù)據(jù)中;5)用要打印的數(shù)據(jù)調(diào)用系統(tǒng)原有的中斷處理函數(shù),截獲結(jié)束,轉(zhuǎn)到第六步;第五步 采集打印數(shù)據(jù)A操作系統(tǒng)自動(dòng)啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)加載模塊從下層設(shè)備指針中獲取下層設(shè)備信息;2)根據(jù)該信息判斷下層設(shè)備是否為被監(jiān)控設(shè)備,若是,執(zhí)行下一步;若否,則停止加載;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)所述智能稅控器將解析結(jié)果產(chǎn)生的發(fā)票號(hào)碼或者發(fā)票稅控碼返回?cái)?shù)據(jù)截獲模塊,所述數(shù)據(jù)截獲模塊接收這些數(shù)據(jù);3)如果所述智能稅控器沒(méi)有返回?cái)?shù)據(jù),則執(zhí)行5);4)數(shù)據(jù)截獲模塊根據(jù)返回來(lái)的數(shù)據(jù)修改原有的打印序列,使其符合打印定長(zhǎng)發(fā)票、打印稅控碼的稅控要求;5)將數(shù)據(jù)發(fā)送給原設(shè)備驅(qū)動(dòng)程序,截獲結(jié)束,轉(zhuǎn)到第六步;第六步 智能稅控器接收從監(jiān)控模塊截獲的數(shù)據(jù),并分析截獲數(shù)據(jù),從中獲取銷售數(shù)據(jù);第七步 采集結(jié)束。
8.根據(jù)權(quán)利要求7所述的采集商業(yè)銷售數(shù)據(jù)的方法,其特征在于在其中所述第一步中,若決定監(jiān)控的數(shù)據(jù)源為文件數(shù)據(jù),則第二步和第三步替換為第二步 將數(shù)據(jù)截獲模塊注冊(cè)到系統(tǒng)服務(wù),重新啟動(dòng)機(jī)器;第三步 以鉤子函數(shù)方式采集文件數(shù)據(jù)A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)操作系統(tǒng)啟動(dòng)時(shí)激活加載模塊,從智能稅控器讀取初始化數(shù)據(jù);2)從初始化數(shù)據(jù)中分離出被監(jiān)控的文件名列表;3)將被監(jiān)控文件的源文件發(fā)送給智能稅控器;4)通過(guò)修改文件操作函數(shù)指向監(jiān)控模塊的相應(yīng)函數(shù),截獲模塊駐留內(nèi)存;B啟動(dòng)打開(kāi)文件模塊,打開(kāi)文件模塊執(zhí)行以下步驟1)在被監(jiān)控對(duì)象打開(kāi)文件時(shí)激活打開(kāi)文件模塊,調(diào)用原有的文件打開(kāi)函數(shù),并獲得文件操作句柄編號(hào);2)根據(jù)打開(kāi)文件的文件名判斷該文件是否在監(jiān)控的范圍內(nèi),若是,則記錄該文件的文件句柄編號(hào);若否,則結(jié)束打開(kāi);C啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟被監(jiān)控文件進(jìn)行操作時(shí)激活數(shù)據(jù)截獲模塊,并判斷當(dāng)前操作文件的句柄編號(hào)是否在監(jiān)控范圍內(nèi),如果是,則將文件操作數(shù)據(jù)發(fā)送給智能稅控器進(jìn)行解析;如果否,則直接調(diào)用原文件處理函數(shù);D啟動(dòng)關(guān)閉模塊,關(guān)閉模塊執(zhí)行以下步驟1)在被監(jiān)控對(duì)象打開(kāi)文件時(shí)激活關(guān)閉模塊,關(guān)閉模塊首先調(diào)用原有的文件關(guān)閉函數(shù),并獲得文件句柄編號(hào);2)根據(jù)關(guān)閉文件的文件句柄編號(hào)判斷該文件是否在監(jiān)控的范圍內(nèi),若為是,則從監(jiān)控文件句柄列表中清除該句柄;若為否,則結(jié)束關(guān)閉;3)數(shù)據(jù)截獲結(jié)束,轉(zhuǎn)到第六步。
9.根據(jù)權(quán)利要求7或8所述的采集商業(yè)銷售數(shù)據(jù)的方法,其特征在于在其中所述第一步中,若決定監(jiān)控的數(shù)據(jù)源為客顯數(shù)據(jù),則第二步和第三步替換為第二步執(zhí)行加載模塊,安裝客顯截獲驅(qū)動(dòng)程序,設(shè)置該驅(qū)動(dòng)程序在被監(jiān)管的驅(qū)動(dòng)之后第一個(gè)被加載,然后重新啟動(dòng)機(jī)器;第三步 以驅(qū)動(dòng)程序方式采集客顯數(shù)據(jù)A啟動(dòng)加載模塊,加載模塊執(zhí)行以下步驟1)加載模塊從下層設(shè)備指針中獲取下層設(shè)備信息;2)根據(jù)該信息判斷下層設(shè)備是否為被監(jiān)控設(shè)備,若是,執(zhí)行下一步;若否,則停止加載;B啟動(dòng)數(shù)據(jù)截獲模塊,數(shù)據(jù)截獲模塊執(zhí)行以下步驟1)所述數(shù)據(jù)截獲模塊將此次調(diào)用的數(shù)據(jù)發(fā)送給智能稅控器,所述智能稅控器進(jìn)行解析;2)將數(shù)據(jù)發(fā)送給原設(shè)備驅(qū)動(dòng)程序,截獲結(jié)束,轉(zhuǎn)到第六步。
全文摘要
本發(fā)明X86平臺(tái)稅源監(jiān)控系統(tǒng),包括若干銷售終端、稅控服務(wù)器和智能稅控器。智能稅控器與銷售終端和稅控服務(wù)器分別相連。銷售終端相連有打印機(jī),銷售終端包括商業(yè)應(yīng)用模塊和操作系統(tǒng)模塊,另設(shè)有監(jiān)控模塊接于商業(yè)應(yīng)用模塊和操作系統(tǒng)模塊之間,用于采集銷售數(shù)據(jù)。監(jiān)控模塊將采集的銷售數(shù)據(jù)傳輸至智能稅控器,智能稅控器接收稅控服務(wù)器的操作和查詢信息并將銷售數(shù)據(jù)傳輸至稅控服務(wù)器。本發(fā)明同時(shí)提供了該監(jiān)控系統(tǒng)采集商業(yè)銷售數(shù)據(jù)的多種方法。本發(fā)明的系統(tǒng)和方法的優(yōu)點(diǎn)是不改變?cè)械纳虡I(yè)MIS系統(tǒng),包括整體布線、硬件結(jié)構(gòu)、前后臺(tái)操作、數(shù)據(jù)庫(kù)、商業(yè)應(yīng)用模塊和商業(yè)人員的操作習(xí)慣,在對(duì)銷售數(shù)據(jù)的監(jiān)控過(guò)程中,實(shí)施和使用都非常簡(jiǎn)便。
文檔編號(hào)G07G1/14GK101051406SQ200710099570
公開(kāi)日2007年10月10日 申請(qǐng)日期2007年5月24日 優(yōu)先權(quán)日2007年5月24日
發(fā)明者杜小軍, 程臘生, 王桂紅 申請(qǐng)人:北京雅普蘭科技發(fā)展有限公司