機房收費系統之周結賬單
阿新 • • 發佈:2019-02-16
機房收費的周結賬單是日結賬單的衍生,因為在每一天中都可以結好幾次帳,最後在日結賬單表中一天的記錄有好幾個,而周結賬單就是為了解決這個問題。把每一天的記錄彙總成一條來顯示出來,方便管理員清楚的瞭解到每天的營業情況。
大致思路
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
到此整個周結賬單表中的資料就新增好了。