會計軟件分析與設計_第1頁
會計軟件分析與設計_第2頁
會計軟件分析與設計_第3頁
會計軟件分析與設計_第4頁
會計軟件分析與設計_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計軟件分析與設計

第一章帳務處理程序分析

學習目的與要求:

帳務核算系統(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論