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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

會(huì)計(jì)軟件分析與設(shè)計(jì)

第一章帳務(wù)處理程序分析

學(xué)習(xí)目的與要求:

帳務(wù)核算系統(tǒng)是會(huì)計(jì)核算軟件中使用最為廣泛、最為重要的一個(gè)子系統(tǒng)。

本章以系統(tǒng)開發(fā)過程為主線,簡要介紹各過程的任務(wù)、要求及注意事項(xiàng)。

通過本章的學(xué)習(xí),要求讀者對(duì)帳務(wù)處理系統(tǒng)的開發(fā)過程及每個(gè)過程所涉

及的原理有一個(gè)初步的了解,明白各個(gè)過程完成的內(nèi)容及任務(wù)對(duì)以后工

作的重要性。

內(nèi)容提要

第一節(jié)會(huì)計(jì)工作現(xiàn)狀調(diào)查

一、系統(tǒng)工作狀況調(diào)查的要緊內(nèi)容

1、數(shù)據(jù)方面的調(diào)查。

2、處理內(nèi)容方面的調(diào)查。

3、專門事務(wù)方面的調(diào)查。

4、處理方式方面的調(diào)查。

5、代碼方面的調(diào)查。

二、企業(yè)通常采納的帳務(wù)處理程序

1、記帳憑證帳務(wù)處理程序

2、科目匯總表帳務(wù)處理程序

3、匯總記帳憑證帳務(wù)處理程序

4、多欄式日記帳務(wù)處理程序

三、會(huì)計(jì)工作狀況調(diào)查的意義

會(huì)計(jì)工作現(xiàn)狀調(diào)查是進(jìn)行系統(tǒng)初步設(shè)計(jì)的基礎(chǔ),如果會(huì)計(jì)工作現(xiàn)狀沒有調(diào)

查清晰就進(jìn)行系統(tǒng)

設(shè)計(jì),則可能顯現(xiàn)許多咨詢題,滿足不了用戶的需要和功能不全的咨詢題

就要使設(shè)計(jì)人員從頭再

來進(jìn)行系統(tǒng)的調(diào)查,因此,設(shè)計(jì)人員應(yīng)認(rèn)真對(duì)待調(diào)查工作。

第二節(jié)系統(tǒng)規(guī)劃

一、系統(tǒng)規(guī)劃的任務(wù)

按照現(xiàn)狀調(diào)查所獲得的資料,第一應(yīng)歸納出用戶的差不多需求,除滿足用

戶提

出的要求外,應(yīng)講明還有哪些附加功能,關(guān)于不能滿足的用戶要求要講明

因,所有的系統(tǒng)功能要清晰,在運(yùn)算機(jī)系統(tǒng)的配置,會(huì)計(jì)數(shù)據(jù)處理方法,

統(tǒng)開發(fā)的初步安排等方面進(jìn)行規(guī)劃,編寫需求分析講明書。

二、系統(tǒng)規(guī)劃的內(nèi)容

1、運(yùn)算機(jī)系統(tǒng)的配置方面。

2、在信息的處理方式方面。

3、在軟件開發(fā)打算方面。

第三節(jié)概要設(shè)計(jì)

一、概要設(shè)計(jì)的任務(wù)及意義

概要設(shè)計(jì)是在系統(tǒng)可行性分析之后,為實(shí)現(xiàn)系統(tǒng)進(jìn)行的技術(shù)設(shè)計(jì),概要設(shè)

計(jì)

工作的好壞,直截了當(dāng)阻礙到賽用的多少,開發(fā)進(jìn)度的快慢。

二、概要設(shè)計(jì)的內(nèi)容

1、系統(tǒng)要求。

2、系統(tǒng)目標(biāo)的確定。

3、環(huán)境設(shè)計(jì)。

4、通用性設(shè)計(jì)。

5、保密性設(shè)計(jì)。

6、可愛護(hù)性設(shè)計(jì)。

7、外部設(shè)計(jì)。

8、文件設(shè)計(jì)及其應(yīng)考慮的因素

數(shù)據(jù)的使用頻度;數(shù)據(jù)的差不多內(nèi)容;記錄格式;數(shù)據(jù)的流量;在某些時(shí)

下,是否有兩個(gè)及以上的程序使用數(shù)據(jù);占用文件時(shí),是對(duì)文件的全部記

錄進(jìn)行處理,依舊處理其中某一部分;文件及數(shù)據(jù)的保密度,承諾哪些人

