【机房收费】结账

ゝ一世哀愁。 2022-09-25 11:20 292阅读 0赞

前言

  1. 感觉机房中最难的一部分就是结账这一部分了,越敲越乱,敲的曲曲折折的,真正弄懂结账这一块是第一次验收之后。结账是整个机房收费系统中除了上下机最核心的地方了,所以理清逻辑之后再敲,不然敲的时候会感觉乱七八糟的

分析

管理员是否需要结账?我认为的管理员就是大BOSS,大BOSS是不需要结账的,所以管理员是不需要结账的,而操作员是不需要结账的,而操作员就是大BOSS底下的员工,结账这个功能只有大BOSS才有,大BOSS是不用结自己的帐的,而结账结的是什么呢,就是操作员的营业额。一开始我理解的汇总是没什么作用的,只有点结账的时候才把售卡张数之类的东西显示出来,后来在敲代码的时候我发现不是这样的,点结账只是改变的结账状态,而汇总才是把所有的东西显示出来,这两种是不一样的,第一种在逻辑上是不合理的

  1. 下面介绍一下结账窗体的所有功能:
  2. 购卡:该操作员操作注册的学生
  3. 充值:该操作员操作的充值的学生
  4. 退卡:通过该操作员操作的退卡的所有学生
  5. 临时用户:该操作员操作注册的临时用户
  6. 退出:卸载窗体
  7. ![SouthEast][]
  8. 下面分析一下汇总的逻辑,请看下图,是我个人理解的汇总的流程

SouthEast 1

代码

  1. 以汇总为例,请看如下代码,每个人都有每个人的思维方式
  2. '使汇总成为一个按钮,单击汇总显示所有信息
  3. If SSTab1.Caption = "汇总" Then
  4. Dim i As Integer
  5. Dim recharge As Long '定义充值金额
  6. Dim consume As Long '定义消费金额
  7. Dim returncash As Long '定义退卡金额
  8. Dim profit As Long '
  9. Dim Cash As Long '定义余额
  10. If txtcash.Text = "0" Then '限制重复结账
  11. '售卡张数=未结账的学生人数
  12. txtConsumeCard.Text = mrc.RecordCount
  13. '退卡张数=退卡表里未结账的学生
  14. txtCancelCard.Text = mrc3.RecordCount
  15. '总售卡数=售卡张数+退卡张数
  16. txtAllcard.Text = Val(txtConsumeCard.Text) + Val(txtCancelCard.Text)
  17. '建立退卡表连接,计算退卡金额总和
  18. txtSQL5 = "select sum(CancelCash) from CancelCard_Info where status='正常下机'"
  19. Set mrc5 = ExecuteSQL(txtSQL5, MsgText5)
  20. If mrc5.BOF And mrc5.EOF Then
  21. returncash = 0
  22. txtCancelCash.Text = returncash
  23. Else
  24. If IsNull(Trim(mrc5.Fields(0))) Then
  25. returncash = 0
  26. txtCancelCash.Text = returncash
  27. Else
  28. returncash = mrc5.Fields(0)
  29. txtCancelCash.Text = returncash
  30. End If
  31. End If
  32. '建立充值表的连接,计算充值总金额
  33. txtSQL6 = "select sum(addmoney) from ReCharge_Info where UserID='" & Trim(cmbUserId.Text) & "' and status='未结账'"
  34. Set mrc6 = ExecuteSQL(txtSQL6, MsgText6)
  35. If mrc6.EOF And mrc6.BOF Then
  36. recharge = 0
  37. txtRechargeCash.Text = recharge
  38. Else
  39. If IsNull(Trim(mrc5.Fields(0))) Then
  40. recharge = 0
  41. txtRechargeCash.Text = recharge
  42. Else
  43. recharge = mrc6.Fields(0)
  44. txtRechargeCash.Text = recharge
  45. End If
  46. End If
  47. '建立学生表的连接,计算临时用户金额
  48. txtSQL7 = "select * from student_Info where userID='" & Trim(cmbUserId.Text) & "'" & " and type='临时用户'" & " and status='使用'"
  49. Set mrc7 = ExecuteSQL(txtSQL7, MsgText7)
  50. For i = 1 To mrc5.RecordCount
  51. txtTmpCash.Text = Val(txtTmpCash.Text) + Val(Trim(mrc5.Fields(7)))
  52. Next i
  53. mrc.Close
  54. '应收金额=临时收费金额+充值金额-退卡金额
  55. txtcash.Text = Val(txtTmpCash.Text) + Val(txtRechargeCash.Text) - Val(txtCancelCash.Text)
  56. End If
  57. End If
  58. 汇总之后需要把汇总的数据写到账单里面,这是需要注意的,代码很简单,具体代码我就不展示了

发表评论

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

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

相关阅读

    相关 机房收费结账

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

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

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

    相关 机房收费系统之结账

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

    相关 机房收费系统之结账

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

    相关 机房收费系统(一)

    1.在MDI窗体上不能使用控件,需要用一个容器来放控件,比如使用picturebox控件来当做容器,这时真能体会到巨人的力量,这时我查到了另外一种方法。用一个窗体做容器,把这些

    相关 机房重构结账之存储过程

    机房重构实现结账的时候用到了存储过程,其实开始的时候我并没有用存储过程,然后敲到需要更新表的时候顿时懵了,oh,my god ! So many tables 。 于是我又从头

    相关 机房-结账

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