跳到网页内文区。

:::

旅舍日记 卷一百三十四


9.28.’07. 5:32am.

会计系统

这个中秋长假,完成了一件一直挂心的事,用 Selima 系统为基础,写出了一个会计程式。这证明了 Selima 网站管理系统不只可以管理网站内容,它可以作为 Web 界面资料管理的基础系统,管理任何资料。

最初家里在记帐,是我 1998 年起,用一个简单的 Excel 试算表开始记的。 2000 年为了我前一个工作的 ASP 网站制作,学了 MS VBScript 和 DAO 物件,我摸索 MS Access 的功能,发现它也可以用来写 VBScript 程式,於是我用 MS Access 加上 VBScript 程式,写了后来一直延用了七年的共用帐记帐程式。我之前的工作学了一点点会计基础,学会借贷平衡的观念,可是日常现金收支记帐不好用,所以我写共用帐记帐程式的时候,采用了一点折衷的办法,用程式来计算借贷平衡。其结果还是一个包含银行存款的收支表。因为简单好用,从那时候起,就一直延用到现在。

旧的记帐程式,虽然简单好用,但还是有很多问题。最重要的问题,就是那是很久以前写的 VBScript 程式了。换现在这个工作到现在七年,我已经七年不碰 VBScript ,要再问我什么 DAO 物件,我完全不懂。从七年前到现在, MS Access 升级改版了好几次,电脑每次安装新版的 MS Access 时,都会问我要不要转换成新版的资料格式,还会警告可能有些功能会无法运作。幸运的是,从来没有发生过这种事,一切功能都还运作如常。可是我知道这不是长久之计。现在 VBScript 还用 DAO 物件吗?我不知道。要进去修程式,依现在的 VBScript 标准更新,我也不会做。要是有哪一次 MS Access 升级改版,一升级记帐程式就跑不动了,我也完全没有办法解决。

其实从七年前到现在,我的能力也进步了很多。七年前我对 SQL 半知半解,用了一堆 DAOSQL 混用的写法。现在回过头来看真的很不成熟。我现在当然不可能那样子写了,要写当然要用纯 SQL 写,把资料处理语言和程式语言分开来用,以便程式和资料的可携性更强。我现在工作上用 PHP ,家里我个人爱用 Perl ,两边资料库都是用 PostgreSQL ,资料库设计是一样的, PerlPHP 都要可以取用。之前还有用 MySQL 的。资料语言和程式语言分开,使用标准的 SQL 语法,以便资料可携、程式可携,是我现在工作的常识。

当然,还有其它理由。当年写的时候,认为帐记了就不会删了,所以只能记帐、改帐,没有写删掉帐目的功能,所以真的记错帐,只能进去资料表里面改,很容易出错、误删误改,造成严重后果。最近几年帐目有点混乱,我一直想花点时间好好整理一下,可是面对这种删帐非常危险的系统,我一直觉得很棘手。而且当年只有考虑现金和一本存摺,可是现实生活中的帐目根本不可能如此,常会出现暂收、暂付、应收、应付等问题。电话费拖过到下个月才缴,电话费是八月,缴的日期是九月,记八月的话现金会不正确,记九月电话费的月份会不正确。像这种欠费问题,不牵涉到现金、存款的帐,原来的记帐系统就没有办法记了。如果没有真正处理借贷平衡的系统,是不可能处理的。

对这些种种问题,我一直盘算了很久。大概有一两年了吧。去年空大去修了会计学,打好自己会计的基础,并学会应收、应付、暂收、暂付等等的正确记法,弄清楚各种概念。然后我开始计划新的会计系统,思考资料库格式,要怎么做到借贷平衡,如何兼顾日常现金收支好记,如何利用现有的 Selima 基础系统修改、增删。小招去美国后,我开始著手去进行。中间为了恶灵古堡 4停顿了三个多星期。不过我其实也没完全闲著,边玩边思考一些程式逻辑的冲突如何解决。等到恶灵古堡 4结束收心后,把上就投入到之前写到一半的地方,把这一阵子想到的程式逻辑具体写出来。就这样,赶在中秋长假一开始,就完成了新系统的初版,汇入旧的帐目,反覆测试检查、修正各种问题。系统确认完成,和小招确认过后,就备份、淘汰掉就的 MS Access 帐目,改用 Selima 上的新系统了。

原本以为这样就告一段落了。接著完成我之前一直未完成的心愿:整理帐目。整理帐目时,又发现种种新的问题:报表逻辑功能混乱不明,缺乏某些报表,缺乏某些其实很好用的功能。这些都是实际操作时才会切身碰到的问题。於是这两天又修修改改,好不容易,才把整个系统,改成我觉得好用的样子,也把很多有问题的帐,通通都更正过来。

现在还差损益表和资产负债表,不过对正式学过会计基础,拥有新系统的我,这两项都不难。只是目前还不急著要。

蛮有成就感的。

不过我也因此反省到一件事。这次是因为我就是实际使用者,对操作上碰到的问题切身所感,所以脑筋动得很快,很快就找出应该有的正确执行逻辑,并付诸实现。但平常帮人家写系统,我好像都不是这样。别人碰到跟我反映的问题,我常常很难理解,甚至因此跟人家吵架,而且因为没有对困扰感同身受,所以常常排到工作清单很后面才做,拖了很久,时效性都没了。这样好像不大好。是不是我一直很难了解别人在想什么呢?


目录 | 第一页 | 前一页 | 132 | 133 | 134 | 135 | 136 | 下一页 | 最末页