加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

机房收费系统之上机扣费

发布时间:2020-12-17 07:37:31 所属栏目:百科 来源:网络整理
导读:学生上机后,都会有一个扣费的过程,之前做这个的时候,想得很简单,就是下机时间减去上机时间,所得时间差就是上机消耗的时间,这里边有个漏洞就是,如果学生更改系统时间,结账后消耗金额就会为负数,总不能倒找钱吧!于是我改进了我的上机扣费程序,添加

学生上机后,都会有一个扣费的过程,之前做这个的时候,想得很简单,就是下机时间减去上机时间,所得时间差就是上机消耗的时间,这里边有个漏洞就是,如果学生更改系统时间,结账后消耗金额就会为负数,总不能倒找钱吧!于是我改进了我的上机扣费程序,添加了一个Timer控件,每隔多少分钟扣费一次,大概的流程是这样的:


代码如下:

<pre name="code" class="html">Private Sub DisTimer_Timer() '设置每分钟执行一次
    Dim mrcc As ADODB.Recordset
    Dim tSQL As String,tMSG As String
    '上机表
    tSQL = "select*from online_info"
    Set mrcc = ExecuteSQL(tSQL,tMSG)
    
    Do While Not mrcc.EOF '对所有学生执行一遍
    '基础数据表
        txtSQL = "select*from basicdata_info"
        Set mrc = ExecuteSQL(txtSQL,MsgText)
        
    '判断有无上机学生
        If mrcc.EOF Then
            Exit Sub
        End If
        
    '消费时间,每分钟加一
        DisTime = DisTime + 1
        
    '判断收费类型
        'DisTime<准备时间
        If DisTime <= Val(Trim(mrc.Fields(4))) Then
            mrcc.Fields(10) = 0
        End If
        
        '准备<DisTime<优惠
        If Val(Trim(mrc.Fields(4))) < DisTime <= Val(Trim(mrc.Fields(3))) Then
            mrcc.Fields(10) = 1 '可改为收取正常收费时的一半
        End If
        
        'DisTime>优惠时间:正常收费
        If DisTime > Val(Trim(mrc.Fields(3))) Then
            If T = 1 Then 'T用来循环
                mrcc.Fields(10) = Val(Trim(mrcc.Fields(10))) + Val(Trim(mrcc.Fields(12)))
            Else
                If T >= Val(Trim(mrc.Fields(3))) Then
                    T = 0
            End If
            T = T + 1
        End If

'判断余额是否充足
        Dim STU As ADODB.Recordset
        Dim sSQL As String,sText As String
         sSQL = "select*from student_info where cardno='" & Trim(mrcc.Fields(0)) & "'"
        Set STU = ExecuteSQL(sSQL,sText)
        If Val(Trim(STU.Fields(1))) < Val(Trim(mrcc.Fields(10))) Then
            txtCardNo.Text = mrcc.Fields(0)
            Call cmdDown_Click
        Else
            mrcc.Update
        End If
        mrcc.MoveNext
    Loop
End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读