机房收费系统之结账

偏执的太偏执、 2022-08-04 09:11 336阅读 0赞
  1. 机房收费系统中一个重要的窗体之一就是结账窗体,因为涉及到数据库中的好多表所以刚开始会觉得很难,其实理清思路后按照自己的思路写完后便觉得没有想象中的那么难!好先来看一下窗体界面:

Center

  1. 说明:操作员用户名:combo1,操作员真实姓名:combo2
  2. 总售卡数=售卡张数-退卡张数
  3. 临时收费金额=临时用户注册和充值的钱
  4. 应收金额=充值金额-退卡金额
  5. 一开始看到这个界面的控件时不知道是什么控件,但是我记得之前敲百例的时候用过这么一个控件所以我就把之前百例里面的涉及到这个控件的例子找到,知道了它是什么控件!
  6. 操作员用户名和操作员真实姓名我本来是从User\_Info表里查的,但是师傅说如果有好多操作员打开combox时里面有好多的数据,有的今天就没有登录或做售卡,充值,退卡等的操作的工作所以就没有必要显示!我后来想了想觉得结账是要每天就要结账所以我就打算用worklog\_Info这个表但是这个表里没有UserName所以我就在这个表里加了一列。
  7. Private Sub Form_Load()
  8. Dim mrc As ADODB.Recordset
  9. Dim MsgText As String
  10. Dim txtSQL As String
  11. Dim i As Integer
  12. txtSQL = "select*from worklog_Info where LoginDate= '" & Trim(Date) & "'" & " and level= '操作员' " '今天登录过的操作员
  13. Set mrc = ExecuteSQL(txtSQL, MsgText)
  14. For i = 1 To mrc.RecordCount '用户名
  15. Combo1.AddItem mrc.Fields(1)
  16. mrc.MoveNext
  17. Next i
  18. mrc.Close
  19. End Sub
  20. Private Sub Combo1_Click()
  21. Dim txtSQL, MsgText As String
  22. Dim mrc As ADODB.Recordset
  23. If Combo1.Text = "" Then
  24. MsgBox "请输入操作员用户名!", vbOKOnly + vbExclamation, "警告"
  25. Exit Sub
  26. End If
  27. txtSQL = "select * from worklog_Info where UserID='" & Trim(Combo1.Text) & "'" & " and LoginDate = '" & Trim(Date) & "'" '今天登录过的操作员
  28. Set mrc = ExecuteSQL(txtSQL, MsgText)
  29. Combo2.Text = Trim(mrc.Fields(9))
  30. mrc.Close
  31. End Sub

SSTab里就仅列汇总窗体

  1. Private Sub SSTab1_Click(PreviousTab As Integer)
  2. Dim txtSQL As String
  3. Dim txtSQL1 As String
  4. Dim txtSQL2 As String
  5. Dim txtSQL3 As String
  6. Dim MsgText As String
  7. Dim MsgText1 As String
  8. Dim Msgtext2 As String
  9. Dim msgText3 As String
  10. Dim mrc As ADODB.Recordset
  11. Dim mrc1 As ADODB.Recordset
  12. Dim mrc2 As ADODB.Recordset
  13. Dim mrc3 As ADODB.Recordset
  14. Dim a, b, c, d As Long
  15. Dim i As Integer
  16. Select Case SSTab1.Tab
  17. '汇总
  18. Case 4
  19. '售卡张数
  20. txtSQL = "select * from student_Info where UserID='" & Trim(Combo1.Text) & "'" & "and Ischeck='未结账'"
  21. Set mrc = ExecuteSQL(txtSQL, MsgText)
  22. txtsellcard.Text = mrc.RecordCount
  23. '退卡数
  24. txtSQL2 = "select * from CancelCard_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='未结账'"
  25. Set mrc2 = ExecuteSQL(txtSQL2, Msgtext2)
  26. txtcancelcard.Text = mrc2.RecordCount '退卡张数
  27. txtallsellcard.Text = Val(txtsellcard.Text) - Val(txtcancelcard.Text) '总售卡张数
  28. '充值金额
  29. txtSQL1 = "select sum(addmoney) from ReCharge_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='" & "未结账" & "'"
  30. Set mrc1 = ExecuteSQL(txtSQL1, MsgText1)
  31. If mrc1.EOF And mrc1.BOF Then
  32. a = 0
  33. Else
  34. If IsNull(Trim(mrc1.Fields(0))) Then
  35. a = 0
  36. Else
  37. a = mrc1.Fields(0)
  38. End If
  39. End If
  40. txtrecharge.Text = a
  41. '退卡金额
  42. txtSQL3 = "select sum(CancelCash) from CancelCard_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='未结账'"
  43. Set mrc3 = ExecuteSQL(txtSQL3, msgText3)
  44. If mrc3.BOF And mrc3.EOF Then
  45. b = 0
  46. Else
  47. If IsNull(Trim(mrc3.Fields(0))) Then
  48. b = 0
  49. Else
  50. b = mrc3.Fields(0)
  51. End If
  52. End If
  53. txtcancelcash.Text = b
  54. '临时收费金额
  55. txtSQL = "select sum(addmoney) from ReCharge_Info where UserID='" & Trim(Combo1.Text) & "'" & " and type= '临时用户' " & "and status='未结账'"
  56. Set mrc = ExecuteSQL(txtSQL, MsgText)
  57. If mrc.BOF And mrc.EOF Then
  58. c = 0
  59. Else
  60. If IsNull(Trim(mrc.Fields(0))) Then
  61. c = 0
  62. Else
  63. c = mrc.Fields(0)
  64. End If
  65. End If
  66. txttmpcash.Text = c
  67. '应收金额
  68. txtallcash.Text = a - b
  69. End Select
  70. End Sub