存取數(shù)據(jù),承諾哪些人只讀或禁止訪咨詢;文件名。

第四節(jié)詳細(xì)設(shè)計(jì)

一、詳細(xì)設(shè)計(jì)的任務(wù)

1、對(duì)概要設(shè)計(jì)的功能模塊進(jìn)行過程描述,開發(fā)一個(gè)能夠直截了當(dāng)轉(zhuǎn)換成

程序語言

代碼的軟件表示,這種表示應(yīng)當(dāng)是無歧義且高度結(jié)構(gòu)化的。

2.為每個(gè)模塊建立一個(gè)“軟件開發(fā)卷宗”文件。

二、詳細(xì)設(shè)計(jì)時(shí)期的實(shí)施步驟

1、將概要設(shè)計(jì)產(chǎn)生的構(gòu)成軟件系統(tǒng)的各個(gè)功能模塊逐步細(xì)化,形成若干

個(gè)

程序模塊。

2、采納詳細(xì)設(shè)計(jì)工具對(duì)程序模塊進(jìn)行過程描述。

3、確定各個(gè)模塊間的詳細(xì)接口信息。

4、編寫“程序設(shè)計(jì)講明書

5、按完成標(biāo)志進(jìn)行評(píng)審,如未發(fā)覺專門咨詢題,則處理終止,否則而進(jìn)

修改,修改后再次評(píng)審,直至通過為止。

三、詳細(xì)設(shè)計(jì)的完成標(biāo)志

1、詳細(xì)地規(guī)定了各模塊之間的接口,包括參數(shù)的形式和傳遞方式,上下

層調(diào)用關(guān)系。

2、確定了模塊內(nèi)的算法及數(shù)據(jù)結(jié)構(gòu)。

四、過程的結(jié)構(gòu)化構(gòu)造

1、過程的結(jié)構(gòu)化與非結(jié)構(gòu)化

2、過程的結(jié)構(gòu)化應(yīng)遵循的原則

使用有限數(shù)量的差不多邏輯結(jié)構(gòu);利用差不多結(jié)構(gòu)將過程組成容易識(shí)別的

“塊;

每塊都有且只能有一個(gè)入口和一個(gè)出口;易于轉(zhuǎn)換成程序代碼;容易修改

設(shè)

計(jì)

五、詳細(xì)設(shè)計(jì)工具

1、圖形工具,以圖示方法描述模塊處理過程。

2、語言工具,有偽代碼或結(jié)構(gòu)化英語來描述數(shù)據(jù)和處理過程。

3、表格工具,用表格來表示詳細(xì)處理過程,這類工具適于處理邏輯十分

復(fù)雜

的條件和活動(dòng)間的關(guān)聯(lián)。

4、幾種常用的詳細(xì)設(shè)計(jì)工具:

流程圖;框圖;判定樹

第五節(jié)詳細(xì)設(shè)計(jì)交付的文件

一、程序設(shè)計(jì)講明書

程序設(shè)計(jì)講明書又稱詳細(xì)設(shè)計(jì)講明書。編制目的是講明一個(gè)軟件系統(tǒng)各層

次中的

每一個(gè)模塊的設(shè)計(jì)考慮,其應(yīng)考慮如下內(nèi)容:

1.編寫目的;2.程序系統(tǒng)的結(jié)構(gòu);3.程序設(shè)計(jì)講明(程序描述;功能;性能;

輸入項(xiàng);輸出項(xiàng);算法;流程邏輯;接口;存貯分配;注釋設(shè)計(jì);限制條

件;

測(cè)試打算;尚未解決的咨詢題)

二、模塊開發(fā)講明書

模塊開發(fā)講明書是在詳細(xì)設(shè)計(jì)講明書經(jīng)評(píng)審和批準(zhǔn)后建立的,并在模塊開

發(fā)過程

中逐步編寫出來,它是治理人員監(jiān)督開發(fā)進(jìn)度并為以后的愛護(hù)人員使用的

技術(shù)文

件,其要緊內(nèi)容如下:

標(biāo)題;模塊開發(fā)情形(時(shí)刻安排);功能講明;設(shè)計(jì)講明;源代碼清單;

測(cè)試講明;評(píng)審的結(jié)論

第二章用戶界面程序設(shè)計(jì)

學(xué)習(xí)目的與要求:

用戶界面確實(shí)是用戶與運(yùn)算機(jī)系統(tǒng)進(jìn)行相互交流數(shù)據(jù)與信息的一些接口規(guī)

#

氾,

用戶界面的友好性直截了當(dāng)關(guān)系到軟件系統(tǒng)的質(zhì)量。本章通過介紹數(shù)據(jù)輸

入界面、

菜單等有關(guān)內(nèi)容,講明在進(jìn)行系統(tǒng)友好界面設(shè)計(jì)時(shí)應(yīng)遵循的一些差不多規(guī)

則及

常用慣例,通過學(xué)習(xí),要求讀者把握菜單概念及菜單選擇的程序?qū)崿F(xiàn)。

內(nèi)容提要

第一節(jié)數(shù)據(jù)輸入界面設(shè)計(jì)

一、用戶界面及其設(shè)計(jì)要求

1、用戶界面這一術(shù)語指的是用戶和程序如何相互溝通,屏幕上的任何信

息、

文檔資料以及鍵盤輸入的命令差不多上用戶界面的一部分,對(duì)屏幕設(shè)置,

示、菜單和聯(lián)機(jī)關(guān)心信息設(shè)計(jì)的好壞決定著用戶界面是否高效、友好,

也決定著軟件是否能為用戶同意,最佳的用戶界面強(qiáng)調(diào)良好的屏幕設(shè)計(jì),

易于使用和用戶友好。

2、用戶界面設(shè)計(jì)時(shí)應(yīng)考慮的一樣原則:

必須集成于系統(tǒng)設(shè)計(jì)之中,而不最后加上;減少擊鍵次數(shù)來提升用戶效率;

推測(cè)用戶的下一步動(dòng)作;提供錯(cuò)誤信息來關(guān)心糾正錯(cuò)誤;

提供文檔來減少培訓(xùn)時(shí)刻;帶有關(guān)心信息;支持其它的輸入裝置。

二、輸入數(shù)據(jù)程序設(shè)計(jì)要遵循如下原則:

1、簡明性

2、一致性

3、完整性

4、使用顏色的原則

5、輸入格式

第二節(jié)菜單和命令設(shè)計(jì)

一、菜單及其功能

1、菜單系統(tǒng)將當(dāng)前承諾用戶選擇操作的功能名稱在屏幕上顯示出來,讓

用戶

選擇并完成該功能的一種用戶界面形式。

2、菜單的功能

?使不熟練的的用戶熟練軟件,即表述其功能和特性

?提供可選項(xiàng)的清單

?簡化選擇,從而防止產(chǎn)生錯(cuò)誤

?降低訓(xùn)練費(fèi)用,因?yàn)椴藛我徊讲揭龑?dǎo)用戶完成任務(wù)

-減少用戶的經(jīng)歷負(fù)擔(dān)

二、菜單式樣

1、水平上托式菜單。

2、豎直上托式。

3、下拉菜單。

4、全屏幕菜單。

5、圖標(biāo)式菜單(類WINDOWS風(fēng)格)。

三、菜單設(shè)計(jì)的考慮及權(quán)衡

1、設(shè)計(jì)按下ESC鍵將操縱返回到上一級(jí)菜單。

2、同時(shí)提供亮條選擇菜單及字母菜單選擇。

3、考慮用戶擁有使用過的其它軟件的菜單風(fēng)格。

4、提供快捷選擇。

四、菜單設(shè)計(jì)原則

1、菜單設(shè)計(jì)所使用的名稱要前后一致。

2、減少選項(xiàng)的數(shù)目,一樣不要超過8項(xiàng)。

3、減少菜單級(jí)數(shù)的數(shù)目,一樣不要超過4級(jí)。

4、提供快速返回鍵。

5、菜單選項(xiàng)的選項(xiàng)內(nèi)容易于懂得,一樣不要使用技術(shù)性強(qiáng)的術(shù)語。

第四第用戶界面程序設(shè)計(jì)舉例

一、下拉式菜單設(shè)計(jì)舉例

CLEAR

DOWHILE.T.

@1,1PROMPT"憑證輸入”

@1,10PROMPT“查詢”

@1,20PROMPT“記帳”

@1,30PROMPT“打印”

@1,40PROMPT“系統(tǒng)設(shè)置”

@1,50PROMPT“月末結(jié)轉(zhuǎn)”

@1,60PROMPT“數(shù)據(jù)庫愛護(hù)”

@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,領(lǐng)料單輸入”

@7,3PROMPT“3,修改采購單”

@8,3PROMPT“4,修改領(lǐng)料單”

@9,3PROMPT“0,退出”

MENUTOCHOI

DOCASE

ENDCASE

ENDCASE

ENDDO

二、全屏幕菜單設(shè)計(jì)舉例

三、全屏幕菜單設(shè)計(jì)舉例2

第四章憑證處理程序分析與設(shè)計(jì)

第一節(jié)憑證的手工處理

一、憑證的分類

1、憑證一樣分為原始憑證和記帳憑證

2、記帳憑證一樣分為收款憑證、付款憑證和轉(zhuǎn)帳憑證。

記帳憑證一樣具有以下內(nèi)容:

1.憑證的名稱。

2.填制憑證的日期和編號(hào)。

3.經(jīng)濟(jì)業(yè)務(wù)的內(nèi)容摘要。

4.經(jīng)濟(jì)業(yè)務(wù)的金額。

5.填制憑證的單位及有關(guān)人員。

6.應(yīng)借應(yīng)貸帳戶的名稱。

7.所附原始憑證的張數(shù)和過帳備注。

二、會(huì)計(jì)人員對(duì)記帳憑證的處理程序大至如下:

1.按照原始憑證填制記帳憑證;

2.審核憑證,審查其合法性、正確性;

3.修改憑證,對(duì)錯(cuò)誤的憑證進(jìn)行修改;

4.查閱憑證,查閱已填制的憑證;

5.傳遞憑證,從填制或取得會(huì)計(jì)憑證到將其歸檔儲(chǔ)存為止,在有關(guān)業(yè)務(wù)部門

間按照規(guī)定的時(shí)刻,路線傳遞處理的程序。

第二節(jié)電算化憑證處理

一、電算化憑證處理的功能

1.錄入為用戶提供:

顯示憑證表格;靈活的編輯手段;儲(chǔ)存用戶錄入的憑證;

提供一定的檢控功能;返回主控模塊;

2.查詢?yōu)橛脩籼峁?/p>

用戶查詢某個(gè)特定憑證;按憑證編號(hào)查詢;

按任一條件查詢滿足條件的第一張憑證;

按任意組合條件查詢滿足條件的第一張憑證(憑證編號(hào)不能參加條件組合);

用戶查詢多張憑證;

按任一條件逐個(gè)查詢滿足條件的憑證;

按任意組合條件逐個(gè)查詢滿足條件的憑證;

暫存查詢信息;

3、修改及刪除

4、憑證輸出

二、電算化憑證處理與手工憑證處理的區(qū)別:

1.信息項(xiàng)不完全相同

2.憑證的編號(hào)方法不一樣

3.儲(chǔ)備形式不同

4.儲(chǔ)備空間的利用率不一樣

第三節(jié)憑證處理程序的安全可靠性

一、憑證出錯(cuò)的來源

1、人為造成

2、(系統(tǒng))處理程序出錯(cuò)。

3、電算化憑證處理模塊的安全可靠性操縱的措施:

L嚴(yán)格的多級(jí)安全操縱用戶級(jí);憑證級(jí)

2.全方位的錄入檢測(cè)

二、數(shù)據(jù)安全可靠性的實(shí)施措施

1、邏輯校驗(yàn)法利用數(shù)據(jù)間的邏輯關(guān)系

2、平穩(wěn)校驗(yàn)法利用“有借必有貸,借貸必相等”的會(huì)計(jì)差不多準(zhǔn)則。

3、查詢校驗(yàn)法利用數(shù)據(jù)的相對(duì)穩(wěn)固性

4、關(guān)聯(lián)校驗(yàn)法利用憑證數(shù)據(jù)的對(duì)應(yīng)不可能性

5、重復(fù)校驗(yàn)法利用概率統(tǒng)計(jì)的原理

第四節(jié)憑證處理程序的設(shè)計(jì)

一、系統(tǒng)應(yīng)滿足的要求

1.穩(wěn)固性

系統(tǒng)應(yīng)能保證所有的處理穩(wěn)固、處理的結(jié)果不隨時(shí)刻波動(dòng),僅僅依靠于輸

入。

2.一致性

系統(tǒng)內(nèi)的數(shù)據(jù)必須保持一致。

3.良好的用戶界面

用戶界面要求方便適用、美觀簡潔。

4.靈活性

不受時(shí)刻、過程的限制。

5.完備性

提供一切有關(guān)憑證處理的功能,并加以強(qiáng)化。

6.快速

二、憑證處理模塊的設(shè)計(jì)

第五節(jié)憑證處理程序的實(shí)現(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"重號(hào),按任意鍵重新輸入”

WAIT""

DEACWINDPZSR1

LOOP

ENDIF

SELECT2

SEEK"&BH1"+"S"

IF.NOT.EOFO

ACTIWINDPZSR1

@0,1SAY”重號(hào),按任意鍵重新輸入”

WAIT""

DEACWINDPZSR1

LOOP

ENDIF

ENDIF

SELE1

IFLEN(TRIM(BH1))<4

ACTIWINDPZSR1

@0,1SAY”編號(hào)長度不夠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"借方科目錯(cuò),按任意鍵重新輸入”

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”輸入金額錯(cuò),按任意鍵連續(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))+"貸方科目代碼錯(cuò),按任意鍵重新輸入

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"編號(hào):"+TRIM(XMH(I))+"錯(cuò),按任意鍵重新輸入"

WAIT""

DEACWINDPZSR1

FLAG3=1

EXIT

ENDIF

IFLEN(TRIM(XMH(I)))<>LEN(TRIM(PJH))

ACTIWINDPZSR1

@0,1SAY"編號(hào):"+TRIM(XMH⑴)+"錯(cuò),按任意鍵重新輸入"

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"請(qǐng)檢查錄入憑證正確否?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"還有同號(hào)憑證否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

*生成憑證號(hào)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按憑證號(hào)查詢"

@4,3PROMPT"3按科目碼查詢"

@5,3PROMPT"4按金額查詢"

@6,3PROMPT"5按組合條件查詢"

@7,3PROMPT"6查詢期限發(fā)生額"

@8,3PROMPT"0退出"

@10,2SAY"請(qǐng)選擇"

MENUTOCH

DEACWINDPZCX

B12=DATE()

Bll=DATE()

Il=1

DOCASE

CASECH=1

DOWHILE.T.

ACTIWINDPZCX1

@0,0SAY"輸入查詢?nèi)掌谇螅喝罩寥?/p>

@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"請(qǐng)輸入查詢憑證號(hào):號(hào)至號(hào)"

@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”請(qǐng)輸入查詢科目編碼:"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”請(qǐng)輸入查詢金額:"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"憑證號(hào)號(hào)至號(hào)"

@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”請(qǐng)輸入查詢科目代碼:"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"請(qǐng)輸入查詢期限從日至日"

@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="轉(zhuǎn)帳"

ENDIF

ENDIF

@1,35SAYLX+"憑證"

LINE1="單位:"+TRIM(MDWMC)+""+NN+"年"+YY+"月"+RR+"日"+"

第"+BH+"號(hào)"

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

第五章登記帳簿程序分析與設(shè)計(jì)

第一節(jié)登記帳簿程序分析

在憑證輸入終止后即需要用憑證數(shù)據(jù)來更新科目余額文件中相應(yīng)科目的發(fā)

生額數(shù)

據(jù)項(xiàng)和累計(jì)發(fā)生額數(shù)據(jù)項(xiàng),并運(yùn)算出期末余額數(shù)據(jù)項(xiàng),由于憑證數(shù)據(jù)中相

同科目

的業(yè)務(wù)不止一筆,因此,在更新數(shù)據(jù)之前,即要將憑證數(shù)據(jù)按科目代碼進(jìn)

行匯總

,將匯總的結(jié)果來對(duì)科目余額文件中相應(yīng)的科目余額數(shù)據(jù)項(xiàng)進(jìn)行更新操作,

從而

形成最新的科目余額數(shù)據(jù),然后按照逐級(jí)匯總的方法,下級(jí)科目匯總后生

成上級(jí)

科目余額數(shù)據(jù),這確實(shí)是登記帳薄的過程。那個(gè)過程有兩個(gè)要緊步驟,一

是憑證匯

總,二是按科目逐級(jí)匯總。

只有明細(xì)科目的數(shù)據(jù)是從臨時(shí)匯總庫得到的,其它的數(shù)據(jù)差不多上由下級(jí)

科目經(jīng)匯總

后得到的,在登記帳薄程序中所要用到的數(shù)據(jù)庫有PZKHC.DBF文件(未登

帳憑證數(shù)

據(jù))、KMYE.DBF(科目余額)、DMMCK.DBF(單位往來帳余額文件)和PZK.

DBF(已登帳

憑證文件),另外確實(shí)是一些臨時(shí)用匯總文件,臨時(shí)用匯總文件的文件結(jié)構(gòu)

與憑證庫

