机房收费系统—日结账单
前言??这个星期机房敲完了日周结账单和上下机,但是不同的人看待问题的角度不一样,所以大家做出来的机房也有一些差别,下面我就说一说我的想法。 问题的由来??经过机房收费系统的尝试,相信大家都对原来的系统有了一些想法,或许原来的系统有些地方优化的不是很好,当然也正是因为这样给了我们想象的空间。 逻辑流程图??带着这三个问题,我进行了思考。当我们要动手写代码之前必须要弄清楚逻辑,那么流程图将是一个十分好用的工具。下面就是我的流程图: 部分代码展示??这是一直将缺失的数据更新到今天的代码 '将日结表中数据一直更新到今天
'查询日结表中最大的日期
txtsql = "select Top 1 date from CheckDay_Info order by date DESC"
Set mrc = ExecuteSQL(txtsql,msgtext)
MaxDate = mrc.Fields(0)
'当最大日期小于昨天的日期时
Do While MaxDate <= (Date - 1)
'查询最大日期那天的余额
txtsql = "select AllCash from CheckDay_Info where date = '" & MaxDate & "'"
Set mrc = ExecuteSQL(txtsql,msgtext)
If IsNull(mrc.Fields(0)) = True Then
remaincash = 0
Else
remaincash = mrc.Fields(0)
End If
'查询最大日期后一天的充值金额
txtsql = "select sum(addmoney) from Recharge_Info where date = '" & MaxDate + 1 & "'"
Set mrc = ExecuteSQL(txtsql,msgtext)
If IsNull(mrc.Fields(0)) = True Then
rechargecash = 0
Else
rechargecash = mrc.Fields(0)
End If
'查询最大日期后一天的消耗金额
txtsql = "select sum(consume) from Line_Info where offdate = '" & MaxDate + 1 & "'"
Set mrc = ExecuteSQL(txtsql,msgtext)
If IsNull(mrc.Fields(0)) = True Then
consumecash = 0
Else
consumecash = mrc.Fields(0)
End If
'查询最大日期后一天的退换金额
txtsql = "select sum(CancelCash) from CancelCard_Info where date = '" & MaxDate + 1 & "'"
Set mrc = ExecuteSQL(txtsql,msgtext)
If IsNull(mrc.Fields(0)) = True Then
cancelcash = 0
Else
cancelcash = mrc.Fields(0)
End If
'计算最大日期后一天的余额
allcash = remaincash + rechargecash - consumecash - cancelcash
'最大日期加1
MaxDate = MaxDate + 1
'向日结表中插入最大日期后一天的数据
txtsql = "insert into CheckDay_Info values(" & remaincash & "," & rechargecash & _
"," & consumecash & "," & cancelcash & "," & allcash & ",'" & MaxDate & "')"
Call ExecuteSQL(txtsql,msgtext)
Loop
总结??其实我们认为的很难,只是我们不熟悉而已,如果看两篇巨人们的博客,理清自己的思路之后,所谓的很难也就那么回事而已。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |