版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年5月29日会计软件分析与设计文档仅供参考会计软件分析与设计
第一章帐务处理程序分析
学习目的与要求:
帐务核算系统是会计核算软件中使用最为广泛、最为重要的一个子系统。
本章以系统开发过程为主线,简要介绍各过程的任务、要求及注意事项。
经过本章的学习,要求读者对帐务处理系统的开发过程及每个过程所涉
及的原理有一个初步的了解,明白各个过程完成的内容及任务对以后工
作的重要性。
内容提要
第一节会计工作现状调查
一、系统工作状况调查的主要内容
1、数据方面的调查。
2、处理内容方面的调查。
3、特殊事务方面的调查。
4、处理方式方面的调查。
5、代码方面的调查。
二、企业一般采用的帐务处理程序
1、记帐凭证帐务处理程序
2、科目汇总表帐务处理程序
3、汇总记帐凭证帐务处理程序
4、多栏式日记帐务处理程序
三、会计工作状况调查的意义
会计工作现状调查是进行系统初步设计的基础,如果会计工作现状没有调查清楚就进行系统
设计,则可能出现许多问题,满足不了用户的需要和功能不全的问题就要使设计人员从头再
来进行系统的调查,因此,设计人员应认真对待调查工作。
第二节系统规划
一、系统规划的任务
根据现状调查所获得的资料,首先应归纳出用户的基本需求,除满足用户提
出的要求外,应说明还有哪些附加功能,对于不能满足的用户要求要说明原
因,所有的系统功能要清楚,在计算机系统的配置,会计数据处理方法,系
统开发的初步安排等方面进行规划,编写需求分析说明书。
二、系统规划的内容
1、计算机系统的配置方面。
2、在信息的处理方式方面。
3、在软件开发计划方面。
第三节概要设计
一、概要设计的任务及意义
概要设计是在系统可行性分析之后,为实现系统进行的技术设计,概要设计
工作的好坏,直接影响到费用的多少,开发进度的快慢。
二、概要设计的内容
1、系统要求。
2、系统目标的确定。
3、环境设计。
4、通用性设计。
5、保密性设计。
6、可维护性设计。
7、外部设计。
8、文件设计及其应考虑的因素
数据的使用频度;数据的基本内容;记录格式;数据的流量;在某些时刻
下,是否有两个及以上的程序使用数据;占用文件时,是对文件的全部记
录进行处理,还是处理其中某一部分;文件及数据的保密度,允许哪些人
存取数据,允许哪些人只读或禁止访问;文件名。
第四节详细设计
一、详细设计的任务
1、对概要设计的功能模块进行过程描述,开发一个能够直接转换成程序语言
代码的软件表示,这种表示应当是无歧义且高度结构化的。
2.为每个模块建立一个”软件开发卷宗”文件。
二、详细设计阶段的实施步骤
1、将概要设计产生的构成软件系统的各个功能模块逐步细化,形成若干个
程序模块。
2、采用详细设计工具对程序模块进行过程描述。
3、确定各个模块间的详细接口信息。
4、编写”程序设计说明书”。
5、按完成标志进行评审,如未发现异常问题,则处理结束,否则而进行
修改,修改后再次评审,直至经过为止。
三、详细设计的完成标志
1、详细地规定了各模块之间的接口,包括参数的形式和传递方式,上下
层调用关系。
2、确定了模块内的算法及数据结构。
四、过程的结构化构造
1、过程的结构化与非结构化
2、过程的结构化应遵循的原则
使用有限数量的基本逻辑结构;利用基本结构将过程组成容易识别的”块”;
每块都有且只能有一个入口和一个出口;易于转换成程序代码;容易修改设
计
五、详细设计工具
1、图形工具,以图示方法描述模块处理过程。
2、语言工具,有伪代码或结构化英语来描述数据和处理过程。
3、表格工具,用表格来表示详细处理过程,这类工具适于处理逻辑十分复杂
的条件和活动间的关联。
4、几种常见的详细设计工具:
流程图;框图;判定树
第五节详细设计交付的文件
一、程序设计说明书
程序设计说明书又称详细设计说明书。编制目的是说明一个软件系统各层次中的
每一个模块的设计考虑,其应考虑如下内容:
1.编写目的;2.程序系统的结构;3.程序设计说明(程序描述;功能;性能;
输入项;输出项;算法;流程逻辑;接口;存贮分配;注释设计;限制条件;
测试计划;尚未解决的问题)
二、模块开发说明书
模块开发说明书是在详细设计说明书经评审和批准后建立的,并在模块开发过程
中逐步编写出来,它是管理人员监督开发进度并为以后的维护人员使用的技术文
件,其主要内容如下:
标题;模块开发情况(时间安排);功能说明;设计说明;源代码清单;
测试说明;评审的结论
第二章用户界面程序设计
学习目的与要求:
用户界面就是用户与计算机系统进行相互交流数据与信息的一些接口规范,
用户界面的友好性直接关系到软件系统的质量。本章经过介绍数据输入界面、
菜单等有关内容,说明在进行系统友好界面设计时应遵循的一些基本规则及
常见惯例,经过学习,要求读者掌握菜单概念及菜单选择的程序实现。
内容提要
第一节数据输入界面设计
一、用户界面及其设计要求
1、用户界面这一术语指的是用户和程序如何相互沟通,屏幕上的任何信息、
文档资料以及键盘输入的命令都是用户界面的一部分,对屏幕设置,提
示、菜单和联机帮助信息设计的好坏决定着用户界面是否高效、友好,
也决定着软件是否能为用户接受,最佳的用户界面强调良好的屏幕设计,
易于使用和用户友好。
2、用户界面设计时应考虑的一般原则:
必须集成于系统设计之中,而不最后加上;减少击键次数来提高用户效率;
预测用户的下一步动作;提供错误信息来帮助纠正错误;
提供文档来减少培训时间;带有帮助信息;支持其它的输入装置。
二、输入数据程序设计要遵循如下原则:
1、简明性
2、一致性
3、完整性
4、使用颜色的原则
5、输入格式
第二节菜单和命令设计
一、菜单及其功能
1、菜单系统将当前允许用户选择操作的功能名称在屏幕上显示出来,让用户
选择并完成该功能的一种用户界面形式。
2、菜单的功能
·使不熟练的的用户熟练软件,即表述其功能和特性
·提供可选项的清单
·简化选择,从而防止产生错误
·降低训练费用,因为菜单一步步引导用户完成任务
·减少用户的记忆负担
二、菜单式样
1、水平上托式菜单。
2、竖直上托式。
3、下拉菜单。
4、全屏幕菜单。
5、图标式菜单(类WINDOWS风格)。
三、菜单设计的考虑及权衡
1、设计按下ESC键将控制返回到上一级菜单。
2、同时提供亮条选择菜单及字母菜单选择。
3、考虑用户拥有使用过的其它软件的菜单风格。
4、提供快捷选择。
四、菜单设计原则
1、菜单设计所使用的名称要前后一致。
2、减少选项的数目,一般不要超过8项。
3、减少菜单级数的数目,一般不要超过4级。
4、提供快速返回键。
5、菜单选项的选项内容易于理解,一般不要使用技术性强的术语。
第四第用户界面程序设计举例
一、下拉式菜单设计举例
CLEAR
DOWHILE.T.
@1,1PROMPT"凭证输入”
@1,10PROMPT”查询”
@1,20PROMPT”记帐”
@1,30PROMPT”打印”
@1,40PROMPT”系统设置”
@1,50PROMPT”月末结转”
@1,60PROMPT”数据库维护”
@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,退出”
MENUTOCHO1
DOCASE
······
ENDCASE
······
ENDCASE
ENDDO
二、全屏幕菜单设计举例
三、全屏幕菜单设计举例2
第三章系统设置程序程序分析与设计
学习目的与要求:
本章介绍系统设置模块中的系统人员管理、科目设置与管理、自动转帐设置、
银行对账设置等功能模块的有关内容。经过本章的学习,要求读者对口令设置及
校验、科目代码设置的意义、科目代码增删的有关原则、自动转帐设置的原理、
银行对账设制的原理及实现要有一定的理解。
内容提要
第一节系统人员管理及口令设置
一、系统人员管理
1、系统人员管理的意义
2、在帐务处理系统可设立如下一些岗位,各自具有一定的权限范围:
(1)系统管理:可进行科目代码设置,系统人员管理、结帐、数据管理
等功能的操作。
(2)制单:可进行会计凭证的录入操作。
(3)复核:可进行会计凭证的复核操作。
(4)修改:可进行会计凭证的修改操作;
(5)处理:可进行记帐、对帐等操作;
(6)打印:可进行打印输出各种帐、证、表的操作。
3、人员设置数据库中应设置的数据项。
二、口令的设置与修改。
*口令修改模块
SETTALKOFF
CLEAR
IFFILE(”KL.DBF”)
RESTOREFROMKL.DBFADDI
ENDTF
JX=Y
DOWHILEJX
KL="KL"+LTRIM(STR(K,3))
KLM="KLM"+LTRIM(STR(K,3))
IFTYPE("&KLM")=UPPER("C")
STOREUPPER("AAA")TO&KL
STORESPACE(30)TO&KLM
ELSE
STORE&KLM+SPAC(30-LFN(&KLM))TO&KLM
ENDIF
STORECHR(ASC(SUBS(&KL、1、1))+50)+CHR(ASC(SUBS(&KL、2、1))+45);
+CHP(ASC(SUBS(&KL、3、1))+40)TO&KL
CLEAR
@1,30SAY”修改口令”+STR(K,2)
@3,5SAY”原口令名为:”+&KLM
@3,50SAY”原口令为”+&KL
@5,5SAY”口令名改为:”GET&KLM
@5,50SAY”改口令为:”GET&KL
@8,32SAY”继续修改?”GETJXPICTURE"Y"
READ
STORETRIM(&KLM)TO&KLM
STORECHR(ASC(SUBS(&KL,1,1))-50)+CHR(ASC(SUBS(&KL2.1))-45);
+CHR(ASC(SUBS(&KL3.1))-40)TO&KL
K=K+1
ENDDO
SAVETOKL.DBFALLLIKEKL*
RETURN
三、口令校验程序的设计应注意以下一些问题:
1、口令明码不能显示。
2、口令输入允许一定的出错次数。
3、口令密码的检验能够采用通用模块完成。
4、口令明码长度有一定的要求。
5、口令输入出错时的处理要恰当。
第二节科目设置与管理
一、设置科目代码的意义
1、便于反映会计科目间的逻辑关系,便于分类、检索、加快计算机处理速度,
利用会计科目代码的不同位数,能够反映会计科目间的逻辑关系。
2、减少数据含义的不确定性。
3、能够节省存储单元、提高运算速度和正确性。
4、便于输入。
二、科目代码的设置要求和编码方式
1、科目代码设置要求
适合计算机处理;简明实用;要有系统性(一级科目代码位长3位,代码
首位为1表示资产类科目;2表示负债类科目;3表示所有者权益类科目;
4表示成本类科目;5表示损益类科目);要有扩展性;单义性。
2、编码方式
会计科目的编码方式,一般采用群码,组码和顺序码等相结合的编码方式。
三、科目代码设置
1、科目代码设置主控模块
该模块是科目代码设置的主控模块,用户能够根据需求分别选择科目代码
的增、删、改、查询、打印等功能,退出模块前,应根据总分类帐户与明
细帐户平行登记的原理,将各明细科目自下向上逐级汇总,进行核对,判
断总分类帐户的金额与其所属各明细分类帐户金额的合计数是否相等;还
应根据资产等于负债加所有者权益的平衡关系,核对所有科目的借方余额
是否等于贷方余额,以确保输入数据的正确性。
2、增加科目的内容及注意事项
应包括的内容主要有:科目代码、科目名称、科目级别、科目类别、余额
方向,年初余额、期初余额、借方发生额、贷方发生额、借方累计发生额、
贷方累计发生额。系统正常运行时,如果某科目已记帐,在该科目下级增
加新的明细科目,应考虑该科目下级各明细科目金额的合计数是否与该科
目的金额相等。
3、科目代码设置主控模块
DEFIWINDZWSZ2FROM4,28TO15,50SHADCOLOSCHE14
DOWHILE.T.
ACTIWINDZWSZ2
@0,2SAY"科目维护控制模块"
@2,5PROMPT"1:增加科目"
@3,5PROMPT"2:单项查询"
@4,5PROMPT"3:删除科目"
@5,5PROMPT"4:修改科目"
@6,5PROMPT"5:全屏查询"
@7,5PROMPT"6:打印科目表"
@8,5PROMPT"0:退出"
@9,2SAY"请选择"
MENUTOCHO
DEACWINDZWSZ2
DOCASE
CASECHO=1
DOZWSZ21
CASECHO=2
DOKMBRO
CASECHO=3
DOKMDE
CASECHO=4
DOKMXG
CASECHO=5
DOKMBRO1
CASECHO=6
DOK2D
CASECHO=7
EXIT
ENDCASE
ENDDO
DEACWINDZWSZ2
RETURN
4、增加科目的程序实现
5、修改科目模块程序设计时应考虑的问题主要有:
为方便操作、修改方式既可单一科目修改,也可对科目余额表进行浏览修改;
被修改的科目应该没有被登帐,没有发生额和余额,避免造成会计核算的数
据丢失或失真。
6、删除科目
用于删除无用的科目,既可是一级科目或控制科目,也可是明细科目。删除
科目模块程序设计时考虑的问题主要有:
1.如果删除的是明细科目,则要求该明细科目既无余额,也无发生额。
2.若是一级科目(总帐科目)或控制性科目,则要求该科目本身,及其所
属的所有明细科目都没有余额和发生额,且该一级科目或控制性科目被
删除后,其所属的所有明细科目也自动被删除。
第三节自动转帐设置
一、自动转帐及其意义
1、自动转帐
2、机制凭证
3、自动转帐分录
4、为什么要进行自动转帐设置
二、自动转帐分录的分类
1、第一类自动转帐分录其金额的大小与本月发生的任何经济业务无关,称为独立
自动分录。独立自动分录能够在任何时候用于编制机制凭证,即能够在月初使
用,也可能在月末使用。
2、第二类自动转帐分录其金额的大小与本月发生的业务有关,称为相关自动分录。
相关自动分录只能在某些相关的经济业务发生后才能用来编制机制凭证。
三、自动转帐分录的定义
1、自动转帐分录文件的结构
1、自动转帐分录的定义
第四节银行对帐的设计
一、未达账项的类型及产生原因
1、未达账项的类型:
银收我未收未达帐项;银付我未付未达帐项;
我收银未收未达帐项;我付银未付未达帐项。
2、未达账项的产生原因:
时间上的延误;记录上的错误。
二、银行对账模块应设置的功能
1、输入对帐单。经过此功能,把银行给企事业单位的对帐单输入计算机,
存入”对帐单文件”。
2、初始银行未达帐项录入。经过此模块,把使用计算机辅助对帐前已存在的
我有银无业务从银行存款余额调节表上摘录下来,存入”银行日记帐未达
帐项文件”。
3、自动银行对帐。由计算机自动在”对帐单文件”和”银行日记帐未达帐项
文件”中寻找完全相同的经济业务予以核销,所谓完全相同的经济业务是
指经济业务发生的时间、内容、摘要、结算票据号、金额都相同的经济业
务,由于同一笔业务在银行和单位日记帐上分别由不同的人记载,经济业
务发生的时间,摘要等不可能一模一样,因此比较经济业务是否相同的标
准(也称匹配标准)只有票据号(如:支票号)和金额,对于没有票据号的经
济业务,只能看金额是否相同,一般情况下,可由计算机先比较票据号和
金额,核销掉相同的经济业务,剩下的经济业务再用金额作匹配标准进行
匹配。
无论同时用票据号和金额作匹配标准,还是只用金额作匹配标准,都可能
有下列几种可能:
1.”对帐单文件”中一条业务记录只和”银行日记帐未达帐项”文件
中一条业务记录相同。
2.”对帐单文件”中一条业务记录和”银行日记帐未达帐项文件”中
多条业务记录相同。
3.”对帐单文件”中多条业务记录和”银行日记帐未达帐项文件”中
一条业务记录相同。
4.”对帐单文件”中多条业务记录和”银行日记帐未达帐项文件”中
多条业务记录相同。
4、手工核销未达帐项
有些经济业务是不可能经过”自动银行对帐”模块核销的,只能用强制的
方式由人工核销。
四、银行对帐主程序
DEFIWINDZHDZDSRFROM4,30TO12,50SHADCOLOSCHE14
DOWHILE.T.
ACTIWINDZHDZDSR
B1=2
@0,2SAY"对帐单处理"
@1,B1PROMPT"录入银行对帐单"
@2,B1PROMPT"查询修改对帐单"
@3,B1PROMPT"打印银行对帐单"
@4,B1PROMPT"生成银行调节表"
@5,B1PROMPT"返回"
MENUTOYHDZ
DOCASE
CASEYHDZ=1
DOZHSR
CASEYHDZ=2
DOZHCX
CASEYHDZ=3
DEACWINDZHDZDSR
DOZHDY
ACTIWINDZHDZDSR
CASEYHDZ=4
DEACWINDZHDZDSR
DOSCDZD
ACTIWINDZHDZDSR
CASEYHDZ=5
EXIT
ENDCASE
ENDDO
DEACWINDZHDZDSR
RETU
五、对帐单输入程序
DEFIWINDZHSR1FROM2,12TO17,68SHADCOLOSCHE14
DEFIWINDZHSR2FROM18,20TO20,60SHADCOLOSCHE12
DEFIWINDZHSR3FROM18,20TO20,60SHADCOLOSCHE14
ACTIWINDZHSR2
MY="N"
@0,0SAY"银行对帐单数据将丢失!继续否Y/N?"GETMY
READ
DEACWINDZHSR2
IFUPPE(MY)<>"Y"
RETU
ENDI
ACTIWINDZHSR3
@0,0SAY"帐号和金额同时为空则退出"
SELE10
USEDATA\ZHDZBINDEDATA\ZHDZB1
SELE9
USEDATA\ZHSRINDEDATA\ZHSR1
ZAP
DIMEMJE1(10),MJE2(10),MZH(10)
DOWHILE.T.
I=1
DOWHILEI<=10
STOR0.00TOMJE1(I),MJE2(I)
STORSPACE(20)TOMZH(I)
I=I+1
ENDD
I=1
MZJE=0.0
ACTIWINDZHSR1
@0,0SAY"银行对帐单"
@1,4SAY"请输入总金额"GETMZJEPICT".99"
@2,1SAY"==============================="
@3,1SAY"帐号收入付出"
DOWHILEI<=10
@I+3,1GETMZH(I)
@I+3,25GETMJE1(I)
@I+3,40GETMJE2(I)
READ
IFLEN(TRIM(MZH(I)))=0.AND.(MJE1(I)=0.OR.MJE2(I)=0)
DEACWINDZHSR1
DEACWINDZHSR3
SELE9
USE
SELE10
USE
RETU
ENDI
SELE10
SEEKTRIM(MZH(I))
IFEOF()
ACTIWINDZHSR2
@0,0SAY"帐号错,按任意继续!"
WAIT""
MJE1(I)=0
MJE2(2)=0
MZH(I)=SPACE(20)
DEACWINDZHSR2
LOOP
ENDI
SELE9
APPEBLAN
REPLZHWITHMZH(I),JE1WITHMJE1(I),JE2WITHMJE2(I)
REPLZJEWITHMZJE
I=I+1
ENDD
DEACWINDZHSR1
ACTIWINDZHSR3
MX="Y"
@0,0SAYSPACE(55)
@0,0SAY"继续输入否Y/N?"GETMX
READ
DEACWINDZHSR3
IFUPPE(MX)<>"Y"
SELE10
USE
SELE9
USE
RETU
ELSE
LOOP
ENDI
ENDD
习题:
1.试编写”科目代码设置”主控模块的程序。
2.试编写”修改科目”模块的程序。
3.试编写”删除科目”模块的程序。
4.如果口令存放于数据库中,”口令设置”和”口第四章凭证处理程序分析与设计
第一节凭证的手工处理
一、凭证的分类
1、凭证一般分为原始凭证和记帐凭证
2、记帐凭证一般分为收款凭证、付款凭证和转帐凭证。
记帐凭证一般具有以下内容:
1.凭证的名称。
2.填制凭证的日期和编号。
3.经济业务的内容摘要。
4.经济业务的金额。
5.填制凭证的单位及有关人员。
6.应借应贷帐户的名称。
7.所附原始凭证的张数和过帐备注。
二、会计人员对记帐凭证的处理程序大至如下:
1.根据原始凭证填制记帐凭证;
2.审核凭证,审查其合法性、正确性;
3.修改凭证,对错误的凭证进行修改;
4.查阅凭证,查阅已填制的凭证;
5.传递凭证,从填制或取得会计凭证到将其归档保存为止,在有关业务部门之
间按照规定的时间,路线传递处理的程序。
第二节电算化凭证处理
一、电算化凭证处理的功能
1.录入为用户提供:
显示凭证表格;灵活的编辑手段;保存用户录入的凭证;
提供一定的检控功能;返回主控模块;
2.查询为用户提供:
用户查询某个特定凭证;按凭证编号查询;
按任一条件查询满足条件的第一张凭证;
按任意组合条件查询满足条件的第一张凭证(凭证编号不能参加条件组合);
用户查询多张凭证;
按任一条件逐个查询满足条件的凭证;
按任意组合条件逐个查询满足条件的凭证;
暂存查询信息;
3、修改及删除
4、凭证输出
二、电算化凭证处理与手工凭证处理的区别:
1.信息项不完全相同
2.凭证的编号方法不一样
3.存储形式不同
4.存储空间的利用率不一样
第三节凭证处理程序的安全可靠性
一、凭证出错的来源
1、人为造成
2、(系统)处理程序出错。
3、电算化凭证处理模块的安全可靠性控制的措施:
1.严格的多级安全控制用户级;凭证级
2.全方位的录入检测
二、数据安全可靠性的实施措施
1、逻辑校验法利用数据间的逻辑关系
2、平衡校验法利用”有借必有贷,借贷必相等”的会计基本准则。
3、查询校验法利用数据的相对稳定性
4、关联校验法利用凭证数据的对应不可能性
5、重复校验法利用概率统计的原理
第四节凭证处理程序的设计
一、系统应满足的要求
1.稳定性
系统应能保证所有的处理稳定、处理的结果不随时间波动,仅仅依赖于输入。
2.一致性
系统内的数据必须保持一致。
3.良好的用户界面
用户界面要求方便适用、美观简洁。
4.灵活性
不受时间、过程的限制。
5.完备性
提供一切有关凭证处理的功能,并加以强化。
6.快速
二、凭证处理模块的设计
第五节凭证处理程序的实现
一、凭证录入
****************
*凭证输入总控程序PZSR.PRG
****************
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,50,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=0
PACK
CHO=0
CASEBAR_NUM=10
DOPZXG22
SELE1
DELEALLFORJE=0
PACK
CHO=0
CASEBAR_NUM=11
DOPZXG4
SELE1
DELEALLFORJE=0
PACK
CHO=0
CASEBAR_NUM=13
DODYPZ
CASEBAR_NUM=14
DODYPZMXB1
CASEBAR_NUM=15
DODYPZHZB
ENDCASE
IFCHO=0
DOPZKBF
ENDIF
CLEARWINDOWSZ
RETURN
*:EOF:PZSR.PRG
*******************
*收款凭证输入程序PZSR11.PRG
*******************
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(11)
XMH(I)=SPACE(10)
JE(I)=0.00
I=I+1
ENDDO
CLEAR
DOWHILE.T.
CLEARTYPE
A2="XXXXXXXXXXXXXXXXXXXXXXXX"
A3="999########"
A5="XXXXXXXXXX"
A6=".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.EOF()
ACTIWINDPZSR1
@0,1SAY"重号,按任意键重新输入"
WAIT""
DEACWINDPZSR1
LOOP
ENDIF
SELECT2
SEEK"&BH1"+"S"
IF.NOT.EOF()
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)+"按任意键继续"
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=I+1
ENDDO
@15,61GETMHJ1PICTURE"#########.##"
READ
IFMHJ1<>MHJ2
ACTIWINDPZSR1
@0,1SAY"输入金额错,按任意键继续"
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.EOF()
MKMDM=TRIM(DFKM(J))
KMMC1=""
DOZW_KMMCWITHMKMDM,KMMC1
IFLEN(TRIM(KMMC1))<>0
ACTIWINDPZSR2
@0,1SAY"贷方科目名称:"+TRIM(KMMC1)+"按任意键继续"
WAIT""
DEACWINDPZSR2
ENDI
ENDIF
IFEOF().OR.UPPE(KMRB)="H"
FLAG=1
EXIT
ENDIF
ENDIF
ENDIF
J=J+1
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(I))+"错,按任意键重新输入"
WAIT""
DEACWINDPZSR1
FLAG3=1
EXIT
ENDIF
ACTIWINDPZSR2
@0,1SAY"名称:"+TRIM(DWMC)+"按任意键继续"
WAIT""
DEACWINDPZSR2
ENDIF
I=I+1
ENDDO
IFFLAG3=1
MHJ2=MHJ
LOOP
ENDIF
YN="Y"
ACTIWINDPZSR1
@0,1SAY"请检查录入凭证正确否?Y/N"GETYN
READ
IFUPPER(YN)<>"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+1
ENDDO
ACTIWINDPZSR1
STORE"N"TOMX
@0,1SAY"还有同号凭证否Y/N?"GETMX
READ
DEACWINDPZSR1
IFUPPER(MX)="N"
APPENDBLANK
REPLACERQWITHRQ1,BHWITHBH1,ZYWITHZY(1),KMDMWITHJFKM1
REPLACEJEWITHMHJ,PZRBWITH"S",JDWITH"J"
REPLACEFDJWITHFDJ1
EXIT
ENDIF
MX="Y"
MY=0
ENDDO
ACTIWINDPZSR1
@0,1SAY"继续输入否?Y/N"GETAN
READ
DEACWINDPZSR1
IFUPPER(AN)<>"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
X1=VAL(BH)
X1=X1+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
X1=VAL(BH)
X1=X1+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
******************
*凭证输入格式文件PZSR11.FMT*
******************
*****************
*第一屏*
*****************
@17,50SAY'附单据张'
@5,16GETJFKM1
@5,36GETRQ1
@5,64GETBH1
@9,3GETZY(1)PICTA2
@9,30GETDFKM(1)PICTA3
@9,43GETXMH(1)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'输入完一张凭证键F1退出'
READ
******************
*生成科目名称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&MJ<>""
SEEKKMDM&MJ
KMMC1=KMMC1+TRIM(KMMC)+"/"
KMDM&MJ=""
ENDIF
MI=MI+1
ENDDO
RETURN
*******************
*查询凭证程序CXPZKHC1.PRG*
*******************
PARAPZLXQ
PUBLICDIMENSIONPZH1(1000)
STORE""TOPZH1
DEFIWINDPZCXFROM3,25TO16,50SHADDOUBLCOLOSCHE14
DEFIWINDPZCX1FROM18,20TO21,60SHADDOUBLCOLOSCHE14
DOWHILE.T.
ACTIWINDPZCX
@0,3SAY"凭证查询功能选择模块"
@2,3PROMPT"1.按日期查询"
@3,3PROMPT"2.按凭证号查询"
@4,3PROMPT"3.按科目码查询"
@5,3PROMPT"4.按金额查询"
@6,3PROMPT"5.按组合条件查询"
@7,3PROMPT"6.查询期限发生额"
@8,3PROMPT"0.退出"
@10,2SAY"请选择"
MENUTOCH
DEACWINDPZCX
B12=DATE()
B11=DATE()
I1=1
DOCASE
CASECH=1
DOWHILE.T.
ACTIWINDPZCX1
@0,0SAY"输入查询日期求:日至日"
@0,15GETB11
@0,27GETB12
READ
DEACWINDPZCX1
IFB11>B12
LOOP
ELSE
EXIT
ENDIF
ENDDO
SELECT1
B0="'"+DTOC(B11)+"'"
B2="'"+DTOC(B12)+"'"
B1="RQ>=CTOD("+B0+").AND.RQ<=CTOD("+B2+").AND.UPPE(PZRB)='";
+UPPE(PZLXQ)+"'"
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZ1<>""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=2
DOWHILE.T.
A11=""
A12=""
ACTIWINDPZCX1
@0,0SAY"请输入查询凭证号:号至号"
@0,18GETA11PICTURE"9999"
@0,28GETA12PICTURE"9999"
READ
A11=TRIM(A11)
A12=TRIM(A12)
DEACWINDPZCX1
IFA11>A12.OR.LEN(TRIM(A11))=0.OR.LEN(TRIM(A12))=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
B1="BH>='"+A11+"'.AND.BH<='"+A12+"'.AND.UPPE(PZRB)='"+
UPPE(PZLXQ)+"'"
SELECT1
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZ1<>""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=3
KMBM1=""
DOWHILE.T.
ACTIWINDPZCX1
@0,0SAY"请输入查询科目编码:"GETKMBM1PICTURE""
READ
DEACWINDPZCX1
IFLEN(TRIM(KMBM1))=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
KMBM1="'"+KMBM1+"'"
B1="KMDM="+KMBM1+".AND.UPPE(PZRB)="+"'"+UPPE(PZLXQ)+"'"
SELECT1
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZ1<>""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=4
C11=0
ACTIWINDPZCX1
@0,0SAY"请输入查询金额:"GETC11PICTURE".99"
READ
DEACWINDPZCX1
B1="JE="+STR(C11,12,2)+".AND.UPPE(PZRB)="+"'"+UPPE(PZLXQ)+"'"
SELECT1
KZ1=""
DOCXPZKHC2WITHPZLXQ,KZ1
IFKZ1<>""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=5
DOWHILE.T.
A111=0
A112=0
C11=""
C12=0
ACTIWINDPZCX1
@0,0SAY"输入查询要求:日期日至日"
@1,0SAY"凭证号号至号"
@0,17GETB11
@0,27GETB12
@1,17GETA111PICTURE"9999"
@1,27GETA112PICTURE"9999"
READ
DEACWINDPZCX1
IFA111>A112.OR.B11>B12.OR.A111=0.OR.A112=0
LOOP
ELSE
EXIT
ENDIF
ENDDO
B0="'"+DTOC(B11)+"'"
B2="'"+DTOC(B12)+"'"
B1="RQ>=CTOD("+B0+").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
IFKZ1<>""
LOOP
ENDIF
DOCXPZKHC3WITHPZLXQ
CASECH=6
KMBM1=""
RQ1=0
RQ2=0
DOWHILE.T.
ACTIWINDPZCX1
@0,1SAY"请输入查询科目代码:"GETKMBM1PICTURE"9999999"
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*
*******************
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
I1=I1+1
PZH1(I1)=BH
ENDIF
CONTINUE
ENDDO
RETURN
**********************
*查询凭证子程序CXPZKHC3.PRG*
**********************
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="┏━━━━━━━━━┳━━━━━━━━━━━┳━┳━━━━━━┓"
LINE3="┃摘要┃科目名称┃JD┃金额┃"
LINE4="┣━━━━━━━━━╋━━━━━━━━━━━╋━╋━━━━━━┫"
@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=I+1
@I,0SAY"┃"+SUBS(ZY,1,18)
@I,20SAY"┃"+TRIM(KMMC1)+"-"+TRIM(KMMC2)+"-"+TRIM(KMMC3)
IFLOWER(JD)="J"
@I,56SAY"┃"+"借"+"┃"+STR(JE,12,2)+"┃"
ELSE
@I,56SAY"┃"+"贷"+"┃"+STR(JE,12,2)+"┃"
ENDIF
ELSE
@ROW(),0SAY"┗━━━━━━━━━┻━━━━━━━━━━━┻━┻━━━━━━┛"
@ROW()+1,20SAY"阅毕,按任一键继续"
WAIT""
CLEA
@1,35SAYLX+"凭证"
@2,0SAYLINE1
@3,0SAYLINE2
@4,0SAYLINE3
@5,0SAYLINE4
I=6
@I,0SAY"┃"+SUBS(ZY,1,18)
@I,20SAY"┃"+TRIM(KMMC1)+"-"+TRIM(KMMC2)+"-"+TRIM(KMMC3)
IFLOWER(JD)="J"
@I,56SAY"┃"+"借"+"┃"+STR(JE,12,2)+"┃"
ELSE
@I,56SAY"┃"+"贷"+"┃"+STR(JE,12,2)+"┃"
ENDIF
ENDIF
SKIP
ENDDO
@I+1,0SAY"┗━━━━━━━━━┻━━━━━━━━━━━┻━┻━━━━━━┛"
@I+2,10SAY"第"+LTRIM(RTRIM(STR(J-1)))+"张"
@I+3,10SAY"按'R'键返屏!'Q'键退出!其它键继续..."
WAIT""TOF1
IFUPPE(F1)="Q"
CLEA
RETURN
ENDIF
CLEA
IFUPPE(F1)="R"
J=J-2
ENDIF
IFJ<1
J=1
ENDIF
J=J+1
ENDDO
IFJ=2
RETURN
ENDIF
@I+3,8SAY"查询完毕,按任一键返回"
WAIT""
@I+3,8SAYSPACE(70)
RETURN
第五章登记帐薄程序分析与设计
第一节登记帐薄程序分析
在凭证输入结束后即需要用凭证数据来更新科目余额文件中相应科目的发生额数
据项和累计发生额数据项,并计算出期末余额数据项,由于凭证数据中相同科目
的业务不止一笔,因此,在更新数据之前,即要将凭证数据按科目代码进行汇总
,将汇总的结果来对科目余额文件中相应的科目余额数据项进行更新操作,从而
形成最新的科目余额数据,然后根据逐级汇总的方法,下级科目汇总后生成上级
科目余额数据,这就是登记帐薄的过程。这个过程有两个主要步骤,一是凭证汇
总,二是按科目逐级汇总。
只有明细科目的数据是从临时汇总库得到的,其它的数据都是由下级科目经汇总
后得到的,在登记帐薄程序中所要用到的数据库有PZKHC.DBF文件(未登帐凭证数
据)、KMYE.DBF(科目余额)、DMMCK.DBF(单位往来帐余额文件)和PZK.DBF(已登帐
凭证文件),另外就是一些临时用汇总文件,临时用汇总文件的文件结构与凭证库
文件结构相同,这些文件的内容如下所示:
凭证库文件结构
1RQ日期D8
2BH凭证号C4
3KMDM科目代码C113:2:2:2:2与科目代码库的内容一致
4ZY摘要C24
5JE金额N122
6FDJ附单据N2
7PZRB凭证类别C1S,F,Z
8JD借贷C1J,D
9PJH单位代码C10与单位往来帐的一致
科目余额库文件结构
1RQ(日期)日期型8
2KMDM(科目代码)字符型113:2;2:2:2
3KMMC(科目名称)字符型12
4NCYE(年初余额)数值型122
5NCLX(年初类型)字符型12J,D
6QCYE(期初余额)数值型142
7QCLX(期初类型)字符型1J,D
8JFF(借方发生)数值型142
9DFF(贷方发生)数值型142
10JFLJ(借方累计)数值型142
11DFLJ(贷方累计)数值型142
12QMYE(期末余额)数值型142
13QMLX(期末类型)字符型1J,D
14KMRB(科目待征)字符型1H汇总型,M明细型
单位往来帐文件结构
1PJH单位编号字符型10
2DWMC单位名称字符型24
3QCYE期初余额数字型122
4QCLX期初类型字符型1
5JFF借方发生额数字型122
6DFF贷方发生额数字型122
7JFLJ借方累计额数字型122
8DFLJ贷方累计额数字型122
9QMYE期末余额数字型122
10QMLX期末类型字符型1
第二节登记帐薄程序设计
文件被打开的工作区间是:
A区:凭证文件(未登帐凭证文件)PZKHC.DBF
B区:凭证文件(已登帐凭证文件)PZK.DBF
C区:科目余额文件KMYE.DBF
D区:单位往来帐文件DWMC.DBF
E区:单位往来帐凭证文件
***************
*更新帐薄GXZP.PRG*
***************
DEFIWINDGXZPFROM4,20TO16,60SHADCOLOSCHE14DOUBL
DEFIWINDGXZP1FROM18,20TO20,60SHADCOLOSCHE12
ACTIWINDGXZP
YY="N"
@0,1SAY"登计帐簿否Y/N?"GETYYPICTURE"X"
READ〖LM〗
〖KH14*2〗[JZ]图5.2
IFUPPER(YY)<>"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)<>SPACE(LEN(TRIM(PJH)))FIELDSJE
SELECT0
USEKMHZJ
INDEXONKMDMTOKMHZJ1
SETINDEXTOKMHZJ1
SELECT0
USEKMHZD
INDEXONKMDMTOKMHZD1
SETINDEXTOKMHZD1
SELECT0
USEMKMHZJ
INDEXONPJHTOMKMHZJ1
SETINDEXTOMKMHZJ1
SELECT0
USEMKMHZD
INDEXONPJHTOMKMHZD1
SETINDEXTOMKMHZD1
@2,1SAY"正在更新科目余额文件的本期发生额..."
SELECT3
UPDAONKMDMFROMKMHZJREPLJFFWITHJFF+KMHZJ->JE,;
JFLJWITHJFLJ+KMHZJ->JE,RQWITHRQRANDOM
UPDAONKMDMFROMKMHZDREPLDFFWITHDFF+KMHZD->JE,;
DFLJWITHDFLJ+KMHZD->JE,RQWITHRQRANDOM
PH="Y"
@3,1SAY"正在汇总余额文件的本期发生额.."
DOGXFSEWITH"F",PH
IFUPPER(PH)<>"Y"
SELECTKMYE
DELETEALL
PACK
APPENDFROMBAK\KMYEBF
SELECTDMMCK
DELETEALL
PACK
APPENDFROMBAK\DMMCKBF
ACTIWINDGXZP1
@0,1SAY"本次做帐不成功,请检查凭证,按任意键退出"
WAIT""
DEACWINDGXZ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高二语文开学课(教学计划)
- 小学经典名言警句大全
- 书籍小兵张嘎课件
- (统考版)2023版高考化学一轮复习第十章化学实验第2讲物质的分离、提纯、检验与鉴别学生用书
- 汽车涂装技术(彩色版配实训工单)课件 任务十 熟悉未来超新涂装与SE技术
- 亲子活动中心装修发包合同
- 医药电商物流配送样本
- 亲子餐厅装修材料供应合同
- 上海家居广场装修合同
- 冶金行业危险品运输
- 阳光心理激昂青春
- 2024年医院医疗质量管理与考核细则例文(三篇)
- 山东省第五届财会知识大赛试题及答案
- 广东省深圳市龙华区2024-2025学年二年级上学期学科素养课堂提升练习语文试卷
- 交通行业智能交通系统建设与运营维护方案
- 2024-2025学年北师大版七年级数学上册期末测试压轴题考点模拟训练(一)
- 2023-2024学年北京市通州区九年级(上)期中数学试卷【含解析】
- 国家职业分类大典
- 2024年二手车转让合同电子版(3篇)
- 中医药创新创业“八段锦”智慧树知到答案2024年浙江中医药大学
- 2024-2030年代驾产业市场深度调研及发展趋势与投资战略研究分析报告
评论
0/150
提交评论