一个微机应用程序是一件产品,会计核算程序也不例外。这件产品的质量高低,标志是其适用性和满足用户要求的程度。这个总的质量标准,一般说来起码要体现出三个原则:一、经济性——尽量少的键盘输入和计算机运行时间;二、自控性——严密的检验纠错控制系统以保证输入数据正确;三、目的性——圆满完成用户要求的工作内容。
这三个原则几乎要体现在一个程序的设计和编写的全过程和各个方面,同时也总是相互交织在一起。有时候,满足了这样一种功能,会产生另一个负效应,甚而会破坏另一种功能,这也可以说是编写程序最感头疼的问题。不过,“三工序”原理给我们提供了解决这些问题的方法和步骤。所谓“三工序”原理,就是在设计和编写程序的时候,设置某一“工序”的功能,要坚持这样的原则:能对上一道“工序”运行结果或提供的数据进行复查检验;保证正确实现本道“工序”的功能;为下边各道“工序”提供所需服务和正确传递信息数据。下边,就以我处会计收务处理程序中输入本期业务这道“工序”为例说明如何用“三工序”原理来保证实现程序质量的三原则。
问题1:在会计帐务处理程序中,每一笔业务都要记入一定的帐户中,在每个帐户的9个字段中,有科目编号和科目名称。如果省略不输入这两个字段,则计算机登记明细帐、总帐、试算平衡、打印科目余额表和结帐等功能都不能实现。如果每一笔帐都输入这两个字段,又会出现三个问题:(1)键盘输入业务量大,太浪费时间;(2)科目编号和名称输入上的任何一点差异,都会被当成一个新科目处理;(3)新增加的帐户如果在上期余额数据库中没有,那么在试算平衡和结帐时容易被漏掉。
问题2:借贷记帐法要求同一笔业务要记入两个及两个以上的帐户,但摘要的内容一样。有的会计分录一借多贷或多借一贷,同样内容的摘要得重复几次、十几次甚至几十次,键盘输入不堪其苦。
问题3:手工记帐规定既要登明细帐,又要登总帐,即所谓明细帐和总帐“平行登记”。计算机记帐,自然应设法一次解决问题。
问题4:铁路工程——成本帐户要求其帐户设置既要有明细帐、总帐,又要有分成本核算对象(即工号)的多栏式明细帐,一般中又产生“特殊”问题。
运用“三工序”原理,可以从以下几个方面解决上述四个问题:
(1)建立会计科目“标准”数据库,以科目代号为关键字段,除摘要之外按科目编号、科目名称、借或贷和金额等建立完整的科目名称和余额数据库。科目代号由科目名称特别是科目编号确定,下边各道“工序”如本期业务处理、记明细帐和总帐、试算平衡、结帐和为下期建立新帐等都以科目代号进行识别和工作。至于记帐期间、凭证号和摘要三个字段又增设于本期工作数据库,以减少占用字节。科目代号由7位组成,前三位是总帐科目号,中间两位是明细科目编号,后两位是三级子目号。如“4010211”,“401”是“工程施工”,“02”是“京九线”,“11”是一个具体的单位工程如“新集隧道”。这样就与会计科目编号的构成取得一致,同时满足后继各功能帐务处理工作的需要。
(2)输入时只键入会计科目代号,程序中设置以下对上道“工序”的复查和对本期输入工作的控制机制。
P=’@15,12 say’
&p’ 打入科目代号:’get m2
read
d2=m2
sele 2 &&自输及检验控制工作区
USE MX.DBF && MX.DBF 为“标准”科目库
LOCA ALL FOR M2=D2
IFEOFO
&P‘科目库内没有本科目,你本次输入的‘+STR(D1,3)+’号凭证无效,请检查有无错误,属新科目先增加于科目库!’
(3)若输入正确,自动从“标准”科目库中取出科目编号、科目名称输入本期工作库中,既减少键盘输入时间,又保证了工作质量。
SELE 1&&输入本期业务工作区
USE MG.DBF&&MG.DBF为本期业务过程库
ZAP
D3=M3
D4=M4&&D3、D4及M3、M4为本科目编号和科目名称互换
REPLM3WITHD3
REPLM4 WITH D4&&将科目编号和科目名称自输到本期业务过程库
摘要的重复,由于重复多少次是个随机变量,采用以下办法减少输入和“借用”问题:
NY=’’
&t‘摘要内容变化,打入Y,不变打入N’
GETNY
READ
IFNY=’y’OR.NY=’Y’
DS=’’&&内容不变的摘要取上次输入的自动在本次输入
&P’请打入新摘要内容‘GET D5
READ
ENDIF
REPLM5WITHD5&&M5为摘要字段
以上功能属“三工序”原理第二点,保证输入的正确性,又满足了经济性要求。
(4)运用“特控”建立“工程施工”帐户的多栏式明细帐。
IF D2>4009999.AND.D2<4019999&&“工程施工”科目编号为401
DO MZ1.PRG&&MZ1.PRG为输入多栏式明细帐子程序
ENDIF
(5)根据一次输入的数据,自动建立总帐科目库,并为后继进行总帐科目平衡、打印总帐等功能服务。
USEMCC.DBF&&MCC.DBF是总帐科目名称库,根据“标准”科目库左截建立的
COPYSTRUTOMW
USEMW
APPE FROM MY.DBF&&MY.DBF是本期业务库输入总帐过程库,自动截掉明细科目右侧编号
SORTONM3TOM3Z.DBF
USEM3Z.DBF
INDEONM3TOMW.DBF
USE M3Z.DBFINDE MW
TOTAL ON M3 FIEL M6,M7 TO MZ.DBF
USEMZ.DBF
SORTON M3 TOM3CC.DBF &&M3CC总帐科目库建成
(6)输入过程对“借贷必相等”的借贷记帐原理的正确性建立三控机制。
A:在一个凭证输入完成后自动检验是否“有借必有贷,借贷必相等。”
USEMO.DBF
STOR.T.TOU
DOWHILEU
SUMM6TOM8
SUMM7TOM9
E=M8-M9
IFE>0.01.OR.E<-0.01
@10,B SAY’借贷不平,差额:’+STR(E,15,2)+’请改’
J=RECC
K=1
DO WHILE K<=J
GOK
SET FORM TO MJ.FMT &&将原输入重新逐项显示,供修改
READ
K=K+1
IFK>j
EXIT&&全部修改完反复检验
ELSE
LOOP
ENDIF
ENDDO
ELSE
@12,20 SAY’本凭证经检验平衡’
EXIT
ENDIF
ENDDO
B:在每次修改错误之后或执行打印帐页,结转余额等各个功能时检验和控制所有会计凭证借贷平衡。
C:在打印明细帐、总帐、结帐等工作之前,检验当期全部业务是否总的试算平衡。
“三工序”原理可用图形表示如下:
本道工序