【机房收费系统】日、周结账单

             这个功能其实当时做的时候很马虎,不明所以的就查看别人的博客,稀里糊涂的就完成了,但是在后来再看的时候,怎么都觉得不对劲。现在我要从新理一下思路。。

一、【作用功能】

        报表的制作方法很多同学都已经贴出来的,我就不再赘述,现在还是按照老思路我们先了解一下日结账单和周结账单分别的功能都是什么。所谓的日结账单,就是供管理员来查看这一天的收入支出情况。而周结账单的意义大同小异,不过是查看最近一周的收入支出情况而已。账单上标明的查看项目有上期充值卡余额、当日充值金额、当日消费金额、当日退款金额、本期充值卡余额还有日期。很明显的能够查询到近期或者当天的资金流向。简单且一目了然。

二、【逻辑分析】

        如此简单的报表,用户不需要自己通过某个页面去制作,只要点击日结账单就自动生成,到底是如何制作出来的?当然除了通过报表的形式显示数据库里的动态数据以外,还要有一个更新数据库数据的一个过程。那么问题来了,什么时候我们应该更新日、周结账单中的数据呢?  顾名思义,结账单,当然是结账之后要生成的一个单子,所以,我们应该在我们结账那个环节之后立刻更新日、周结账单的表(在做机房的时候自己没有做这一步,导致后来在运行日、周结账单的时候每次都显示固定的某些数据,这就是没有首先理清思路的后果)。在结账之后,我们结账的界面会显示某个操作员(当天)的操作记录,比如说充值金额,退卡金额等等。这算完成了结账么?当然不是,我们还要把这些记录写到日结账单和周结账单的表中作为汇总的记录。通过sql语句,更新到checkday表中。

        注意:某一天可能会有几个操作员同时工作,那么我们就要优化方案,比如说,管理员这时已经通过结账那个界面为每个操作员都结账完毕之后,我们要怎样添加或更新日结账单中的记录?因为是日结账单。所以不管管理员在这一天的任何时候生成日结账单,其中的内容一定都是从昨天生成账单那一刻开始到现在的最新的数据,而且,日结,日结,肯定是当天的记录,有且只有一条(如果将当天每个操作员的结账情况再显示一遍就太麻烦了,还得要管理员自己亲自去计算),一定是当天收入或者支出的总和。。所以,在我们结账完毕的时候,更新日结账单时要以几个操作员的数据之和去更新。。。管理员可能一天中会有几次的去查看日结账单,为了保证是真实且最新的数据,这里我们分成两种情况。


         周结账单:在这个账单中,我们想要查的是这一周以来的收入支出情况,当然,有的时候我们不一定是隔一个星期查看一次,所以这个账单很人性化的给出了日期选择框,我们可以选择任意时间段内的资金流情况。


那么这时,问题又来了。。

问题(1):周结账单中应该以怎样的形式出现?

         既然是可以查任意时间段内的资金流,那么为什么还要叫做“周结账单”?这点可以暂时先忽略,比如我们要查前五天的账单,那么显示的时候应该是分别显示这五天的情况还是五天相加之后的数据?

问题(2):周结账单的数据库所对应的表中的数据应该是怎样更新?

          我们在结账完毕之后,应该以怎样的方式去更新checkweek表呢?既然是周结账单,那么是不是每条记录都应该是一周的数据总和?思考了一下,总结:当然不会是,那样我们差前五天的资金的时候要怎么办?所以,在我们更新checkweek 的时候,表中的记录应该也是一天资金流向当做一条记录。所以,当checkday跟新完了之后就要更新checkweek表。方法同上边的图。这样我们才能根据日期去查询一段时间内的资金状况(疑问是,这样的话,checkday表和checkweek表不就一模一样了么)。。对于一个程序来说,这只是一个方案,没有对与错。只要你觉得这样合理就可以。。

三、【经验教训】

        我在想,如果真的有一天数据库中的表都变成自己建的时候,应该会有多么难啊。要各种思考,各种修改吧。。从这些功能的实现中,我深刻的体会到,时时刻刻想着为人民服务到底有多重要。有一点没有想到就要给自己活着用户带来很大的麻烦。还有一点,就是要及时总结,全都做完了才一起总结这样会丢掉在做程序的时候的很多想法。边做边整理思路才是最真实的自己。


评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值