机房中比较考验的逻辑思维的地方——结账!
结账简单的说就是把一样的钱汇总一下,但是汇总的时候要想把每一部分的钱整明白,还是需要好好考虑考虑的……让我们做一个好会计吧!
结账故名思议结的就是数据库表中那些“未结账”!
如图,这是要显示出来的内容:
下面我们来说一下内部是如何进行操作的吧:首先是我们这个过程是管理员给操作员结账,就是管理员来看一下这个操作员的工作情况,也就是售卡、充值、退卡等各项记录。
1、 购卡逻辑:(student_Info)
当我们选中一个操作员之后,购卡这个选项卡中出现的应该是这个操作员注册的并且没有结账的卡号信息。
2、 充值逻辑:(Recharge_Info)
将选中操作员进行的所有的未结账的充值记录调出来。
3、 退卡逻辑:(cancelcard_Info)
将选中操作员进行的所有的未结账的退卡记录调出来。
4、 临时用户逻辑:(student_Info)
将此操作员注册的、未退卡的、未结账的并且是临时用户的记录调出来。
5、 汇总:
由于是汇总,要将之前的所有细节问题汇总,所以用到了student_Info 、Recharge_Info 、cancelcard_Info 表。
售卡张数=购卡选项卡的记录总数
退卡张数=退卡选项卡的记录总数
退卡金额=cancelcard_Info表中的金额进行累加
总售卡数=售卡数-退卡数
注册和充值金额=student_Info 表中注册时候的充值金额+Recharge_Info 表中的充值金额(注册时的充值的钱和充值时充进去的钱其实都一样)
临时收费=临时收费选项卡记录中的卡号上机所消费的钱的总和(Line_Info)(只是用来显示)
应收金额=注册和充值金额-退卡金额
结账:将student_Info 、Recharge_Info、Cancelcard_Info 中的“未结账”改为“结账”。
下面展示一个代码范例(退卡选项卡):
<span style="font-size:24px;">'把所有退卡信息汇总到表格 txtSQL = "select studentNo,cardNo,date,time,cancelcash from CancelCard_Info where status='未结账' and UserID='" & cmbooperator.Text & "'" Set mrcCC = ExecuteSQL(txtSQL, Msgtext) If mrcCC.EOF Then cancelCash = 0 txttuikamoney = Val(cancelCash) Else flexgrid3.Rows = mrcCC.RecordCount + 1 With flexgrid3 .Row = 0 While mrcCC.EOF = False .Row = .Row + 1 .TextMatrix(.Row, 0) = " " & mrcCC.Fields(0) .TextMatrix(.Row, 1) = " " & mrcCC.Fields(1) .TextMatrix(.Row, 2) = " " & mrcCC.Fields(2) .TextMatrix(.Row, 3) = " " & mrcCC.Fields(3) .TextMatrix(.Row, 4) = " " & mrcCC.Fields(4) '退卡的所有金额 cancelCash = cancelCash + mrcCC.Fields(4) mrcCC.MoveNext Wend End With End If </span>
其他的选项卡代码都大同小异,就是用到的表不同罢了……
我们要先把所有的内部情况都想明白,才能不乱结账,才能做一个全心全意为老板服务的会计!