机房收费系统调错总结(一)

上次师傅验收提出了很多问题,也让我进一步理解了机房收费系统里面的逻辑关系,以及设计一个软件如何更好的使它人性化,更好的服务用户,这才是软件设计者应该时刻谨记的----服务用户。

问题一:结账

结账窗体和注册窗体、充值窗体、退卡窗体是紧密联系在一起的。

结账中的操作员应该是登陆者,而登陆者是由注册窗体中的UserId所赋值的(这里我一开始把userid赋值错了,导致不能出现该操作者的所有信息),该操作者所注册的卡号,充值的卡号,以及所退的卡号,都会一一在结账窗体中呈现。

这里所呈现在各个MSFlexGrid的内容都被封装在一个函数中:

Private Sub viewdate() '根据已经选择好的人员信息来修改SSTab里面的汇总信息
    Dim txtSQL As String
    Dim MsgText As String
    Dim Smsgtext As String
    Dim mrcSD As ADODB.Recordset
    Dim mrcRC As ADODB.Recordset
    Dim mrcCC As ADODB.Recordset
    Dim mrclin As ADODB.Recordset
    Dim mrcS As ADODB.Recordset
    Dim RechargeCash As Variant '用于存储 充值的 所有金额
    Dim cancelCash As Variant   '用于存储 退钱的 所有金额
    Dim linshiCash As Variant   '用户存储 临时收费的所有金额
    
    '把操作员的所有信息,未结账的显示出来 学生表
    txtSQL = "select studentno,cardno,cash,date,time from student_Info where ischeck='未结账' and userid='" & cboUser.Text & "'"
    Set mrcSD = ExecuteSQL(txtSQL, MsgText)
    
    MfgBugCard.Rows = mrcSD.RecordCount + 1
    
    With MfgBugCard
        .Row = 0
        While mrcSD.EOF = False
            .Row = .Row + 1
            .TextMatrix(.Row, 0) = " " & mrcSD.Fields(0)
            .TextMatrix(.Row, 1) = " " & mrcSD.Fields(1)
            .TextMatrix(.Row, 2) = " " & mrcSD.Fields(2)
            .TextMatrix(.Row, 3) = " " & mrcSD.Fields(3)
            .TextMatrix(.Row, 4) = " " & mrcSD.Fields(4)
            mrcSD.MoveNext
        Wend
    End With
    
    '把该操作员的所有未结账的充值信息汇总到表格,一个注册信息对应一个充值信息
    txtSQL = "select studentno,cardno,addmoney,date,time from recharge_Info where status='未结账' and userid='" & cboUser.Text & "'"
    Set mrcRC = ExecuteSQL(txtSQL, MsgText)
    
    MfgRecharge.Rows = mrcRC.RecordCount + 1
    
    With MfgRecharge
        .Row = 0
        
        While mrcRC.EOF = False
            .Row = .Row + 1
            .TextMatrix(.Row, 0) = " " & mrcRC.Fields(0)
            .TextMatrix(.Row, 1) = " " & mrcRC.Fields(1)
            .TextMatrix(.Row, 2) = " " & mrcRC.Fields(2)
            .TextMatrix(.Row, 3) = " " & mrcRC.Fields(3)
            .TextMatrix(.Row, 4) = " " & mrcRC.Fields(4)
            RechargeCash = RechargeCash + mrcRC.Fields(2)
            mrcRC.MoveNext
        Wend
     End With
     
     '把操作员所有的退卡信息汇总到表格
     txtSQL = "select studentno,cardno,cancelcash,date,time from cancelcard_Info where status='未结账' and userid='" & cboUser.Text & "'"
     Set mrcCC = ExecuteSQL(txtSQL, MsgText)
     
     With MfgCancelCard
        .Row = 0
        
        While mrcCC.EOF = False
            .Rows = .Rows + 1
            .TextMatrix(.Row, 0) = " " & mrcCC.Fields(0)
            .TextMatrix(.Row, 1) = " " & mrcCC.Fields(1)
            .TextMatrix(.Row, 2) = " " & mrcCC.Fields(2)
            .TextMatrix(.Row, 3) = " " & mrcCC.Fields(3)
            .TextMatrix(.Row, 4) = " " & mrcCC.Fields(4)
            cancelCash = cancelCash + mrcCC.Fields(2)
            mrcCC.MoveNext
        Wend
    End With
    '把操作员的临时用户信息汇总到表格
    txtSQL = "select studentno,cardno,date,time,cash from student_Info where type='临时用户' and userid='" & cboUser.Text & "'and ischeck='未结账'"
    Set mrcS = ExecuteSQL(txtSQL, MsgText)
    If mrcS.EOF Then
    linshiCash = 0
    Else
    txtSQL = "select * from line_Info where cardno='" & Trim(mrcS.Fields(0)) & "'"
    Set mrclin = ExecuteSQL(txtSQL, MsgText)
    
        MSFlexGrid4.Rows = mrcS.RecordCount + 1
        With MSFlexGrid4
        
        
    While mrcS.EOF = False
        .Rows = .Rows + 1
        .TextMatrix(.Rows - 1, 0) = Trim(mrcS.Fields(0))
        .TextMatrix(.Rows - 1, 1) = Trim(mrcS.Fields(1))
        .TextMatrix(.Rows - 1, 2) = Trim(mrcS.Fields(2))
        .TextMatrix(.Rows - 1, 3) = Trim(mrcS.Fields(3))
        .TextMatrix(.Rows - 1, 4) = Trim(mrcS.Fields(4))
        
        linshiCash = linshiCash + Val(Trim(mrclin.Fields(11)))
        mrclin.MoveNext
        mrcS.MoveNext
    Wend
    End With
    End If
    
        '然后,把操作员的所有统计信息汇总到汇总列表
        txtSalecard = mrcSD.RecordCount
        txtTuikaShu = mrcCC.RecordCount
        txtreChargeCash = Val(RechargeCash)
        txtTuikaCash = Val(cancelCash)
        txtAllSalecard = Val(txtSalecard.Text) - Val(txtTuikaShu.Text)
        txtReciveCash = Val(txtreChargeCash.Text) - Val(txtTuikaCash.Text)
        txtLinshiCash.Text = Val(linshiCash)
        
        mrcSD.Close
        mrcRC.Close
        mrcCC.Close
        
        
End Sub

然后当点击操作员时调用这个函数,出现相应的信息。

问题二:收取金额查询窗体

(1)充值教师为登陆者

(2)把本卡号注册的金额也要放进来

思路:收取金额查询中的金额是从充值表中获得的,所以现在把注册的金额添加进充值表中即可。

 number = Trim(mrcc.Fields(1)) '获得学号
        LastCash = Val(Trim(CStr(mrcc.Fields(7)))) '获得注册金额
        
        If mrcc.EOF = False Then
            Sum = Val(txtRegisterMoney.Text) + Val(mrcc.Fields(7))
(3)点击查询时总是循环出现结果


思路:当查询没有数据时先清空MSFlexGrid部件,令其行数为0,当有结果时行数设为1,若出现多条记录,则行数不断加1。

If mrc.EOF Then
         MsgBox "没有数据!", vbOKOnly + vbExclamation, "提示"
         MSFlexGrid1.Clear
         MSFlexGrid1.Rows = 0
         Exit Sub
        
     Else
         With MSFlexGrid1
           .Rows = 1
           .CellAlignment = 4
           .ColWidth(0) = 2000
           .ColWidth(2) = 2000
           .ColWidth(3) = 2000
           .TextMatrix(0, 0) = "卡号"
           .TextMatrix(0, 1) = "充值金额"
'           .TextMatrix(0, 2) = "本卡注册金额"
           .TextMatrix(0, 2) = "充值日期"
           .TextMatrix(0, 3) = "充值时间"
           .TextMatrix(0, 4) = "充值教师"
           .TextMatrix(0, 5) = "结账状态"
         Do While Not mrc.EOF
           .Rows = .Rows + 1
           .CellAlignment = 4
           .TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(2))
           .TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(3))
'           .TextMatrix(.Rows - 1, 2) = Trim(mrc1.Fields(7))
           .TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(4))
           .TextMatrix(.Rows - 1, 3) = Trim(mrc.Fields(5))
           .TextMatrix(.Rows - 1, 4) = Trim(mrc.Fields(6))
           .TextMatrix(.Rows - 1, 5) = Trim(mrc.Fields(7))
           mrc.MoveNext
        Loop
        End With
    End If
    mrc.Close



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值