机房收费的周结账单是日结账单的衍生,因为在每一天中都可以结好几次帐,最后在日结账单表中一天的记录有好几个,而周结账单就是为了解决这个问题。把每一天的记录汇总成一条来显示出来,方便管理员清楚的了解到每天的营业情况。
大致思路
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
到此整个周结账单表中的数据就添加好了。