文件結(jié)構(gòu)相同,這些文件的內(nèi)容如下所示:

憑證庫文件結(jié)構(gòu)

1RQ日期D8

2BH憑證號(hào)C4

3KMDM科目代碼C11322:2:2與科目代碼庫的內(nèi)容一致

4ZY摘要C24

5JE金額N122

6FDJ附單據(jù)N2

7PZRB憑證類別C1S,F,Z

8JD借貸C1J,D

9PJH單位代碼C10與單位往來帳的一致

科目余額庫文件結(jié)構(gòu)

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(借方累計(jì))數(shù)值型142

11DFLJ(貸方累計(jì))數(shù)值型142

12QMYE(期末余額)數(shù)值型142

13QMLX(期末類型)字符型1J,D

14KMRB(科目待征)字符型1H匯總型,M明細(xì)型

單位往來帳文件結(jié)構(gòu)

1PJH單位編號(hào)字符型10

2DWMC單位名稱字符型24

3QCYE期初余額數(shù)字型122

4QCLX期初類型字符型1

5JFF借方發(fā)生額數(shù)字型122

6DFF貸方發(fā)生額數(shù)字型122

7JFLJ借方累計(jì)額數(shù)字型122

8DFLJ貸方累計(jì)額數(shù)字型122

9QMYE期末余額數(shù)字型122

10QMLX期末類型字符型1

第二節(jié)登記帳薄程序設(shè)計(jì)

文件被打開的工作區(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”登計(jì)帳簿否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”正在進(jìn)行匯總"+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"此次做帳不成功,請(qǐng)檢查憑證,按任意鍵退出"

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"正在匯總余額文件的累計(jì)發(fā)生額

DOGXFSEWITH"LJ",PH

@6,1SAY"正在更新余額文件的期末數(shù)據(jù)

DOGXQM1

@7,1SAY"正在匯總往來帳本期發(fā)生額

DOGXFSE1WITH"F"

@8,1SAY"正在匯總往來帳累計(jì)發(fā)生額

DOGXFSE1WITH"LJ"

@9,1SAY"正在匯總往來帳期末發(fā)生額

DOGXQM2

SELECT2

APPENDFROMDATA\PZKHC

REINDEX

SELE1

ZAP

@10,1SAY"對(duì)科目余額文件進(jìn)行備份!"

SELE9

USEBAK\KMYEBFINDEBAK\KMYEBF1

ZAP

APPEFROMDATA\KMYE

@10,1SAY"對(duì)記帳憑證文件進(jìn)行備份!"

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

更新上級(jí)發(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

第六章帳簿打印程序分析與設(shè)計(jì)

第一節(jié)帳簿數(shù)據(jù)的生成過程

一、三欄式明細(xì)帳數(shù)據(jù)的生成過程

在帳簿打印程序中數(shù)據(jù)來自兩個(gè)數(shù)據(jù)文件一一憑證庫和科目余額庫,而明

細(xì)

帳的結(jié)構(gòu)是:如果本明細(xì)帳存在期初余額,則生成所需的明細(xì)帳數(shù)據(jù)庫的

一行應(yīng)從科目余額庫中取出相應(yīng)科目的期初余額,如果余額為零,則明細(xì)

數(shù)

據(jù)庫中就不需要設(shè)置“期初余額”這一條記錄,接下來的明細(xì)數(shù)據(jù)就要從

證庫中去取,憑證庫中的金額是在借方則憑證數(shù)據(jù)轉(zhuǎn)存到明細(xì)帳數(shù)據(jù)庫的

方金額項(xiàng),否則轉(zhuǎn)存到貸方金額項(xiàng),依此規(guī)定取出全部符合要求的憑證數(shù)

據(jù)

,最后還要從科目余額庫中取出本明細(xì)帳的期末余額(如果需要還要取出本

累計(jì)發(fā)生額數(shù)據(jù)項(xiàng))

二、單位往來帳數(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”請(qǐng)輸入往來帳科目:"GETMPZRBPICTURE"99999"

@1,0SAY”請(qǐng)輸入往來帳名稱:"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"科目錯(cuò),按任意鍵連續(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"科目名稱錯(cuò),按任意鍵連續(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”查詢某個(gè)單位或個(gè)人否Y/N?"GETMXPICTURE"X"

READ

SELECT4

IFUPPER(MX)="Y"

STORESPACE(IO)TOMBH

@4,0SAY”請(qǐng)輸入單位或個(gè)人編號(hào)(<=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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論