版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
會計軟件分析與設計
第一章帳務處理程序分析
學習目的與要求:
帳務核算系統(tǒng)是會計核算軟件中使用最為廣泛、最為重要的一個子系統(tǒng)。
本章以系統(tǒng)開發(fā)過程為主線,簡要介紹各過程的任務、要求及注意事項。
通過本章的學習,要求讀者對帳務處理系統(tǒng)的開發(fā)過程及每個過程所涉
及的原理有一個初步的了解,明白各個過程完成的內容及任務對以后工
作的重要性。
內容提要
第一節(jié)會計工作現(xiàn)狀調查
一、系統(tǒng)工作狀況調查的要緊內容
1、數(shù)據(jù)方面的調查。
2、處理內容方面的調查。
3、專門事務方面的調查。
4、處理方式方面的調查。
5、代碼方面的調查。
二、企業(yè)通常采納的帳務處理程序
1、記帳憑證帳務處理程序
2、科目匯總表帳務處理程序
3、匯總記帳憑證帳務處理程序
4、多欄式日記帳務處理程序
三、會計工作狀況調查的意義
會計工作現(xiàn)狀調查是進行系統(tǒng)初步設計的基礎,如果會計工作現(xiàn)狀沒有調
查清晰就進行系統(tǒng)
設計,則可能顯現(xiàn)許多咨詢題,滿足不了用戶的需要和功能不全的咨詢題
就要使設計人員從頭再
來進行系統(tǒng)的調查,因此,設計人員應認真對待調查工作。
第二節(jié)系統(tǒng)規(guī)劃
一、系統(tǒng)規(guī)劃的任務
按照現(xiàn)狀調查所獲得的資料,第一應歸納出用戶的差不多需求,除滿足用
戶提
出的要求外,應講明還有哪些附加功能,關于不能滿足的用戶要求要講明
原
因,所有的系統(tǒng)功能要清晰,在運算機系統(tǒng)的配置,會計數(shù)據(jù)處理方法,
系
統(tǒng)開發(fā)的初步安排等方面進行規(guī)劃,編寫需求分析講明書。
二、系統(tǒng)規(guī)劃的內容
1、運算機系統(tǒng)的配置方面。
2、在信息的處理方式方面。
3、在軟件開發(fā)打算方面。
第三節(jié)概要設計
一、概要設計的任務及意義
概要設計是在系統(tǒng)可行性分析之后,為實現(xiàn)系統(tǒng)進行的技術設計,概要設
計
工作的好壞,直截了當阻礙到賽用的多少,開發(fā)進度的快慢。
二、概要設計的內容
1、系統(tǒng)要求。
2、系統(tǒng)目標的確定。
3、環(huán)境設計。
4、通用性設計。
5、保密性設計。
6、可愛護性設計。
7、外部設計。
8、文件設計及其應考慮的因素
數(shù)據(jù)的使用頻度;數(shù)據(jù)的差不多內容;記錄格式;數(shù)據(jù)的流量;在某些時
刻
下,是否有兩個及以上的程序使用數(shù)據(jù);占用文件時,是對文件的全部記
錄進行處理,依舊處理其中某一部分;文件及數(shù)據(jù)的保密度,承諾哪些人
存取數(shù)據(jù),承諾哪些人只讀或禁止訪咨詢;文件名。
第四節(jié)詳細設計
一、詳細設計的任務
1、對概要設計的功能模塊進行過程描述,開發(fā)一個能夠直截了當轉換成
程序語言
代碼的軟件表示,這種表示應當是無歧義且高度結構化的。
2.為每個模塊建立一個“軟件開發(fā)卷宗”文件。
二、詳細設計時期的實施步驟
1、將概要設計產(chǎn)生的構成軟件系統(tǒng)的各個功能模塊逐步細化,形成若干
個
程序模塊。
2、采納詳細設計工具對程序模塊進行過程描述。
3、確定各個模塊間的詳細接口信息。
4、編寫“程序設計講明書
5、按完成標志進行評審,如未發(fā)覺專門咨詢題,則處理終止,否則而進
行
修改,修改后再次評審,直至通過為止。
三、詳細設計的完成標志
1、詳細地規(guī)定了各模塊之間的接口,包括參數(shù)的形式和傳遞方式,上下
層調用關系。
2、確定了模塊內的算法及數(shù)據(jù)結構。
四、過程的結構化構造
1、過程的結構化與非結構化
2、過程的結構化應遵循的原則
使用有限數(shù)量的差不多邏輯結構;利用差不多結構將過程組成容易識別的
“塊;
每塊都有且只能有一個入口和一個出口;易于轉換成程序代碼;容易修改
設
計
五、詳細設計工具
1、圖形工具,以圖示方法描述模塊處理過程。
2、語言工具,有偽代碼或結構化英語來描述數(shù)據(jù)和處理過程。
3、表格工具,用表格來表示詳細處理過程,這類工具適于處理邏輯十分
復雜
的條件和活動間的關聯(lián)。
4、幾種常用的詳細設計工具:
流程圖;框圖;判定樹
第五節(jié)詳細設計交付的文件
一、程序設計講明書
程序設計講明書又稱詳細設計講明書。編制目的是講明一個軟件系統(tǒng)各層
次中的
每一個模塊的設計考慮,其應考慮如下內容:
1.編寫目的;2.程序系統(tǒng)的結構;3.程序設計講明(程序描述;功能;性能;
輸入項;輸出項;算法;流程邏輯;接口;存貯分配;注釋設計;限制條
件;
測試打算;尚未解決的咨詢題)
二、模塊開發(fā)講明書
模塊開發(fā)講明書是在詳細設計講明書經(jīng)評審和批準后建立的,并在模塊開
發(fā)過程
中逐步編寫出來,它是治理人員監(jiān)督開發(fā)進度并為以后的愛護人員使用的
技術文
件,其要緊內容如下:
標題;模塊開發(fā)情形(時刻安排);功能講明;設計講明;源代碼清單;
測試講明;評審的結論
第二章用戶界面程序設計
學習目的與要求:
用戶界面確實是用戶與運算機系統(tǒng)進行相互交流數(shù)據(jù)與信息的一些接口規(guī)
#
氾,
用戶界面的友好性直截了當關系到軟件系統(tǒng)的質量。本章通過介紹數(shù)據(jù)輸
入界面、
菜單等有關內容,講明在進行系統(tǒng)友好界面設計時應遵循的一些差不多規(guī)
則及
常用慣例,通過學習,要求讀者把握菜單概念及菜單選擇的程序實現(xiàn)。
內容提要
第一節(jié)數(shù)據(jù)輸入界面設計
一、用戶界面及其設計要求
1、用戶界面這一術語指的是用戶和程序如何相互溝通,屏幕上的任何信
息、
文檔資料以及鍵盤輸入的命令差不多上用戶界面的一部分,對屏幕設置,
提
示、菜單和聯(lián)機關心信息設計的好壞決定著用戶界面是否高效、友好,
也決定著軟件是否能為用戶同意,最佳的用戶界面強調良好的屏幕設計,
易于使用和用戶友好。
2、用戶界面設計時應考慮的一樣原則:
必須集成于系統(tǒng)設計之中,而不最后加上;減少擊鍵次數(shù)來提升用戶效率;
推測用戶的下一步動作;提供錯誤信息來關心糾正錯誤;
提供文檔來減少培訓時刻;帶有關心信息;支持其它的輸入裝置。
二、輸入數(shù)據(jù)程序設計要遵循如下原則:
1、簡明性
2、一致性
3、完整性
4、使用顏色的原則
5、輸入格式
第二節(jié)菜單和命令設計
一、菜單及其功能
1、菜單系統(tǒng)將當前承諾用戶選擇操作的功能名稱在屏幕上顯示出來,讓
用戶
選擇并完成該功能的一種用戶界面形式。
2、菜單的功能
?使不熟練的的用戶熟練軟件,即表述其功能和特性
?提供可選項的清單
?簡化選擇,從而防止產(chǎn)生錯誤
?降低訓練費用,因為菜單一步步引導用戶完成任務
-減少用戶的經(jīng)歷負擔
二、菜單式樣
1、水平上托式菜單。
2、豎直上托式。
3、下拉菜單。
4、全屏幕菜單。
5、圖標式菜單(類WINDOWS風格)。
三、菜單設計的考慮及權衡
1、設計按下ESC鍵將操縱返回到上一級菜單。
2、同時提供亮條選擇菜單及字母菜單選擇。
3、考慮用戶擁有使用過的其它軟件的菜單風格。
4、提供快捷選擇。
四、菜單設計原則
1、菜單設計所使用的名稱要前后一致。
2、減少選項的數(shù)目,一樣不要超過8項。
3、減少菜單級數(shù)的數(shù)目,一樣不要超過4級。
4、提供快速返回鍵。
5、菜單選項的選項內容易于懂得,一樣不要使用技術性強的術語。
第四第用戶界面程序設計舉例
一、下拉式菜單設計舉例
CLEAR
DOWHILE.T.
@1,1PROMPT"憑證輸入”
@1,10PROMPT“查詢”
@1,20PROMPT“記帳”
@1,30PROMPT“打印”
@1,40PROMPT“系統(tǒng)設置”
@1,50PROMPT“月末結轉”
@1,60PROMPT“數(shù)據(jù)庫愛護”
@1,70PROMPT“退出”
MENUTOCHO
DOCASE
CASECHO=1
SELECT10
USEGQCW1
APPENDBLANK
REPLACEBHWITHMXM,RRWITH”憑證輸入”
RQWITHMA1,SJ1WITHTIME()
SETCOLORTOGB
@4,2CLEARTO11,22DOUBLE
SETCOLORTOWIB
@3,1CLEARTO10,21DOUBLE
@5,3PROMPT“1,采購單輸入”
@6,3PROMPT“2,領料單輸入”
@7,3PROMPT“3,修改采購單”
@8,3PROMPT“4,修改領料單”
@9,3PROMPT“0,退出”
MENUTOCHOI
DOCASE
ENDCASE
ENDCASE
ENDDO
二、全屏幕菜單設計舉例
三、全屏幕菜單設計舉例2
第四章憑證處理程序分析與設計
第一節(jié)憑證的手工處理
一、憑證的分類
1、憑證一樣分為原始憑證和記帳憑證
2、記帳憑證一樣分為收款憑證、付款憑證和轉帳憑證。
記帳憑證一樣具有以下內容:
1.憑證的名稱。
2.填制憑證的日期和編號。
3.經(jīng)濟業(yè)務的內容摘要。
4.經(jīng)濟業(yè)務的金額。
5.填制憑證的單位及有關人員。
6.應借應貸帳戶的名稱。
7.所附原始憑證的張數(shù)和過帳備注。
二、會計人員對記帳憑證的處理程序大至如下:
1.按照原始憑證填制記帳憑證;
2.審核憑證,審查其合法性、正確性;
3.修改憑證,對錯誤的憑證進行修改;
4.查閱憑證,查閱已填制的憑證;
5.傳遞憑證,從填制或取得會計憑證到將其歸檔儲存為止,在有關業(yè)務部門
之
間按照規(guī)定的時刻,路線傳遞處理的程序。
第二節(jié)電算化憑證處理
一、電算化憑證處理的功能
1.錄入為用戶提供:
顯示憑證表格;靈活的編輯手段;儲存用戶錄入的憑證;
提供一定的檢控功能;返回主控模塊;
2.查詢?yōu)橛脩籼峁?/p>
用戶查詢某個特定憑證;按憑證編號查詢;
按任一條件查詢滿足條件的第一張憑證;
按任意組合條件查詢滿足條件的第一張憑證(憑證編號不能參加條件組合);
用戶查詢多張憑證;
按任一條件逐個查詢滿足條件的憑證;
按任意組合條件逐個查詢滿足條件的憑證;
暫存查詢信息;
3、修改及刪除
4、憑證輸出
二、電算化憑證處理與手工憑證處理的區(qū)別:
1.信息項不完全相同
2.憑證的編號方法不一樣
3.儲備形式不同
4.儲備空間的利用率不一樣
第三節(jié)憑證處理程序的安全可靠性
一、憑證出錯的來源
1、人為造成
2、(系統(tǒng))處理程序出錯。
3、電算化憑證處理模塊的安全可靠性操縱的措施:
L嚴格的多級安全操縱用戶級;憑證級
2.全方位的錄入檢測
二、數(shù)據(jù)安全可靠性的實施措施
1、邏輯校驗法利用數(shù)據(jù)間的邏輯關系
2、平穩(wěn)校驗法利用“有借必有貸,借貸必相等”的會計差不多準則。
3、查詢校驗法利用數(shù)據(jù)的相對穩(wěn)固性
4、關聯(lián)校驗法利用憑證數(shù)據(jù)的對應不可能性
5、重復校驗法利用概率統(tǒng)計的原理
第四節(jié)憑證處理程序的設計
一、系統(tǒng)應滿足的要求
1.穩(wěn)固性
系統(tǒng)應能保證所有的處理穩(wěn)固、處理的結果不隨時刻波動,僅僅依靠于輸
入。
2.一致性
系統(tǒng)內的數(shù)據(jù)必須保持一致。
3.良好的用戶界面
用戶界面要求方便適用、美觀簡潔。
4.靈活性
不受時刻、過程的限制。
5.完備性
提供一切有關憑證處理的功能,并加以強化。
6.快速
二、憑證處理模塊的設計
第五節(jié)憑證處理程序的實現(xiàn)
一、憑證錄入
<}c<]c^{c
*憑證輸入總控程序PZSR.PRG
*{c<}c5{c*fcr|c<|c^|c
PARAW_TITLE,BAR_NUM
HIDEMENUMAINMENU
SETCOLOROFSCHEME13TORGB(150,150,150,50,50,50),,;
RGB(150,150,150,50,50,50),RGB(150,150,150,150,0,0),RGB(150,150,150,50,5
0,50)
DEFINEWINDOWSZFROM1,0TO23,79FOOTER""+W_TITLE+"
"COLORSCHEME13
ACTIVATEWINDOWSZ
CHO=1
DOCASE
CASEBAR_NUM=1
DOPZSR11
CHO=0
CASEBAR_NUM=2
DOPZSR22
CHO=0
CASEBAR_NUM=3
DOPZSR4
CHO=0
CASEBAR_NUM=5
PZLXQ="S"
DOCXPZKHC1WITHPZLXQ
CASEBAR_NUM=6
PZLXQ="F"
DOCXPZKHC1WITHPZLXQ
CASEBAR_NUM=7
PZLXQ="Z"
DOCXPZKHC1WITHPZLXQ
CASEBAR_NUM=9
DOPZXG11
SELE1
DELEALLFORJE=O
PACK
CHO=0
CASEBAR_NUM=10
DOPZXG22
SELE1
DELEALLFORJE=O
PACK
CHO=0
CASEBAR_NUM=11
DOPZXG4
SELE1
DELEALLFORJE=O
PACK
CHO=0
CASEBAR_NUM=13
DODYPZ
CASEBAR_NUM=14
DODYPZMXB1
CASEBARNUM=15
DODYPZHZB
ENDCASE
IFCHO=0
DOPZKBF
ENDIF
CLEARWINDOWSZ
RETURN
*:EOF:PZSR.PRG
*收款憑證輸入程序PZSR11.PRG
JjC*|c^{c
SETTALKOFF
DEFIWINDPZSR1FROM19,20TO21,60SHADCOLOSCHE12
DEFIWINDPZSR2FROM19,10TO21,70SHADCOLOSCHE14
AN="Y"
PUBLICDIMENSIONZY(25),DFKM(25),JE(25),XMH(25)
DOWHILEUPPER(AN)="Y"
JFKM1=""
FDJ1=0
BH1=""
RQ1=MRQ
MRB="S"
DOZWBHWITHBH1
MY=1
MX="Y"
MHJ=0
MHJ1=0
MHJ2=0
MX="Y"
DOWHILEUPPER(MX)="Y"
I=1
DOWHILEI<=25
STORESPACE(24)TOZY(I)
DFKM(I)=SPACE(ll)
XMH(I)=SPACE(IO)
JE(I)=0.00
I=1+1
ENDDO
CLEAR
DOWHILE,T.
CLEARTYPE
A2="XXXXXXXXXXXXXXXXXXXXXXXX"
A3="999########"
A5="XXXXXXXXXX"
A6="999999999.99"
DOWHILE.T.
SETFORMATTOPZ12
READ
IFREADKEY()=36.OR.READKEY()=292
EXIT
ELSE
LOOP
ENDIF
ENDDO
SETFORMATTO
@17,58GETFDJ1PICTURE"99"
READ
IFJFKM1="".AND.BH1=""
CLEAR
RETURN
ENDIF
IFMY=1
SELECT1
SEEK"&BH1"+"S"
IF.NOT.EOFO
ACTIWINDPZSR1
@0,1SAY"重號,按任意鍵重新輸入”
WAIT""
DEACWINDPZSR1
LOOP
ENDIF
SELECT2
SEEK"&BH1"+"S"
IF.NOT.EOFO
ACTIWINDPZSR1
@0,1SAY”重號,按任意鍵重新輸入”
WAIT""
DEACWINDPZSR1
LOOP
ENDIF
ENDIF
SELE1
IFLEN(TRIM(BH1))<4
ACTIWINDPZSR1
@0,1SAY”編號長度不夠4位,按任鍵重新輸入!”
WAIT""
DEACWINDPZSR1
LOOP
ENDIF
SELECT3
IFJFKM1=""
LOOP
ELSE
SEEKJFKM1
IF.NOT.EOF()
ACTIWINDPZSR2
@0,1SAY"借方科目名稱:"+TRIM(KMMC)+"按任意鍵連續(xù)"
WAIT""
DEACWINDPZSR2
ENDIF
IFEOF().OR.UPPE(KMRB)="H"
ACTIWINDPZSR1
@0,1SAY"借方科目錯,按任意鍵重新輸入”
WAIT""
DEACWINDPZSR1
LOOP
ENDIF
ENDIF
I=1
DOWHILEI<=25
IFDFKM(I)<>""
MHJ2=MHJ2+JE(I)
MHJ1=MHJ2
ENDIF
I=1+1
ENDDO
@15,61GETMHJ1PICTURE"#########.##"
READ
IFMHJ1OMHJ2
ACTIWINDPZSR1
@0,1SAY”輸入金額錯,按任意鍵連續(xù)"
WAIT""
DEACWINDPZSR1
MHJ2=MHJ
LOOP
ENDIF
FLAG=0
SELECT3
J=1
DOWHILEJ<=25
IFJE(J)<>0.00
IFTRIM(DFKM(J))<>""
SEEKTRIM(DFKM(J))
IF.NOT.EOFO
MKMDM=TRIM(DFKM(J))
KMMC1=""
DOZW_KMMCWITHMKMDM,KMMC1
IFLEN(TRIM(KMMCl))<>0
ACTIWINDPZSR2
@0,1SAY"貸方科目名稱:"+TRIM(KMMC1)+"按任意鍵連續(xù)"
WAIT""
DEACWINDPZSR2
ENDI
ENDIF
IFEOF().OR.UPPE(KMRB)="H"
FLAG=1
EXIT
ENDIF
ENDIF
ENDIF
J=J+l
ENDDO
IFFLAG=1
ACTIWINDPZSR1
@0,1SAYTRIM(DFKM(J))+"貸方科目代碼錯,按任意鍵重新輸入
WAIT""
DEACWINDPZSR1
MHJ2=MHJ
LOOP
ENDIF
FLAG3=0
SELECT4
I=1
DOWHILEI<=25
IFLEN(TRIM(XMH(I)))<>0
SEEKTRIM(XMH(I))
IFEOF()
ACTIWINDPZSR1
@0,1SAY"編號:"+TRIM(XMH(I))+"錯,按任意鍵重新輸入"
WAIT""
DEACWINDPZSR1
FLAG3=1
EXIT
ENDIF
IFLEN(TRIM(XMH(I)))<>LEN(TRIM(PJH))
ACTIWINDPZSR1
@0,1SAY"編號:"+TRIM(XMH⑴)+"錯,按任意鍵重新輸入"
WAIT""
DEACWINDPZSR1
FLAG3=1
EXIT
ENDIF
ACTIWINDPZSR2
@0,1SAY"名稱:"+TRIM(DWMC)+”按任意鍵連續(xù)”
WAIT""
DEACWINDPZSR2
ENDIF
I=1+1
ENDDO
IFFLAG3=1
MHJ2=MHJ
LOOP
ENDIF
YN="Y"
ACTIWINDPZSR1
@0,1SAY"請檢查錄入憑證正確否?Y/N"GETYN
READ
IFUPPER(YN)o"Y"
MHJ2=MHJ
DEACWINDPZSR1
LOOP
ELSE
MHJ=MHJ2
DEACWINDPZSR1
EXIT
ENDIF
ENDDO
SELECT1
J=1
DOWHILEJ<=25
IFJE(J)<>0.00
IFDFKM(J)<>""
APPENDBLANK
REPLACERQWITHRQ1,BHWITHBH1,ZYWITHZY(J)
REPLACEKMDMWITHDFKM(J),JEWITHJE(J),PZRBWITH"S"
REPLACEJDWITH"D",PJHWITHXMH(J)
ENDIF
ENDIF
J=J+l
ENDDO
ACTIWINDPZSR1
STORE"N"TOMX
@0,1SAY"還有同號憑證否Y/N?"GETMX
READ
DEACWINDPZSR1
IFUPPER(MX)="N"
APPENDBLANK
REPLACERQWITHRQ1,BHWITHBH1,ZYWITHZY(1),KMD
MWITHJFKM1
REPLACEJEWITHMHJ,PZRBWITH"S",JDWITH"J"
REPLACEFDJWITHFDJ1
EXIT
ENDIF
MX="Y"
MY=0
ENDDO
ACTIWINDPZSR1
@0,1SAY"連續(xù)輸入否?Y/N"GETAN
READ
DEACWINDPZSR1
IFUPPER(AN)o"Y"
EXIT
ENDIF
ENDDO
CLEAR
RETURN
*:EOF:PZSR11.PRG
*生成憑證號ZWBH.PRG
PARAMETERSMBH
SETTALKOFF
SELE1
SETINDETODATA\PZKHC1
GOTOP
LOCATEFORUPPER(PZRB)=UPPER(MRB)
IFEOF()
SELECT2
SETINDETOPZK1
LOCATEFORUPPER(PZRB)=UPPER(MRB)
IFEOF()
MBH="0001"
RETURN
ELSE
GOBOTTOM
MBH=BH
DOWHILE.NOT.BOF()
IFUPPER(PZRB)<>UPPER(MRB)
SKIP-1
IFBOF()
MBH="0001"
EXIT
ENDIF
ELSE
XI=VAL(BH)
XI=Xl+1
X2=TRIM(LTRIM(STR(X1)))
DOCASE
CASELEN(X2)=1
MBH="000"+X2
CASELEN(X2)=2
MBH="00"+X2
CASELEN(X2)=3
MBH="0"+X2
CASELEN(X2)=4
MBH=X2
ENDCASE
EXIT
ENDIF
ENDDO
RETURN
ENDIF
ELSE
GOBOTTOM
MBH=BH
DOWHILE.NOT.BOF()
IFUPPER(PZRB)<>UPPER(MRB)
SKIP-1
IFBOF()
MBH="0001"
EXIT
ENDIF
ELSE
XI=VAL(BH)
XI=Xl+1
X2=TRIM(LTRIM(STR(X1)))
DOCASE
CASELEN(X2)=1
MBH="000"+X2
CASELEN(X2)=2
MBH="00"+X2
CASELEN(X2)=3
MBH="0"+X2
CASELEN(X2)=4
MBH=X2
ENDCASE
EXIT
ENDIF
ENDDO
ENDIF
RETURN
51c<{c^}c^|c
*憑證輸入格式文件PZSR11.FMT
JjC^|c<|c<]c^{c^|c
*fc*jC^|c*}c^c*{c^c^c<{c^c
*第一屏*
<|c^c<|c*!*<|c<{cJ|C<|c^c^c
@17,50SAY,附單據(jù)張,
@5,16GETJFKM1
@5,36GETRQ1
@5,64GETBH1
@9,3GETZY(1)PICTA2
@9,30GETDFKM(l)PICTA3
@9,43GETXMH(l)PICTA5
@9,60GETJE(1)PICTA6
@10,3GETZY(2)PICTA2
@10,30GETDFKM(2)PICTA3
@10,43GETXMH(2)PICTA5
@10,60GETJE(2)PICTA6
@11,3GETZY(3)PICTA2
@11,30GETDFKM(3)PICTA3
@11,43GETXMH(3)PICTA5
@11,60GETJE(3)PICTA6
@12,3GETZY(4)PICTA2
@12,30GETDFKM(4)PICTA3
@12,43GETXMH(4)PICTA5
@12,60GETJE(4)PICTA6
@13,3GETZY(5)PICTA2
@13,30GETDFKM(5)PICTA3
@13,43GETXMH(5)PICTA5
@13,60GETJE(5)PICTA6
@17,20SAY'第一屏,
@20,26SAY'輸入完一張憑證鍵Fl退出,
READ
51c
*生成科目名稱ZW_KMMC*
PARAMETERSKMDM,KMMC1
KMDM1=""
KMDM2=""
KMDM3=""
KMDM4=""
KMDM1=SUBSTR(KMDM,1,3)
DOCASE
CASELEN(TRIM(KMDM))=11
KMDM2=SUBSTR(KMDM,1,5)
KMDM3=SUBSTR(KMDM,1,7)
KMDM4=SUBSTR(KMDM,1,9)
KMDM4=SUBSTR(KMDM,1,11)
CASELEN(TRIM(KMDM))=9
KMDM2=SUBSTR(KMDM,1,5)
KMDM3=SUBSTR(KMDM,1,7)
KMDM4=SUBSTR(KMDM,1,9)
CASELEN(TRIM(KMDM))=7
KMDM2=SUBSTR(KMDM,1,5)
KMDM3=SUBSTR(KMDM,1,7)
CASELEN(TRIM(KMDM))=5
KMDM2=SUBSTR(KMDM,1,5)
ENDCASE
MI=1
KMMC1=""
SELECT3
DOWHILEMI<=4
MJ=STR(MI,1)
IFKMDM&MJo""
SEEKKMDM&MJ
KMMC1=KMMC1+TRIM(KMMC)+'7"
KMDM&MJ=""
ENDIF
MI=MI+1
ENDDO
RETURN
*查詢憑證程序CXPZKHC1.PRG*
PARAPZLXQ
PUBLICDIMENSIONPZHl(lOOO)
STORE""TOPZH1
DEFIWINDPZCXFROM3,25TO16,50SHADDOUBLCOLOSCHE
14
DEFIWINDPZCX1FROM18,20TO21,60SHADDOUBLCOLOSC
HE14
DOWHILE.T.
ACTIWINDPZCX
@0,3SAY”憑證查詢功能選擇模塊”
@2,3PROMPT"1按日期查詢"
@3,3PROMPT"2按憑證號查詢"
@4,3PROMPT"3按科目碼查詢"
@5,3PROMPT"4按金額查詢"
@6,3PROMPT"5按組合條件查詢"
@7,3PROMPT"6查詢期限發(fā)生額"
@8,3PROMPT"0退出"
@10,2SAY"請選擇"
MENUTOCH
DEACWINDPZCX
B12=DATE()
Bll=DATE()
Il=1
DOCASE
CASECH=1
DOWHILE.T.
ACTIWINDPZCX1
@0,0SAY"輸入查詢日期求:日至日
@0,15GETBll
@0,27GETB12
READ
DEACWINDPZCX1
IFB11>B12
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELECT1
BO=""'+DTOC(B11)+
B2=+DTOC(B12)+
Bl="RQ>=CTOD("+BO+").AND.RQ<=CTOD("+B2+").AND.UPP
E(PZRB)=";
+UPPE(PZLXQ)+
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZlo""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=2
DOWHILE,T.
All=""
A12=""
ACTIWINDPZCX1
@0,0SAY"請輸入查詢憑證號:號至號"
@0,18GETAllPICTURE"9999"
@0,28GETA12PICTURE"9999"
READ
A11=TRIM(A11)
A12=TRIM(A12)
DEACWINDPZCX1
IFA11>A12.OR.LEN(TRIM(A11))=O.OR.LEN(TRIM(A12))=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
Bl="BH>='"+All+",.AND.BH<='"+A12+",.AND.UPPE(PZRB)=,"+
UPPE(PZLXQ)+
SELECT1
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZlo""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=3
KMBM1=""
DOWHILE.T.
ACTIWINDPZCX1
@0,0SAY”請輸入查詢科目編碼:"GETKMBM1PICTURE"9999999
9999"
READ
DEACWINDPZCX1
IFLEN(TRIM(KMBM1))=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
KMBM1=+KMBM1+
Bl="KMDM="+KMBM1+".AND.UPPE(PZRB)="++UPPE(PZLXQ)+
SELECT1
KZ1tl
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZlo""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=4
Cll=0
ACTIWINDPZCX1
@0,0SAY”請輸入查詢金額:"GETCllPICTURE"9999999999.99"
READ
DEACWINDPZCX1
Bl="JE="+STR(C11,12,2)+".AND.UPPE(PZRB)="++UPPE(PZLXQ)+
SELECT1
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZlo""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=5
DOWHILE.T.
Alli=0
A112=0
Cll=""
C12=0
ACTIWINDPZCX1
@0,0SAY"輸入查詢要求:日期日至日"
@1,0SAY"憑證號號至號"
@0,17GETB11
@0,27GETB12
@1,17GETAlliPICTURE"9999"
@1,27GETA112PICTURE"9999"
READ
DEACWINDPZCX1
IFA111>A112.OR.B11>B12.OR.A111=O.OR.A112=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
BO=+DTOC(B11)+
B2="'"+DTOC(B12)+
Bl="RQ>=CTOD("+BO+").AND.RQ<=CTOD("+B2+").AND.BH>="++;
STR(A111,4,0)++".AND.BH<="++STR(A112,4,0)++;
".AND.UPPE(PZRB)="++UPPE(PZLXQ)+
SELECT1
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZlo""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=6
KMBM1=""
RQ1=0
RQ2=0
DOWHILE,T.
ACTIWINDPZCX1
@0,1SAY”請輸入查詢科目代碼:"GETKMBM1PICTURE"9999999
tl
READ
DEACWINDPZCX1
IFKMBM1=""
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELECT3
SEEKKMBM1
IFEOF()
ACTIWINDPZCX1
@0,0SAY"查無此科目碼!按任一鍵返回!"
WAIT""
DEACWINDPZCX1
LOOP
ENDIF
DOWHILE.T.
ACTIWINDPZCX1
@0,0SAY"請輸入查詢期限從日至日"
@0,17GETRQ1PICTURE"99"VALIDRQ1>=1.AND.RQ1<=31
@0,24GETRQ2PICTURE"99"VALIDRQ2>=1.AND.RQ2<=31
READ
DEACWINDPZCX1
IFRQ1>RQ2.OR.RQ1=0.OR.RQ2=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
DOCXPZKHC4
CASECH=7
RETURN
ENDCASE
ENDDO
RETURN
*:EOF:CXPZKHC1.PRG
*查詢憑證子程序CXPZKHC2.PRG*
<}c
PARAMETERSPZLXQ,KZ1
DEFIWINDPZCX21FROM18,20TO20,60SHADCOLOSCHE12
SELECT1
GOTOP
LOCAFOR&B1
IFEOF()
ACTIWINDPZCX21
@0,0SAY"查無此憑證!按任一鍵返回!"
WAIT""
DEACWINDPZCX21
KZ1="N"
RETURN
ENDIF
PZH1=SPACE(4)
DOWHILE.NOT.EOF()
IFPZH1(I1)<>BH
Il=11+1
PZHl(Il)=BH
ENDIF
CONTINUE
ENDDO
RETURN
<jc5jc
*查詢憑證子程序CXPZKHC3.PRG*
?{c51c*|c^|c^|c^|c<}c^}c?|c
PARAPZLXQ
SELE12
USEDATA\ZWKLK
MDWMC=DWMC
SELECT1
J=2
DOWHILEJ<=I1
LOCATEFORBH=PZH1(J).AND.PZRB=PZLXQ
IFLOWER(PZLXQ)="S"
LX="收款"
ELSE
IFLOWER(PZLXQ尸"F"
LX="付款"
ELSE
LX="轉帳"
ENDIF
ENDIF
@1,35SAYLX+"憑證"
LINE1="單位:"+TRIM(MDWMC)+""+NN+"年"+YY+"月"+RR+"日"+"
第"+BH+"號"
LINE2="?11——I
LINE3="|摘要|科目名稱|JD|金額|"
LINE4="|11-
H-
@2,0SAYLINE1
@3,0SAYLINE2
@4,0SAYLINE3
@5,0SAYLINE4
PZH1(J)=BH
I=5
DOWHILE.NOT.EOF().AND.BH=PZH1(J).AND.PZRB=PZLXQ
SELECT3
STORE""TOKMMC1,KMMC2,KMMC3
IFLEN(TRIM(A->KMDM))=3
SEEKA->KMDM
KMMC1=TRIM(KMMC)
ELSE
IFLEN(TRIM(A->KMDM))=5
SEEKLEFT(A->KMDM,3)
KMMC1=TRIM(KMMC)
SEEKA->KMDM
KMMC2=TRIM(KMMC)
ELSE
IFLEN(TRIM(A->KMDM))=7
SEEKLEFT(A->KMDM,3)
KMMC1=TRIM(KMMC)
SEEKLEFT(A->KMDM,5)
KMMC2=TRIM(KMMC)
SEEKA->KMDM
KMMC3=TRIM(KMMC)
ELSE
SEEKLEFT(A->KMDM,3)
KMMC1=TRIM(KMMC)
SEEKLEFT(A->KMDM,5)
KMMC2=TRIM(KMMC)
SEEKLEFT(A->KMDM,7)
KMMC3=TRIM(KMMC)
SEEKA->KMDM
KMMC3=KMMC3+TRIM(KMMC)
ENDIF
ENDIF
ENDIF
SELECT1
IFI<=12
I=1+1
@1,0SAY"|"+SUBS(ZY,1,18)
@I,20SAY"|"+TRIM(KMMCl)+"-"+TRIM(KMMC2)+"-"+TRIM(KM
MC3)
IFLOWER(JD)="J"
@I,56SAY"|"+"借"+"|"+STR(JE,12,2)+"|"
ELSE
@I,56SAY"|"+"貸"+"|"+STR(JE,12,2)+"|"
ENDIF
ELSE
@ROW(),0SAY"111—
@ROW()+1,20SAY"閱畢,按任一鍵連續(xù)"
WAIT""
CLEA
@1,35SAYLX+"憑證"
@2,0SAYLINE1
@3,0SAYLINE2
@4,0SAYLINE3
@5,0SAYLINE4
1=6
@1,0SAY"|"+SUBS(ZY,1,18)
@I,20SAY"|"+TRIM(KMMC1)+"-"+TRIM(KMMC2)+"-"+TRIM(KM
MC3)
IFLOWER(JD)="J"
@I,56SAY"|"+"借|"+STR(JE/2,2)+"|"
ELSE
@I,56SAY"|"+"貸|"+STR(JE,12,2)+"|"
ENDIF
ENDIF
SKIP
ENDDO
@1+1,0SAY"111——1—
@1+2,10SAY"第"+LTRIM(RTRIM(STR(J-1)))+"張”
@1+3,10SAY"按R鍵返屏!Q鍵退出!其它鍵連續(xù)…"
WAIT""TOFl
IFUPPE(F1)="Q"
CLEA
RETURN
ENDIF
CLEA
IFUPPE(F1)="R"
J=J-2
ENDIF
IFJ<1
J=1
ENDIF
J=J+l
ENDDO
IFJ=2
RETURN
ENDIF
@1+3,8SAY"查詢完畢,按任一鍵返回.?…"
WAIT""
@1+3,8SAYSPACE(70)
RETURN
第五章登記帳簿程序分析與設計
第一節(jié)登記帳簿程序分析
在憑證輸入終止后即需要用憑證數(shù)據(jù)來更新科目余額文件中相應科目的發(fā)
生額數(shù)
據(jù)項和累計發(fā)生額數(shù)據(jù)項,并運算出期末余額數(shù)據(jù)項,由于憑證數(shù)據(jù)中相
同科目
的業(yè)務不止一筆,因此,在更新數(shù)據(jù)之前,即要將憑證數(shù)據(jù)按科目代碼進
行匯總
,將匯總的結果來對科目余額文件中相應的科目余額數(shù)據(jù)項進行更新操作,
從而
形成最新的科目余額數(shù)據(jù),然后按照逐級匯總的方法,下級科目匯總后生
成上級
科目余額數(shù)據(jù),這確實是登記帳薄的過程。那個過程有兩個要緊步驟,一
是憑證匯
總,二是按科目逐級匯總。
只有明細科目的數(shù)據(jù)是從臨時匯總庫得到的,其它的數(shù)據(jù)差不多上由下級
科目經(jīng)匯總
后得到的,在登記帳薄程序中所要用到的數(shù)據(jù)庫有PZKHC.DBF文件(未登
帳憑證數(shù)
據(jù))、KMYE.DBF(科目余額)、DMMCK.DBF(單位往來帳余額文件)和PZK.
DBF(已登帳
憑證文件),另外確實是一些臨時用匯總文件,臨時用匯總文件的文件結構
與憑證庫
文件結構相同,這些文件的內容如下所示:
憑證庫文件結構
1RQ日期D8
2BH憑證號C4
3KMDM科目代碼C11322:2:2與科目代碼庫的內容一致
4ZY摘要C24
5JE金額N122
6FDJ附單據(jù)N2
7PZRB憑證類別C1S,F,Z
8JD借貸C1J,D
9PJH單位代碼C10與單位往來帳的一致
科目余額庫文件結構
1RQ(日期)日期型8
2KMDM(科目代碼)字符型113:2;2:2:2
3KMMC(科目名稱)字符型12
4NCYE(年初余額)數(shù)值型122
5NCLX(年初類型)字符型12J,D
6QCYE(期初余額)數(shù)值型142
7QCLX(期初類型)字符型1J,D
8JFF(借方發(fā)生)數(shù)值型142
9DFF(貸方發(fā)生)數(shù)值型142
10JFLJ(借方累計)數(shù)值型142
11DFLJ(貸方累計)數(shù)值型142
12QMYE(期末余額)數(shù)值型142
13QMLX(期末類型)字符型1J,D
14KMRB(科目待征)字符型1H匯總型,M明細型
單位往來帳文件結構
1PJH單位編號字符型10
2DWMC單位名稱字符型24
3QCYE期初余額數(shù)字型122
4QCLX期初類型字符型1
5JFF借方發(fā)生額數(shù)字型122
6DFF貸方發(fā)生額數(shù)字型122
7JFLJ借方累計額數(shù)字型122
8DFLJ貸方累計額數(shù)字型122
9QMYE期末余額數(shù)字型122
10QMLX期末類型字符型1
第二節(jié)登記帳薄程序設計
文件被打開的工作區(qū)間是:
A區(qū):憑證文件(未登帳憑證文件)PZKHC.DBF
B區(qū):憑證文件(已登帳憑證文件)PZK.DBF
C區(qū):科目余額文件KMYE.DBF
D區(qū):單位往來帳文件DWMC.DBF
E區(qū):單位往來帳憑證文件
*更新帳簿GXZP.PRG*
*}c
DEFIWINDGXZPFROM4,20TO16,60SHADCOLOSCHE14DOU
BL
DEFIWINDGXZP1FROM18,20TO20,60SHADCOLOSCHE12
ACTIWINDGXZP
YY="N"
@0,1SAY”登計帳簿否Y/N?"GETYYPICTURE"X"
READKLM》
UH14*23[JZ]圖5.2
IFUPPER(YY)o"Y"
DEACWINDGXZP
RETURN
ENDIF
SELECT9
USEBAK\KMYEBFINDEXBAK\KMYEBF1
DELETEALL
PACK
APPENDFROMDATA\KMYE
USE
SELECT9
USEBAK\DMMCKBFINDEXBAK\DMMCKBF1
DELETEALL
PACK
APPENDFROMDATA\DMMCK
USE
SELECT3
REINDEX
SELECT1
SETINDETODATA\PZKHC2
REINDEX
SELECT4
REINDEX
IFFILE("MKMHZJ.DBF")
ERASEMKMHZJ.DBF
ENDI
IFFILE("MKMHZD.DBF")
ERASEMKMHZD.DBF
ENDI
SELECT1
PZH1=BH
GOBOTTOM
PZH2=BH
IFRECCOUNT()=0
ACTIWINDGXZP1
@0,1SAY"憑證緩沖文件沒有記錄,按任意鍵退出!"
WAIT""
DEACWINDGXZP1
DEACWINDGXZP
RETURN
ENDIF
MDWMC=
@1,1SAY”正在進行匯總"+TRIM(MDWMC)+"記帳憑證
IFFILES("KMHZJ.DBF")
ERASEKMHZJ.DBF
ENDIF
IFFILES("KMHZD.DBF")
ERASEKMHZD.DBF
ENDIF
SELECT1
TOTALONKMDMTOKMHZJFORUPPER(JD)="J"FIELDSJE
TOTALONKMDMTOKMHZDFORUPPER(JD)="D"FIELDSJE
TOTALONPJHTOMKMHZJFORUPPER(JD)="J";
,AND.TRIM(PJH)<>SPACE(LEN(TRIM(PJH)))FIELDSJE
TOTALONPJHTOMKMHZDFORUPPER(JD)="D";
,AND.TRIM(PJH)oSPACE(LEN(TRIM(PJH)))FIELDSJE
SELECT0
USEKMHZJ
INDEXONKMDMTOKMHZJ1
SETINDEXTOKMHZJ1
SELECT0
USEKMHZD
INDEXONKMDMTOKMHZD1
SETINDEXTOKMHZD1
SELECT0
USEMKMHZJ
INDEXONPJHTOMKMHZJ1
SETINDEXTOMKMHZJ1
SELECT0
USEMKMHZD
INDEXONPJHTOMKMHZD1
SETINDEXTOMKMHZD1
@2,1SAY"正在更新科目余額文件的本期發(fā)生額...”
SELECT3
UPDAONKMDMFROMKMHZJREPLJFFWITHJFF+KMHZJ->JE,;
JFLJWITHJFLJ+KMHZJ->JE,RQWITHRQRANDOM
UPDAONKMDMFROMKMHZDREPLDFFWITHDFF+KMHZD->J
E,;
DFLJWITHDFLJ+KMHZD->JE,RQWITHRQRANDOM
PH="Y"
@3,1SAY"正在匯總余額文件的本期發(fā)生額
DOGXFSEWITH"F",PH
IFUPPER(PH)o"Y"
SELECTKMYE
DELETEALL
PACK
APPENDFROMBAK\KMYEBF
SELECTDMMCK
DELETEALL
PACK
APPENDFROMBAK\DMMCKBF
ACTIWINDGXZP1
@0,1SAY"此次做帳不成功,請檢查憑證,按任意鍵退出"
WAIT""
DEACWINDGXZP1
DEACWINDGXZP
SELE1
SETINDETODATA\PZKHC1
DOKMBJ
RETURN
ENDIF
@4,1SAY"正在更新往來帳余額文件的本期發(fā)生額...”
SELECT4
UPDAONPJHFROMMKMHZJREPLJFFWITHJFF+MKMHZJ->JE,;
JFLJWITHJFLJ+MKMHZJ->JERANDOM
UPDAONPJHFROMMKMHZDREPLDFFWITHDFF+MKMHZD->J
E,;
DFLJWITHDFLJ+MKMHZD->JERANDOM
SELECT3
DOGXQC
@5,1SAY"正在匯總余額文件的累計發(fā)生額
DOGXFSEWITH"LJ",PH
@6,1SAY"正在更新余額文件的期末數(shù)據(jù)
DOGXQM1
@7,1SAY"正在匯總往來帳本期發(fā)生額
DOGXFSE1WITH"F"
@8,1SAY"正在匯總往來帳累計發(fā)生額
DOGXFSE1WITH"LJ"
@9,1SAY"正在匯總往來帳期末發(fā)生額
DOGXQM2
SELECT2
APPENDFROMDATA\PZKHC
REINDEX
SELE1
ZAP
@10,1SAY"對科目余額文件進行備份!"
SELE9
USEBAK\KMYEBFINDEBAK\KMYEBF1
ZAP
APPEFROMDATA\KMYE
@10,1SAY"對記帳憑證文件進行備份!"
SELE9
USE
SELE9
USEBAK\PZKBFINDEBAK\PZKBF1,BAK\PZKBF2
ZAP
APPEFROMDATA\PZK
@10,1SAY"往來帳余額文件備份!"
SELE9
USE
USEBAK\DMMCKBFINDEBAK\DMMCKBF1
ZAP
APPEFROMDATA\DMMCK
SELECT5
ZAP
APPENDFROMDATA\PZKFORTRIM(PJH)<>SPACE(LEN(TRIM(PJ
H)))
DEACWINDGXZP
CLOSEDATA
ERASEKMHZJ.DBF
ERASEKMHZD.DBF
ERASEMKMHZJ.DBF
ERASEMKMHZD.DBF
DOZWOPEN
RETURN
更新上級發(fā)生額數(shù)據(jù)源程序
5jc*{c
*更新發(fā)生額GXFSE.PRG*
?{c51c*|c^|c<|c^|c^c*|c^c
PARAMETERSZD,PH
SELECT3
GOBOTTOM
ZD1="JF"-ZD
ZD2="DF"-ZD
STORE0TOBM5J,BM5D,BM7J,BM7D,BM9J,BM9D,JZJ,
DZJ
DOWHILE.NOT.BOF()
IFLEN(TRIM(KMDM))=9
BM9J=BM9J+&ZD1
BM9D=BM9D+&ZD2
ELSE
IFLEN(TRIM(KMDM))=7
IFBM9J<>0
REPLACE&ZD1WITHBM9J
BM9J=0
ENDIF
IFBM9D<>0
REPL&ZD2WITHBM9D
BM9D=0
ENDIF
BM7J=BM7J+&ZD1
BM7D=BM7D+&ZD2
ELSE
IFLEN(TRIM(KMDM))=5
IFBM7J<>0
REPLACE&ZD1WITHBM7J
BM7J=0
EDIF
IFBM7D<>0
REPLACE&ZD2WITHBM7D
BM7D=0
ENDIF
BM5J=BM5J+&ZD1
BM5D=BM5D+&ZD2
ELSE
IFBM5J<>0
REPLACE&ZD1WITHBM5J
BM5J=0
ENDIF
IFBM5D<>0
REPLACE&ZD2WITHBM5D
BM5D=0
ENDIF
ENDIF
ENDIF
ENDIF
IFLEN(TRIM(KMDM))=3
JZJ=JZJ+&ZD1
DZJ=DZJ+&ZD2
ENDIF
SKIP-1
ENDDO
IFJZJoDZJ
PH="N"
ENDIF
RETURN
更新期末數(shù)據(jù)源程序
?|c
*更新期末GXQM2.PRG*
^|c^}c^|c
SELECT4
GOTOP
MQMYE=0
DOWHILE.NOT.EOF()
IFQCLX="J"
MQMYE=QCYE+JFF-DFF
IFMQMYE<0
MQMLX="D"
ELSE
MQMLX="J"
ENDIF
ELSE
MQMYE=QCYE+DFF-JFF
IFMQMYE<0
MQMLX="J"
ELSE
MQMLX="D"
ENDIF
ENDIF
REPLACEQMLXWITHMQMLX,QMYEWITHABS(MQMYE)
SKIP
ENDDO
RETURN
第六章帳簿打印程序分析與設計
第一節(jié)帳簿數(shù)據(jù)的生成過程
一、三欄式明細帳數(shù)據(jù)的生成過程
在帳簿打印程序中數(shù)據(jù)來自兩個數(shù)據(jù)文件一一憑證庫和科目余額庫,而明
細
帳的結構是:如果本明細帳存在期初余額,則生成所需的明細帳數(shù)據(jù)庫的
第
一行應從科目余額庫中取出相應科目的期初余額,如果余額為零,則明細
數(shù)
據(jù)庫中就不需要設置“期初余額”這一條記錄,接下來的明細數(shù)據(jù)就要從
憑
證庫中去取,憑證庫中的金額是在借方則憑證數(shù)據(jù)轉存到明細帳數(shù)據(jù)庫的
借
方金額項,否則轉存到貸方金額項,依此規(guī)定取出全部符合要求的憑證數(shù)
據(jù)
,最后還要從科目余額庫中取出本明細帳的期末余額(如果需要還要取出本
年
累計發(fā)生額數(shù)據(jù)項)
二、單位往來帳數(shù)據(jù)生成程序分析
*生成往來帳數(shù)據(jù)DYWLZ.PRG
51c
DEFINWINDDYWLZ1FROM4,20TO10,60SHADCOLOSCHE14
DEFINWINDDYWLZ2FROM18,20TO20,60SHADCOLOSCHE1
2
SETTALKOFF
SETCOLORTOW/N
SELECT5
DOWHILE,T.
ACTIWINDDYWLZ1
MPZRB=""
MKMMC=SPACE(12)
@0,0SAY”請輸入往來帳科目:"GETMPZRBPICTURE"99999"
@1,0SAY”請輸入往來帳名稱:"GETMKMMCPICTURE"XXXXX
XXXXXXX"
@2,0SAY"只需輸入科目或名稱!”
READ
IFLEN(TRIM(MPZRB))=O.AND.LEN(TRIM(MKMMC))=O
DEACWINDDYWLZ1
RETURN
ENDIF
SELECT3
IFLEN(TRIM(MPZRB))<>0
IFLEN(TRIM(MPZRB))=5
SEEKSUBSTR(TRIM(MPZRB),1,3)
MKMMC=KMMC
ENDIF
SEEKTRIM(MPZRB)
IFEOF()
ACTIWINDDYWLZ2
@0,0SAY"科目錯,按任意鍵連續(xù)”
WAIT""
DEACWINDDYWLZ2
LOOP
ENDIF
MKMMC=TRIM(MKMMC)+KMMC
@1,0SAYSPACE(40)
@1,0SAY”科目名稱:"+MKMMC
EXIT
ELSE
IFMKMMCo""
LOCATEFORTRIM(KMMC)=TRIM(MKMMC)
IFEOF()
ACTIWINDDYWLZ2
@0,0SAY"科目名稱錯,按任意鍵連續(xù)"
WAIT""
DEACWINDDYWLZ2
LOOP
ENDIF
@0,0SAYSPACE(40)
@0,0SAY"往來帳科目:"+KMDM
MPZRB=KMDM
EXIT
ENDIF
ENDIF
ENDDO
MSL=0
MX="N"
MA=0
@3,0SAY”查詢某個單位或個人否Y/N?"GETMXPICTURE"X"
READ
SELECT4
IFUPPER(MX)="Y"
STORESPACE(IO)TOMBH
@4,0SAY”請輸入單位或個人編號(<=10位)"GETMBHPICTUR
E"9999999999"
READ
MBH=TRIM(MBH)
SEEKMBH
MA=1
ELSE
SEEKMPZRB
MA=0
ENDIF
MPJH=TRIM(PJH)
SELECT8
USEDATA\WLZDYK
DELETEALL
PACK
SELECT4
DOWHILE.NOT.EOF()
SELECT8
APPENDBLANK
IFUPPER(D->QCLX)="J"
ZFH=1
ELSE
ZFH=-1
ENDIF
REPLACEZYWITHTRIM(D->DWMC)+”期初余額",JE3WITHD->Q
CYE*ZFH
MJE=JE3
MPJH=TRIM(D->PJH)
SELECT5
IFMA=1
LOCATEFORTRIM(PJH>TRIM(MBH).AND.LEN(TRIM(PJH))=LEN(TRI
M(MBH))
ELSE
LOCATEFORTRIM(PJH)=TRIM(D->PJH).AND.LEN(TRIM(PJH))=LEN(T
RIM(D->PJH))
ENDIF
DOWHILE.NOT.EOF()
SELECT8
APPENDBLANK
IFUPPER(E->PZRB)="S"
MPZRB="收"
ENDIF
IFUPPER(E->PZRB)="F"
MPZR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年電力檢測設備租賃與電力系統(tǒng)運行維護協(xié)議3篇
- 二零二五年度專業(yè)儲藏室租賃及冷鏈物流服務協(xié)議3篇
- 二零二五年度智能家居股東入股分紅與產(chǎn)品研發(fā)協(xié)議書3篇
- 乙方對甲方2024年環(huán)保設施施工建設的合同協(xié)議
- 2025年柴油加油站連鎖經(jīng)營合作協(xié)議4篇
- 2025年度環(huán)保型臨建場地使用權轉讓合同4篇
- 2025年樓頂場地體育設施租賃服務協(xié)議4篇
- 二零二五版股東一致行動人財務會計共享協(xié)議3篇
- 2025年度智能淋浴房定制化供應與安裝服務合同范本4篇
- 二零二四年農業(yè)銀行房屋抵押貸款購房合同3篇
- 領導溝通的藝術
- 發(fā)生用藥錯誤應急預案
- 南潯至臨安公路(南潯至練市段)公路工程環(huán)境影響報告
- 綠色貸款培訓課件
- 大學生預征對象登記表(樣表)
- 主管部門審核意見三篇
- 初中數(shù)學校本教材(完整版)
- 父母教育方式對幼兒社會性發(fā)展影響的研究
- 新課標人教版數(shù)學三年級上冊第八單元《分數(shù)的初步認識》教材解讀
- (人教版2019)數(shù)學必修第一冊 第三章 函數(shù)的概念與性質 復習課件
- 重慶市銅梁區(qū)2024屆數(shù)學八上期末檢測試題含解析
評論
0/150
提交評論