会计科目输入处理的设计与实现

更新时间:2024-03-30 作者:用户投稿原创标记本站原创 点赞:4989 浏览:15896

摘 要:在简要阐述会计科目表的数据要求及文件结构的基础上,分析与设计了会计科目的数据输入表单及数据输入处理流程,提供了实现会计科目数据输入功能的VFP程序代码.

关 键 词:会计科目;信息系统;数据输入处理;VFP程序

中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)04-0666-03

DesignandRealizationofAccountingItemsInputProcessing

LIGuo-hong

(DepartmentofManagementEngineering,ZhengzhouUniversity,Zhengzhou450001,China)

Abstract:Onthebasisofbrieflyclarifyingthedatarequirementandthefilestructureoftheaccountingitemstable,thispaperanalyzesanddesignsthedatainputformandthedatainputprocessingflowchartofaccountingitems.ItthensuppliedwiththeVisualFoxProprogramcodestorealizetheaccountingitemsdatainputfunction.

Keywords:accountingitem;informationsystem;datainputprocessing;VFPprogram

会计科目输入是会计电算化系统的一项重要的系统初始化工作,通过该操作将各级会计科目的科目编号、科目名称、借贷方向和期初余额等信息保存在会计科目表文件中,为录入凭证、登记总账、生成损益表等功能的实现打下基础.为此,就必须设计合理的表单和输入处理流程,实现在尽可能减轻用户输入负担的前提下,将科目信息通过表单输入到会计科目表文件.笔者曾以“管理信息系统数据输入模块的设计与实现——兼论会计科目的输入设计”[1]为题,探讨了新会计制度改革前的会计科目输入处理与设计,实现了会计科目的输入功能.该文对新会计制度改革后的会计科目输入处理进行了重新设计,表单界面较为合理,对相关属性的设置进一步减少了用户输入负担,同时,其程序流程也采用了另一种新的设计思路与方法,提供了实现科目输入功能的VisualFoxPro(简称VFP)程序代码.


1会计科目表及其文件结构

会计科目表包含科目编号、科目名称、借贷方向、期初余额等信息,表中的科目编号数据必须符合以下条件:科目编号位数不低于4、科目编号不能重复、科目编号位数大于4时必须是偶数位数且存在上级科目.向会计科目表中输入科目信息时,应由程序自动判断所输入的数据是否满足这些条件,只有满足这些条件才可存入会计科目表中,不满足条件的数据不应被保存且应提示出错信息.

[字段\&类型\&宽度\&小数位数\&含义\&kmbh\&字符型\&10\&\&科目编号\&kmmc\&字符型\&36\&\&科目名称\&jdfx\&字符型\&1\&\&借贷方向\&qcye\&数值型\&12\&2\&期初余额\&]

会计科目表的数据保存在会计科目表文件中.检测设在VFP环境下,会计科目表文件为kjkm.dbf,保存在默认目录下,表的结构如表1所示,其中各字段的宽度可按实际情况进行定义.例如,一般情况下,一级科目的科目编号占四位,其余各级科目的科目编号都是其上级科目编号后再加两位数字(字符),这样,当实际可以输入1002010203之类的四级科目而不允许输入五级科目时,表中kmbh(科目编号)字段的宽度就应设置为10,这里给出的只是参考值.

2会计科目输入表单设计及相关属性设置