结账:

  1. Private Sub cmdcheck_Click()
  2. Dim txtSQL As String
  3. Dim txtSQL1 As String
  4. Dim srtsql As String
  5. Dim MsgText As String
  6. Dim MsgText1 As String
  7. Dim Msgtext2 As String
  8. Dim mrc As ADODB.Recordset
  9. Dim mrc1 As ADODB.Recordset
  10. Dim rst As ADODB.Recordset
  11. Dim recharge As Long
  12. Dim consume As Long
  13. Dim returncash As Long
  14. Dim profit As Long
  15. Dim cash As Long
  16. '更新学生表
  17. txtSQL = "select * from student_Info where UserID ='" & Combo1.Text & "'" & "and Ischeck='未结账'"
  18. Set mrc = ExecuteSQL(txtSQL, MsgText)
  19. Do While Not mrc.EOF
  20. mrc!Ischeck = "已结账"
  21. mrc.MoveNext
  22. Loop
  23. mrc.Close
  24. '更新充值表
  25. txtSQL1 = "select * from ReCharge_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='未结账'"
  26. Set mrc1 = ExecuteSQL(txtSQL1, MsgText1)
  27. Do While Not mrc1.EOF
  28. mrc1!Status = "已结账"
  29. mrc1.MoveNext
  30. Loop
  31. mrc1.Close
  32. '更新退卡表
  33. txtSQL = "select * from CancelCard_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='未结账'"
  34. Set mrc = ExecuteSQL(txtSQL, MsgText)
  35. Do While Not mrc.EOF
  36. mrc!Status = "已结账"
  37. mrc.MoveNext
  38. Loop
  39. mrc.Close
  40. '消费金额
  41. txtSQL1 = "select sum(consume)from Line_Info where status = '" & "正常下机" & "'"
  42. Set mrc1 = ExecuteSQL(txtSQL1, MsgText1)
  43. If mrc1.BOF And mrc1.EOF Then
  44. consume = 0 '消费金额
  45. Else
  46. If IsNull(Trim(mrc1.Fields(0))) Then
  47. consume = 0
  48. Else
  49. consume = mrc1.Fields(0)
  50. End If
  51. End If
  52. '当日退卡金额
  53. txtSQL = "select sum(CancelCash) from CancelCard_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='未结账'"
  54. Set mrc = ExecuteSQL(txtSQL, MsgText)
  55. If mrc.BOF And mrc.EOF Then
  56. returncash = 0
  57. Else
  58. If IsNull(Trim(mrc.Fields(0))) Then
  59. returncash = 0
  60. Else
  61. returncash = mrc.Fields(0)
  62. End If
  63. End If
  64. '当日充值金额
  65. txtSQL1 = "select sum(addmoney) from Recharge_Info where UserID='" & Trim(Combo1.Text) & "'" & "and status='" & "未结账" & "'"
  66. Set mrc1 = ExecuteSQL(txtSQL1, MsgText1)
  67. If mrc.EOF And mrc.BOF Then
  68. recharge = 0
  69. Else
  70. If IsNull(Trim(mrc.Fields(0))) Then
  71. recharge = 0
  72. Else
  73. recharge = mrc.Fields(0)
  74. End If
  75. End If
  76. profit = Val(recharge - consume - returncash) '本期金额
  77. ' cash=
  78. '更新日结账单
  79. srtsql = "select * from CheckDay_Info "
  80. Set rst = ExecuteSQL(srtsql, Msgtext2)
  81. rst.MoveLast
  82. cash = rst.Fields(4)
  83. rst.AddNew
  84. rst.Fields(0) = cash
  85. rst.Fields(1) = recharge
  86. rst.Fields(2) = consume
  87. rst.Fields(3) = returncash
  88. rst.Fields(4) = profit
  89. rst.Fields(5) = Date
  90. rst.Update
  91. rst.Close
  92. MsgBox "结账成功!", vbOKOnly + vbInformation, "恭喜您"
  93. End Sub

其实只要理清关系写的时候就好写了!

发表评论

表情:
评论列表 (有 0 条评论,336人围观)

还没有评论,来说两句吧...

相关阅读

    相关 机房收费结账

    前言       感觉机房中最难的一部分就是结账这一部分了,越敲越乱,敲的曲曲折折的,真正弄懂结账这一块是第一次验收之后。结账是整个机房收费系统中除了上下机最核心的地方了

    相关 机房收费系统——结账

        机房收费系统的逻辑性很强。师傅也说了,第一次做机房,首要的是理清思路,明白它的逻辑。     做到结账这里,跟大家分享一下我对结账的一点理解: ![SouthEas

    相关 机房收费系统结账

    事实上,我觉得机房收费系统中结账的部分是耗我精力最多的。首先我就不明白结账是干嘛的,所以一上来就晕乎乎。后来看了一篇博客说结账方便老板管理的才明白了为什么是“操作员”。这里面要

    相关 机房收费系统结账

           机房收费系统中一个重要的窗体之一就是结账窗体,因为涉及到数据库中的好多表所以刚开始会觉得很难,其实理清思路后按照自己的思路写完后便觉得没有想象中的那么难!好先来看

    相关 机房-结账

    开篇:     结账这块感觉也是一个难点,但其实正是这种不好弄的窗体我们才能学到很多,把这块弄完回头看的时候,发现还不是太难,毕竟人总是向前发展的哈!   逻辑过程

    相关 机房收费系统导出Excel

    机房中很多窗体都有导出Excel这个功能,(像我这种懒人,怎可能每次用到这个功能就敲一遍代码呢)为了方便我们可以把这部分的代码写到模块中,之后每次使用直接调用即可。可重用,减少