本帖最后由 cooloaky 于 2013-1-14 08:51 编辑
学习和研究EXCEL在财务上的应用也有些日子了,也看过不少网友制作的很精美的财务工具。有些想法在这里讲出来和大家讨论一下。强调一点:讨论的内容基本不设计到具体的技术,只是谈谈架构和方案的处理。笔者认为这些方案是可以通过自己已知的EXCEL功能实现的。
1、数据的整合。
其实财务是个内容范围很广阔的概念。除了日常的帐务处理外,固定资产、预算、往来、进销存等都是可以和账务处理挂钩的。它们之间的数据其实是可以整合的。譬如固定资产,如果事先在固定资产登记的时候记录它的折旧科目和折旧方法,其实每个月的折旧其实是可以自动计提的,而且准确性高。另外,有些科目如待摊费用、无形资产、长期递延资产等,虽然不是固定资产,但也可以视同固定资产处理,假如(通常都是)它们是有固定摊销方法的,我们就可以自动计提或摊销;至于往来,完全可以通过凭证录入的时候,增加一个记录往来单位的字段,往来分析就可以很简单的达成。同理,预提费用也可以这样处理;进销存同账务处理挂钩的地方在于成本核算上,试想,当你详细的记录了产品的出入记录,设定好计价方法就可以不用通过复杂的运算来制作凭证,岂不简单快哉?另外想提到的一点是,明细帐和日记帐是两个不同的概念,切勿混为一谈。明细帐是总账的组成部分,是由会计记账,而日记账不是总账的组成,是由出纳记账的。日记账是用来和明细账做对账用的,两者要做调节表的。但可以在账务系统上外挂日记账系统,开发两者对账调节的功能。
2、关于权限设置。
权限设置最常见于登陆控制,其实它应该有更多的发挥空间。当系统使用者达到2个以上的时候,适当的授权就非常有必要。譬如数据录入和查看的限、记账和过账的权限、期间开放的权限、一些比较敏感的报表查看权限等等。笔者所知的权限处理方法有两个:一是通过控件的ENABLE属性来控制操作的,另一种是通过事先设定好权限表,隐藏非授权菜单来完成。因为大凡复杂点的财务系统的控件都比较多,这样通过第一种方法来操作似乎有些不太现实。故第二种方法可行性较高。具体可以通过权限表来决定是否生成改项功能的操作菜单来完成。
3、数据存放问题。
把数据同主系统存放在同一个文件的方案不太可取。原因有二:一是系统运行速度的限制。众所周知,EXCEL打开一个文件需把所有数据都读入内存,如果你把数据存放在一个文件内,会使得文件数据量越来越大,占用系统资源较多;另一个原因是历史数据查询问题,如果是跨年查询的话,要反复打开历史文档,这样的方法不太科学,更不例如纵向比较。解决的方案是将数据另外存放,以EXCEL或ACCESS作个简单数据库,而使用哪种取决于你的数据量。这样做还有一个好处就是你可以设置多个账套,并可以在各个账套之间设立关联。具体做法是将数据存放在一个指定目录,以指定规则命名,这样数据查询的时候打开—读入—关闭的步骤就可以轻松完成了。大家知道,EXCEL的每一张表有256列,以每个月为一组,每组可以有256/12=21个字段可以存放数据,而工作表的数量是几乎可以满足你的任何年份要求。值得一提的是很多配置信息(譬如前面提到的用户权限表、科目设置表、往来单位设置、成本中心设置等等),也可以同过这种方法读入。众所周知,EXCEL的长处不在于它的数据存储,如果你对数据存贮有更高的要求,建议还是使用专业数据库,如SQL等。EXCEL对这些数据库也提供了数据引擎接口。
4、报表设置问题。
EXCEL的最大长处在于数据分析和界面处理能力,它的最实际的用途就在报表制作上。报表设计功能应该是重点考虑的问题。鉴于很多报表是基于试算平衡表数据而来,笔者有个设想:假如在设置科目表的时候,给每一个科目设立一个或多个报表代码,那么当取得了试算平衡表数据后,想制作那个报表就是随手拈来了。譬如有报表A,其报表项有A1,A2,A3...;报表B有B1,B2,B3...等报表项,科目1001在报表A中为A2,报表B中为B3,那么在科目设置的时候设置好这些信息,提取数据就很简单了。还有一些比较复杂的报表处理上,可以通过报表样板和报表代码设置分离的做法。这种做法是先设计好报表样板(因为可以随意设计,想做多漂亮都行),然后建立一个报表代码的配置文件,对每个报表样板中需读入数据的单元格,以一定规律设定好代码,其中可以添加运算规则。比如B5单元格可以设为"+1001-1002+1003"。在制作报表的时候通过字符提取相关信息就可以从数据库中拿到数据。
5、多用户操作的问题。
EXCEL里的多用户操作支持似乎比较困难,但如果你公司有内部服务器的话,就变得很简单了。只需要在服务器上建立一个目录用来存放数据,大家都可以通过服务器来访问数据库了。如果没有服务器那也不要紧。WINDOWS支持文件共享功能,只要在一个局域网内,共享数据库目录出来,你同样可以做到多用户访问同一数据库的功能。剩下要做的只是设立好每个用户的权限,将主程序在每个终端用户的电脑上安装了。
6、科目设置和借贷的看法。
科目设置表的最根本的元素是科目代码和科目名称,但不仅仅是局限于这两个元素。在前面提到的数据整合部分中,很多内容(如成本中心代码、资产代码、现金流量代码、往来单位代码、存货代码等等)也是科目设置表的组成部分。每组代码都是一张相对独立的表,然后通过科目表中设置是否需要在凭证录入界面强制输入来发生关联。这样做的好处是使得数据采集(即凭证或台账录入)同数据结构一致。以上提到的是数据设置部分,结合报表设置中讲到的,科目设置表还应该设置报表科目字段,这里可发挥的空间就比较大。这样可以保证数据输出的需要。
关于科目设置还想谈的一点是科目架构问题。国内的会计科目设置是按多级科目的结构进行设置的,会经常遇到科目汇总的问题。这种结构存在这样的情形:同为一级科目,某些科目是有业务发生,其科目余额为其业务发生额的汇总;而某些科目是没有业务发生,其科目余额是其下级科目的余额汇总。这样会造成获取总账余额时候的不协调。当然,在这种科目设置架构下并不是没有解决的方案。这里笔者比较倾向的是一种无级别的科目架构。在这种架构下,所有的科目均为明细科目,均有业务发生,使得科目汇总变得简单而统一。想知道每个总账科目的余额?没问题,在科目设置表中的报表字段里设置一个对应总账科目,就可以输出总账了。
另外一点看法是关于借贷处理的问题。国内通用处理方法是规定了资产和费用类科目为借方余额科目,负债、权益和收入为贷方科目。这使得通常每个总账科目的余额均为正数。这样有利于资产负债表和利润表的制作。但缺陷也很明显:每个科目需规定具体的借贷方性质。笔者觉得这种处理方法纯属多余。一个简单的数据正负号完全就可以知道科目的余额是在借方或贷方了,有必要弄的那么复杂吗?至于红字冲销凭证,你觉得有必要吗?不设定借贷方性质的好处在于试算平衡表(通常所说的科目余额表)上。只要所有的科目余额相加为0,一切都OK了。而它最大的好处在于利润结转的处理。通常,利润项是每年结转一次,未分配利润科目永远是年初利润余额的。这样一来如何在资产负债表反映当期的本年利润呢?只需将所有损益类科目的汇总就可以得到这个数了。当公司内部会计年度设置同外部会计年度设置发生矛盾时(笔者就有这种经历),未分配利润加所有损益类科目之和就不简单等于本年利润了(因在内部年结的时候会结转一次利润)。这时候把所有损益类科目之和换成所有资产负债表科目之和,问题迎刃而解。
以上罗嗦的这么多东西,有的功能笔者已实现,有的正在开发中。当然,只是个人之见,起个抛砖引玉。如果你有其他不同的看法、更好的意见或具体的技术实现,欢迎参与讨论。
[此贴子已经被作者于2005-12-12 8:55:08编辑过] |