机房收费的周结账单是日结账单的衍生,因为在每一天中都可以结好几次帐,最后在日结账单表中一天的记录有好几个,而周结账单就是为了解决这个问题。把每一天的记录汇总成一条来显示出来,方便管理员清楚的了解到每天的营业情况。
大致思路
1.周结账单表是可以选择起始日期和终止日期来查看最近的消费情况。
2.周结账单表是一张空的表,在需要的时候才添加数据,不需要的时候就会删除整个表中的数据。
3.由于是一张空表,所以我们要添加记录
4.我们要汇总每一天的总的消费、总退卡钱数、总充值钱数
代码过程
删除操作
我们要在每一刷新的时候,都删掉表中的数据,然后再添加。
txtsql = "delete from checkweek" '执行删除命令 Set mrc = executesql(txtsql, msgtext)
添加空表数据
Do While endtime.Value - starttime.Value >= 0 txtsql1 = "select * from checkday where date ='" & Trim(starttime.Value - 1) & "'" Set mrcc = executesql(txtsql1, msgtext) If mrcc.EOF = True Then mrcc.AddNew mrcc.Fields(0) = 0 mrcc.Fields(1) = 0 mrcc.Fields(2) = 0 mrcc.Fields(3) = 0 mrcc.Fields(4) = 0 mrcc.Fields(5) = starttime.Value - 1 mrcc.Update End If Loop
通过执行指针的操作来判断空表的存在,从而添加数据。
消费、退卡,充值汇总
此过程需要连接两次数据库
代码如下:
Do '执行汇总,得到各个记录的汇总 txtsql = "select sum(lastdate),SUM(onconsume),SUM(onrecharge),SUM(onreturn),sum(ondateall) from checkday where date='" & Trim(starttime.Value) & "'" Set mrc = executesql(txtsql, msgtxt) '上次剩余金额 txtsql2 = "select * from checkday where date='" & Trim(starttime.Value - 1) & "'" Set mrc2 = executesql(txtsql2, msgtext) mrc2.MoveLast lastremain = mrc2.Fields(4) mrc2.Close '开始添加数据 txtsql1 = "select * from checkweek where date='" & Trim(starttime.Value) & "'" Set mrcc = executesql(txtsql1, msgtext)
'此过程是用来把汇总表中记录添加到周结账单表中
mrcc.AddNew mrcc.Fields(0) = lastremain mrcc.Fields(1) = mrc.Fields(1) mrcc.Fields(2) = mrc.Fields(2) mrcc.Fields(3) = mrc.Fields(3) mrcc.Fields(4) = lastremain + mrc.Fields(1) - mrc.Fields(3) + mrc.Fields(2) mrcc.Fields(5) = starttime.Value mrcc.Update starttime.Value = starttime.Value + 1 Loop
到此整个周结账单表中的数据就添加好了。