前言:之前以为自己机房收费系统马上就要收官了,结果最近自己发现还少点功能:那就是动态计费功能与强制下机功能。本次博客分为两个模块:第一模块为主界面的动态计费及强制下机,第二模块为学生上机状态查询的选中下机模块。
两个难点的功能分别参考了十五期张铎和十四期李光师哥的博客,在此向两位巨人表示感谢。
动态计费:**针对来上机的学生的功能。**我们在去网吧的时候想必都查过自己的余额,因为有时候玩得昏天黑地的也不知道自己还剩几个钱了,总不能在玩得最激烈的时候被系统提醒没钱,还要离开机位去充钱吧,万一你挂机的这会时间就被翻盘了怎么办(雾)。所以这个动态计费就是给用户最直观地提供当前的消费情况,便于用户之后做下一步决定,是去充钱还是消费完后离开。
选择下机:**针对操作员的功能。**当上机人数很多,而要离开的学生也很多但又不是所有学生离开的情况下,我们肯定不能一个个地给学生下机,所以这时候我们就需要批量操作:下机具体的多名学生并结帐。
一、动态计费:
动态计费的流程图:
动态计费中的代码:
Private Sub Timer2_Timer()
Dim mrcol As ADODB.Recordset
Dim mrcs As ADODB.Recordset
Dim mrcl As ADODB.Recordset
Dim mrcoloff As ADODB.Recordset
Dim mrcbd As ADODB.RecordsetDim alltime As Integer
Dim unitTime As Integer
Dim costmoney As Integer
Dim balance As Integer
Dim unitmoney As Integer
Dim i As IntegerDim cardno As String
txtSQL = "select cash from student_info,online_info where student_info.cardno=online_info.cardno"
Set mrcs = ExecuteSQL(txtSQL, MsgText)
txtSQL = "select * from online_info"
Set mrcol = ExecuteSQL(txtSQL, MsgText)
'判断是否有卡号上机
If mrcol.EOF Then
Timer2.Enabled = False
Exit Sub
Else
mrcol.MoveFirst
End If
'将上机卡号定义为一个数组
ReDim a(mrcol.RecordCount) As String
For i = 0 To mrcol.RecordCount - 1
a(i) = Trim(mrcol!cardno)
cardno = a(i)
'查询表
txtSQL = "select * from online_info where cardno='" & Trim(cardno) & "