摘要:
为了适应三峡工程会计核算和财务管理的需要,哈尔滨工业大学承包开发了基于网络环境的三峡工程会计软件。由于三峡工程投资大、周期长、财务关系复杂、数据量巨大,且会计核算和财务管理要求极高,因此,要求有一套能够对整个工程的各种会计信息进行高效采集、传递、加工、处理、贮存和深层次利用的会计信息系统。对此笔者在借鉴同类会计软件优点的基础上,大胆尝试了多栏明细帐的生成方法。
一、一般会计软件生成多栏帐的方法及其缺点
如何形成多栏式帐页,一直是开发会计软件的难点问题之一,多数会计软件都采用由用户自定义的办法来解决。即在系统初始化时,由用户通过人机对话的方式来确定哪些帐户需设置多栏式帐页。笔者认为,这种开发思想有很多弊病:
首先,按这种开发思想开发的会计软件加重了用户的负担。在系统初始化时,通过人机对话来确定哪些帐户是多栏帐,以及这些多栏帐的具体格式如何,这实际上是把一部分系统设计任务交给了最终用户,对用户素质的要求很高,使很多用户望而生畏。
其次,系统的应变性能较差。在系统初始化时,由用户给系统自定义一些参数或属性,其本来目的是为了增强系统的通用性,以使系统适应不同用户的不同需...
为了适应三峡工程会计核算和财务管理的需要,哈尔滨工业大学承包开发了基于网络环境的三峡工程会计软件。由于三峡工程投资大、周期长、财务关系复杂、数据量巨大,且会计核算和财务管理要求极高,因此,要求有一套能够对整个工程的各种会计信息进行高效采集、传递、加工、处理、贮存和深层次利用的会计信息系统。对此笔者在借鉴同类会计软件优点的基础上,大胆尝试了多栏明细帐的生成方法。
一、一般会计软件生成多栏帐的方法及其缺点
如何形成多栏式帐页,一直是开发会计软件的难点问题之一,多数会计软件都采用由用户自定义的办法来解决。即在系统初始化时,由用户通过人机对话的方式来确定哪些帐户需设置多栏式帐页。笔者认为,这种开发思想有很多弊病:
首先,按这种开发思想开发的会计软件加重了用户的负担。在系统初始化时,通过人机对话来确定哪些帐户是多栏帐,以及这些多栏帐的具体格式如何,这实际上是把一部分系统设计任务交给了最终用户,对用户素质的要求很高,使很多用户望而生畏。
其次,系统的应变性能较差。在系统初始化时,由用户给系统自定义一些参数或属性,其本来目的是为了增强系统的通用性,以使系统适应不同用户的不同需要。但就某一特定用户而言,系统初始化属一次性操作,但对其使用却有着长期的影响。也就是说,如果在系统初始化时确定了属于多栏帐的帐户及其具体格式,那么,在系统运行期间不但不能改变这些多栏帐的格式,也不能增加新的多栏帐。如果一个帐户在初始化时被定义为三栏帐,要将其改为多栏帐,或者要改变多栏帐的格式(如增加一个栏目),都需重新进行初始化。可见,通过自定义所实现的通用性,对某一特定用户经常变化的需求来说,却是一种限制。
再次,用户自定义多栏帐格式,难以实现会计科目的逐级分栏。任何企业的会计科目都具有层次性,一级科目之下分设二级科目,二级科目之下分设三级科目,……,少则分到三、四级,多则分到七、八级。会计科目的这种逐级分解的层次关系,必然会形成逐级分栏的多栏帐簿体系,假设某一总帐科目分设五级明细科目,则这种逐级分栏关系如图1所示。
如果让用户自定义多栏明细帐帐页格式,用户就会面临按哪一级科目分栏的问题。如图1所示,假设某一总帐科目分设五级明细科目,则应有以下几种情况:
·在一级科目的帐页上按二级科目分栏;
·在二级科目的帐页上按三级科目分栏;
·在三级科目的帐页上按四级科目分栏;
·在四级科目的帐页上按五级科目分栏。
一般会计软件都不允许在栏目之下再设明细科目,也就是说,如果以二级科目作为栏目,就不能设置三、四、五级科目;如果以三级科目作为栏目,就不能设置四、五级科目;依此类推。如此推论,一个五级科目只能在四级科目的帐页上按五级科目分栏,而不能形成其他几种分栏式帐页。即用户在系统初始化时,只能将五级科目定义为栏目,一、二、三、四级科目则只能定义为科目,而不能定义为栏目。
二、动态分栏方法的特点
针对一般会计软件多栏帐形成机制的弊端,笔者采用了多栏帐的动态分栏方法这种方法的基本特点是:(1)哪些帐户是多栏的,哪些帐户是三栏的,无需事先确定,任何帐户,只要分成多栏是有意义的,随时可输出多栏式帐页。(2)多栏式帐页按几级科目分栏是动态的,任何一级科目均可按其下一级科目分栏形成多栏式帐页,用户在输出多栏帐时,若输入一个一级科目的编号,系统自动按其所属的二级科目分栏;输入一个二级科目的编号,则按其所属的三级科目分栏;以下依此类推。(3)多栏式帐页的格式是动态的,即系统可根据用户输入的科目号,准确判断该科目属于几级科目,有几个下级科目,需要分成几栏,各栏的名称是什么以及各栏目的排列顺序等,系统可根据用户的输入,动态地调整输出格式。栏目的多少仅受打印机打印宽度的限制,若栏目过多,系统会提示用户不能生成多栏帐。
三、动态分栏的实现方法
从编程角度看,实现动态分栏的关键步骤是:首先根据用户输入的科目号,判断该科目号属几级科目,有几个下级科目及各下级科目的名称,从而确定多栏帐的栏数及栏名,并形成多栏帐格式临时库,然后从凭证库中筛选符合条件的记录,逐月逐栏地追加到该临时库中,再从科目发生额及余额库中计算取得各栏的月计、累计数,也追加到多栏帐格式库中,最后按日期和凭证号排序,即可输出到屏幕或打印机。程序处理流程如图2所示: