摘要: 在簡要闡述會計科目表的數(shù)據(jù)要求及文件結(jié)構(gòu)的基礎上,分析與設計了會計科目的數(shù)據(jù)輸入表單及數(shù)據(jù)輸入處理流程,提供了實現(xiàn)會計科目數(shù)據(jù)輸入功能的VFP程序代碼。
關(guān)鍵詞:會計科目;信息系統(tǒng);數(shù)據(jù)輸入處理;VFP程序
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2013)04-0666-03
Design and Realization of Accounting Items Input Processing
LI Guo-hong
(Department of Management Engineering, Zhengzhou University, Zhengzhou 450001, China)
Abstract: On the basis of briefly clarifying the data requirement and the file structure of the accounting items table, this paper analyzes and designs the data input form and the data input processing flow chart of accounting items. It then supplied with the Visual FoxPro program codes to realize the accounting items data input function.
Key words: accounting item; information system; data input processing; VFP program
會計科目輸入是會計電算化系統(tǒng)的一項重要的系統(tǒng)初始化工作,通過該操作將各級會計科目的科目編號、科目名稱、借貸方向和期初余額等信息保存在會計科目表文件中,為錄入憑證、登記總賬、生成損益表等功能的實現(xiàn)打下基礎。為T6XpxgN7jQvyZRP1kwY9cw==此,就必須設計合理的表單和輸入處理流程,實現(xiàn)在盡可能減輕用戶輸入負擔的前提下,將科目信息通過表單輸入到會計科目表文件。筆者曾以“管理信息系統(tǒng)數(shù)據(jù)輸入模塊的設計與實現(xiàn)——兼論會計科目的輸入設計”[1]為題,探討了新會計制度改革前的會計科目輸入處理與設計,實現(xiàn)了會計科目的輸入功能。該文對新會計制度改革后的會計科目輸入處理進行了重新設計,表單界面較為合理,對相關(guān)屬性的設置進一步減少了用戶輸入負擔,同時,其程序流程也采用了另一種新的設計思路與方法,提供了實現(xiàn)科目輸入功能的Visual FoxPro(簡稱VFP)程序代碼。
1 會計科目表及其文件結(jié)構(gòu)
會計科目表包含科目編號、科目名稱、借貸方向、期初余額等信息,表中的科目編號數(shù)據(jù)必須符合以下條件:科目編號位數(shù)不低于4、科目編號不能重復、科目編號位數(shù)大于4時必須是偶數(shù)位數(shù)且存在上級科目。向會計科目表中輸入科目信息時,應由程序自動判斷所輸入的數(shù)據(jù)是否滿足這些條件,只有滿足這些條件才可存入會計科目表中,不滿足條件的數(shù)據(jù)不應被保存且應提示出錯信息。
[字段\&類型\&寬度\&小數(shù)位數(shù)\&含義\&kmbh\&字符型\&10\&\&科目編號\&kmmc\&字符型\&36\&\&科目名稱\&jdfx\&字符型\&1\&\&借貸方向\&qcye\&數(shù)值型\&12\&2\&期初余額\&]
會計科目表的數(shù)據(jù)保存在會計科目表文件中。假設在VFP環(huán)境下,會計科目表文件為kjkm.dbf,保存在默認目錄下,表的結(jié)構(gòu)如表1所示,其中各字段的寬度可按實際情況進行定義。例如,一般情況下,一級科目的科目編號占四位,其余各級科目的科目編號都是其上級科目編號后再加兩位數(shù)字(字符),這樣,當實際可以輸入1002010203之類的四級科目而不允許輸入五級科目時,表中kmbh(科目編號)字段的寬度就應設置為10,這里給出的只是參考值。
2 會計科目輸入表單設計及相關(guān)屬性設置
設計如圖1所示的表單,以便向會計科目表中輸入相關(guān)數(shù)據(jù)。其中,“會計科目”、“科目編號”、“科目名稱”、“借貸方向”、“期初余額”為對應標簽的Caption屬性;“確定(Q)”、“取消(X)”、“退出(T)”為命令按鈕,其Caption屬性對應設置為:確定(\ 為便于控制輸入數(shù)據(jù)的類型和位數(shù)不超出允許的范圍,可事先設置好各文本框接收數(shù)據(jù)的類型及輸入掩碼,設置方法是用鼠標右鍵單擊各文本框,在出現(xiàn)的快捷菜單選“生成器”,再在彈出的“文本框生成器”對話框的“格式”選項卡設置數(shù)據(jù)類型和輸入掩碼。依據(jù)表1和圖1,結(jié)合實際輸入的數(shù)據(jù)(如科目名稱由漢字及相關(guān)字符組成,借貸方向由字符“1”或“2”表示),可設置各文本框的數(shù)據(jù)類型和輸入掩碼如表2所示。其中每個9表示可輸入0~9之間的一個數(shù)字,每個X表示可輸入一個任意字符(輸入一個漢字對應2個X),9或X的個數(shù)表示最多可以輸入的數(shù)字或字符的位數(shù)。另外,若借貸方向由字母表示(例如借用j表示、貸用d表示),可將輸入掩碼設置為A。 [文本框\&數(shù)據(jù)類型\&輸入掩碼\&備注\&Text1\&字符型\&9999999999\&10個9\&Text2\&字符型\&XXX……XXX\&共36個X,省略號部分表示30個X\&Text3\&字符型\&9\&9表示只接收一位數(shù)字;若只接收英文字母,則設置為A\&Text4\&數(shù)值型\&999999999.99\&帶小數(shù)點共12位\&] 3 科目輸入程序流程設計 會計科目的相關(guān)數(shù)據(jù)要通過科目輸入表單保存在會計科目表(文件)中。由于數(shù)據(jù)符合一定的條件時才能輸入到會計科目表中,所以必須設計合理的程序流程,使程序簡單高效、易于理解。數(shù)據(jù)輸入的程序流程設計有以下兩種思路。 1)先設置表單中的數(shù)據(jù)都正確時的條件(例如b=0);然后將表單中的數(shù)據(jù)不符合要求的各種情況都設置為不滿足上述條件(例如設置為b=1或b=2),并進行相關(guān)提示;最后,用條件語句實現(xiàn)滿足條件時保存數(shù)據(jù)(例如,如果b=0就保存數(shù)據(jù))。文獻[1]所示的科目輸入處理流程就采用這種思路。 2)第二種思路是,將表單中數(shù)據(jù)符合輸入要求的各種情況均設置為滿足某個條件(例如k=1),各種不符合要求的情況需要進行相關(guān)提示,并在必要時設置為不滿足該條件(例如設置為k=0),然后用條件語句實現(xiàn)滿足條件時保存數(shù)據(jù)(例如,如果k=1就保存數(shù)據(jù))。按照這種思路,利用N-S圖設計會計科目輸入的程序流程如圖2所示。相對于文獻[1]所示的科目輸入程序流程,該流程顯得更加合理和易于理解。 4 科目輸入的VFP程序代碼 運行圖1所示的科目輸入表單,單擊“確定(Q)”按鈕(或按Alt+Q組合鍵)時,應能按照圖2所示的科目輸入流程進行相應的數(shù)據(jù)處理。根據(jù)圖2,編寫“確定(Q)”按鈕的Click過程對應的VFP程序代碼如下,其中&&右面表示注釋內(nèi)容。 set exact on kmbh1=thisform.text1.value length1=len(alltrim(kmbh1)) if length1<4 messagebox("科目編號至少為4位!",0+48,"提示") thisform.text1.setfocus else &&科目編號位數(shù)不低于4 use kjkm locate for alltrim(kmbh)=alltrim(kmbh1) if found() messagebox("科目編號不能重復!",0+48,"提示") thisform.text1.setfocus else &&科目編號位數(shù)不低于4,且科目編號不重復 if length1>4 if length1%2=0 &&科目編號位數(shù)為偶數(shù) locate for alltrim(kmbh)=left(alltrim(kmbh1),length1-2) if .not. found() messagebox("無上級科目,請先輸入上級科目!",0+48,"提示") thisform.text1.value=left(alltrim(kmbh1),length1-2) thisform.text2.value=space(0) thisform.text3.value=space(0) thisform.text4.value=0.00 thisform.text2.setfocus k=0 &&按不允許添加數(shù)據(jù)為變量k賦值,假設允許添加數(shù)據(jù)時k=1 else &&存在上級科目 k=1 &&按允許添加數(shù)據(jù)為變量k賦值 endif else &&科目編號位數(shù)不是偶數(shù) messagebox("科目編號位數(shù)不對,請重新輸入!",0+48,"提示") thisform.text1.setfocus k=0 &&k=0表示不允許添加數(shù)據(jù) endif else &&科目編號不重復且位數(shù)為4 k=1 &&k=1表示允許添加數(shù)據(jù) endif if k=1 &&如果k=1,則添加數(shù)據(jù) append blank replace kmbh with kmbh1 replace kmmc with thisform.text2.value replace jdfx with thisform.text3.value replace qcye with thisform.text4.value thisform.text1.value=space(0) thisform.text2.value=space(0) thisform.text3.value=space(0) thisform.text4.value=0.00 thisform.text1.setfocus endif endif use endif set exact off 參考文獻: [1] 李國紅.管理信息系統(tǒng)數(shù)據(jù)輸入模塊的設計與實現(xiàn)——兼論會計科目的輸入設計[J].中國管理信息化:會計版, 2006(11):19-22.