设计如图1所示的表单,以便向会计科目表中输入相关数据.其中,“会计科目”、“科目编号”、“科目名称”、“借贷方向”、“期初余额”为对应标签的Caption属性;“确定(Q)”、“取消(X)”、“退出(T)”为命令按钮,其Caption属性对应设置为:确定(\

为便于控制输入数据的类型和位数不超出允许的范围,可事先设置好各文本框接收数据的类型及输入掩码,设置方法是用鼠标右键单击各文本框,在出现的快捷菜单选“生成器”,再在弹出的“文本框生成器”对话框的“格式”选项卡设置数据类型和输入掩码.依据表1和图1,结合实际输入的数据(如科目名称由汉字及相关字符组成,借贷方向由字符“1”或“2”表示),可设置各文本框的数据类型和输入掩码如表2所示.其中每个9表示可输入0~9之间的一个数字,每个X表示可输入一个任意字符(输入一个汉字对应2个X),9或X的个数表示最多可以输入的数字或字符的位数.另外,若借贷方向由字母表示(例如借用j表示、贷用d表示),可将输入掩码设置为A.

[文本框\&数据类型\&输入掩码\&备注\&Text1\&字符型\&9999999999\&10个9\&Text2\&字符型\&XXX等XXX\&共36个X,省略号部分表示30个X\&Text3\&字符型\&9\&9表示只接收一位数字;若只接收英文字母,则设置为A\&Text4\&数值型\&999999999.99\&带小数点共12位\&]

3科目输入程序流程设计

会计科目的相关数据要通过科目输入表单保存在会计科目表(文件)中.由于数据符合一定的条件时才能输入到会计科目表中,所以必须设计合理的程序流程,使程序简单高效、易于理解.数据输入的程序流程设计有以下两种思路.1)先设置表单中的数据都正确时的条件(例如b等于0);然后将表单中的数据不符合要求的各种情况都设置为不满足上述条件(例如设置为b等于1或b等于2),并进行相关提示;最后,用条件语句实现满足条件时保存数据(例如,如果b等于0就保存数据).文献[1]所示的科目输入处理流程就采用这种思路.

2)第二种思路是,将表单中数据符合输入要求的各种情况均设置为满足某个条件(例如k等于1),各种不符合要求的情况需要进行相关提示,并在必要时设置为不满足该条件(例如设置为k等于0),然后用条件语句实现满足条件时保存数据(例如,如果k等于1就保存数据).按照这种思路,利用N-S图设计会计科目输入的程序流程如图2所示.相对于文献[1]所示的科目输入程序流程,该流程显得更加合理和易于理解.

4科目输入的VFP程序代码

运行图1所示的科目输入表单,单击“确定(Q)”按钮(或按Alt+Q组合键)时,应能按照图2所示的科目输入流程进行相应的数据处理.根据图2,编写“确定(Q)”按钮的Click过程对应的VFP程序代码如下,其中&&右面表示注释内容.

setexacton

kmbh1等于thiorm.text1.value

length1等于len(alltrim(kmbh1))

iflength1<4

messagebox("科目编号至少为4位!",0+48,"提示")

thiorm.text1.setfocus

else&&科目编号位数不低于4

usekjkm

locateforalltrim(kmbh)等于alltrim(kmbh1)

iffound()

messagebox("科目编号不能重复!",0+48,"提示")

thiorm.text1.setfocus

else&&科目编号位数不低于4,且科目编号不重复

iflength1>4

iflength1%2等于0&&科目编号位数为偶数

locateforalltrim(kmbh)等于left(alltrim(kmbh1),length1-2)

if.not.found()

messagebox("无上级科目,请先输入上级科目!",0+48,"提示")

thiorm.text1.value等于left(alltrim(kmbh1),length1-2)

thiorm.text2.value等于space(0)

thiorm.text3.value等于space(0)

thiorm.text4.value等于0.00

thiorm.text2.setfocus

k等于0&&按不允许添加数据为变量k赋值,检测设允许添加数据时k等于1

else&&存在上级科目

k等于1&&按允许添加数据为变量k赋值

endif

else&&科目编号位数不是偶数

messagebox("科目编号位数不对,请重新输入!",0+48,"提示")

thiorm.text1.setfocus

k等于0&&k等于0表示不允许添加数据

endif

else&&科目编号不重复且位数为4

k等于1&&k等于1表示允许添加数据

endif

ifk等于1&&如果k等于1,则添加数据

appendblank

replacekmbhwithkmbh1

replacekmmcwiththiorm.text2.value

replacejdfxwiththiorm.text3.value

replaceqcyewiththiorm.text4.value

thiorm.text1.value等于space(0)

thiorm.text2.value等于space(0)

thiorm.text3.value等于space(0)

thiorm.text4.value等于0.00

thiorm.text1.setfocus

endif

endif

use

endif

setexactoff