一、查看某操作员的工作数据信息

代码:

Private Sub comboUserName_Click()Dim txtSQL As StringDim MsgText As StringDim mrc As ADODB.Recordset'通过用户名,显示真实姓名txtSQL = "select * from User_Info where UserID='" & Trim(comboUserName.Text) & "'"Set mrc = ExecuteSQL(txtSQL, MsgText)txtTrueName.Text = mrc.Fields(3)mrc.Close'购卡If SSTab1.Tab = 0 ThenWith MSHFlexGrid1.CellAlignment = 4.Rows = 1.TextMatrix(0, 0) = "学号".TextMatrix(0, 1) = "卡号".TextMatrix(0, 2) = "日期".TextMatrix(0, 3) = "时间"'选择student表中用户名为combo且未结账的数据txtSQL = "select * from student_Info where UserID='" & _Trim(comboUserName.Text) & "'and Ischeck='" & "未结账" & "'"Set mrcS = ExecuteSQL(txtSQL, MsgText)Do While Not mrcS.EOF.Rows = .Rows + 1.CellAlignment = 4.TextMatrix(.Rows - 1, 0) = Trim(mrcS.Fields(1) & "").TextMatrix(.Rows - 1, 1) = Trim(mrcS.Fields(0) & "").TextMatrix(.Rows - 1, 2) = Trim(mrcS.Fields(12) & "").TextMatrix(.Rows - 1, 3) = Trim(mrcS.Fields(13) & "")mrcS.MoveNextLoopEnd WithEnd If'充值If SSTab1.Tab = 1 ThenWith MSHFlexGrid2.CellAlignment = 4.Rows = 1.TextMatrix(0, 0) = "学号".TextMatrix(0, 1) = "卡号".TextMatrix(0, 2) = "充值金额".TextMatrix(0, 3) = "日期".TextMatrix(0, 4) = "时间"'选择recharge表中用户名为combo、未结账的数据txtSQL = "select * from ReCharge_Info where UserID='" & Trim(comboUserName.Text) & _"' and status='" & "未结账" & "'"Set mrcR = ExecuteSQL(txtSQL, MsgText)Do While Not mrcR.EOF.Rows = .Rows + 1.CellAlignment = 4.TextMatrix(.Rows - 1, 0) = Trim(mrcR.Fields(1)) & "".TextMatrix(.Rows - 1, 1) = Trim(mrcR.Fields(2)) & "".TextMatrix(.Rows - 1, 2) = Trim(mrcR.Fields(3)) & "".TextMatrix(.Rows - 1, 3) = Trim(mrcR.Fields(4)) & "".TextMatrix(.Rows - 1, 4) = Trim(mrcR.Fields(5)) & ""mrcR.MoveNextLoopEnd WithEnd If'退卡If SSTab1.Tab = 2 ThenWith MSHFlexGrid3.CellAlignment = 4.Rows = 1.TextMatrix(0, 0) = "学号".TextMatrix(0, 1) = "卡号".TextMatrix(0, 2) = "退卡金额".TextMatrix(0, 3) = "日期".TextMatrix(0, 4) = "时间"'选择cancelcard表中用户名为combo、未结账的数据txtSQL = "select * from CancelCard_Info where UserID='" & Trim(comboUserName.Text) & _"'and status='" & "未使用" & "'"Set mrcc = ExecuteSQL(txtSQL, MsgText)Do While Not mrcc.EOF.Rows = .Rows + 1.CellAlignment = 4.TextMatrix(.Rows - 1, 0) = Trim(mrcc.Fields(0) & "").TextMatrix(.Rows - 1, 1) = Trim(mrcc.Fields(1) & "").TextMatrix(.Rows - 1, 2) = Trim(mrcc.Fields(2) & "").TextMatrix(.Rows - 1, 3) = Trim(mrcc.Fields(3) & "").TextMatrix(.Rows - 1, 4) = Trim(mrcc.Fields(4) & "")mrcc.MoveNextLoopEnd WithEnd If'临时用户If SSTab1.Tab = 3 ThenWith MSHFlexGrid4.CellAlignment = 4.Rows = 1.TextMatrix(0, 0) = "学号".TextMatrix(0, 1) = "卡号".TextMatrix(0, 2) = "日期".TextMatrix(0, 3) = "时间"'选择学生表中用户名为combo,类型为临时用户,且未结账的用户txtSQL = "select * from student_Info where UserID='" & Trim(comboUserName.Text) & _"'and type='" & "临时用户" & "'and Ischeck='" & "未结账" & "'"Set mrcS = ExecuteSQL(txtSQL, MsgText)Do While Not mrcS.EOF.Rows = .Rows + 1.CellAlignment = 4.TextMatrix(.Rows - 1, 0) = Trim(mrcS.Fields(1) & "").TextMatrix(.Rows - 1, 1) = Trim(mrcS.Fields(0) & "").TextMatrix(.Rows - 1, 2) = Trim(mrcS.Fields(12) & "").TextMatrix(.Rows - 1, 3) = Trim(mrcS.Fields(13) & "")mrcS.MoveNextLoopEnd WithEnd If'汇总If SSTab1.Tab = 4 Then'售卡数量txtSQL = "select * from student_Info where UserID='" & Trim(comboUserName.Text) & _"' and Ischeck='" & "未结账" & " ' and status='" & "使用" & "'"Set mrcS = ExecuteSQL(txtSQL, MsgText)If mrcS.RecordCount = 0 ThentxtSellCard.Text = "0"ElsetxtSellCard.Text = mrcS.RecordCountEnd If'退卡数量txtSQL = "select * from CancelCard_Info where UserID='" & Trim(comboUserName.Text) & _"'and status='" & "未使用" & "'"Set mrcc = ExecuteSQL(txtSQL, MsgText)If mrcc.RecordCount = 0 ThentxtRtnNum.Text = "0"ElsetxtRtnNum.Text = mrcc.RecordCounttuikaEnd If'退卡金额=该操作员操作的所有用户退卡金额的总和txtSQL = "select sum(CancelCash) from CancelCard_Info where UserID='" & Trim(comboUserName.Text) & _"'and status='" & "未使用" & "'"Set mrcc = ExecuteSQL(txtSQL, MsgText)If IsNull(Trim(mrcc.Fields(0))) ThentxtRtnSum.Text = "0"ElsetxtRtnSum.Text = Val(mrcc.Fields(0))End If'充值金额(不区分临时用户和固定用户)txtSQL = "select sum(addmoney) from Recharge_Info where UserID='" & Trim(comboUserName.Text) & _"'and status='" & "未结账" & "'"Set mrcR = ExecuteSQL(txtSQL, MsgText)If IsNull(Trim(mrcR.Fields(0))) ThentxtRechargeSum.Text = "0"ElsetxtRechargeSum.Text = Val(mrcR.Fields(0))End If'临时收费金额=临时用户注册金额txtSQL = "select * from student_Info where UserID = '" & Trim(comboUserName.Text) & "'and Ischeck='未结账' and type='临时用户'"Set mrcS = ExecuteSQL(txtSQL, MsgText)'------若所有临时用户已结账If mrcS.EOF = True ThenMsgBox "没有临时用户需要结账", , "提示"Dim ctl As Control'删除所有text文本框内容For Each ctl In ControlsIf TypeOf ctl Is TextBox Then ctl.Text = ""Next ctlElseEnd If'------txtTemporarySum.Text = Val(Trim(mrcS.Fields(7)))'总售卡数=售卡数量-退卡数量txtSaleCardNumber.Text = Val(txtSellCard.Text) - Val(txtRtnNum.Text)'应收金额=充值金额-退卡金额txtSum.Text = Val(txtRechargeSum.Text) - Val(txtRtnSum.Text)End IfEnd Sub

二、结账

结账的思路很简单,就两件事儿:

1.更新日结:计算日结账单中所需数据金额,并更新到表中;

1)若结过帐:更新表中数据;

2)未结过帐:添加新数据。

2.更新表

代码:

Private Sub cmdCheckout_Click()Dim RemainCash As StringDim RechargeCash As StringDim ConsumeCash As StringDim CancelCash As StringDim AllCash As StringIf comboUserName = "" ThenMsgBox "请选择操作员后再结账!", vbOKOnly, "提示"Exit SubEnd If'更新日结'计算上期充值卡余额txtSQL = "select sum(cash) from student_Info where UserID='" & Trim(comboUserName.Text) & "'and ischeck='" & "未结账" & "'"Set mrcS = ExecuteSQL(txtSQL, MsgText)If IsNull(mrcS.Fields(0)) ThenRemainCash = "0"ElseRemainCash = mrcS.Fields(0)End If'充值金额txtSQL = "select sum(addmoney) from Recharge_Info where status='未结账'and date='" & Date & "'"Set mrcR = ExecuteSQL(txtSQL, MsgText)If IsNull(mrcR.Fields(0)) = True ThenRechargeCash = "0"ElseRechargeCash = mrcR.Fields(0)End If'从Line表计算当日消费金额txtSQL = "select sum(consume) from Line_Info where offdate='" & Date & "'"Set mrcL = ExecuteSQL(txtSQL, MsgText)If IsNull(mrcL.Fields(0)) ThenConsumeCash = "0"ElseConsumeCash = mrcL.Fields(0)End If'更新计算当天的退卡金额,不会出现未结账的操作员txtSQL = "select sum(CancelCash) from CancelCard_Info where date='" & Date & "'and status='未使用'"Set mrcc = ExecuteSQL(txtSQL, MsgText)If IsNull(mrcc.Fields(0)) ThenCancelCash = "0"ElseCancelCash = mrcc.Fields(0)End If'更新到日结账单txtSQL = "select * from CheckDay_Info where  date='" & Date & "'"Set mrcDay = ExecuteSQL(txtSQL, MsgText)'若结过账,在原有基础上更新If Not mrcDay.EOF ThenmrcDay!RemainCash = Val(RemainCash) + mrcDay!RemainCashmrcDay!RechargeCash = Val(RechargeCash) + mrcDay!RechargeCashmrcDay!ConsumeCash = Val(ConsumeCash) + mrcDay!ConsumeCashmrcDay!CancelCash = Val(CancelCash) + mrcDay!CancelCashmrcDay!AllCash = Val(RemainCash) + Val(RechargeCash) - Val(ConsumeCash) - Val(CancelCash) + mrcDay!AllCashmrcDay!Date = DatemrcDay.UpdatemrcDay.ClosemrcL.ClosemrcS.CloseElse'若未结过账,添加新数据mrcDay.AddNewmrcDay!RemainCash = Val(RemainCash)mrcDay!RechargeCash = Val(RechargeCash)mrcDay!ConsumeCash = Val(ConsumeCash)mrcDay!CancelCash = Val(CancelCash)mrcDay!AllCash = Val(RemainCash) + Val(RechargeCash) - Val(CancelCash)mrcDay!Date = DatemrcDay.UpdatemrcS.ClosemrcL.ClosemrcDay.CloseEnd If'更新学生表txtSQL = "select * from student_Info where UserID='" & Trim(comboUserName.Text) & "'and Ischeck='" & "未结账" & "'"Set mrcS = ExecuteSQL(txtSQL, MsgText)Do While Not mrcS.EOFmrcS!ischeck = "结账"mrcS.UpdatemrcS.MoveNextLoopmrcS.Close'更新充值表txtSQL = "select * from Recharge_Info where UserID='" & Trim(comboUserName.Text) & "'and status='" & "未结账" & "'"Set mrcR = ExecuteSQL(txtSQL, MsgText)Do While Not mrcR.EOFmrcR!Status = "结账"mrcR.UpdatemrcR.MoveNextLoopmrcR.Close'更新退卡表txtSQL = "select * from CancelCard_Info where UserID='" & Trim(comboUserName.Text) & "'and status='" & "未结账" & "'"Set mrcc = ExecuteSQL(txtSQL, MsgText)Do While Not mrcc.EOFmrcc!ischeck = "结账"mrcc.Updatemrcc.MoveNextLoopmrcc.Close'清空文本框显示的信息Dim ctr1 As ControlFor Each ctr1 In Me.ControlsIf TypeOf ctr1 Is TextBox Thenctr1.Text = ""End IfNextMsgBox "结账成功!", vbOKOnly, "提示"Me.HideEnd Sub

【机房收费系统】---结账相关推荐

  1. VB.net版机房收费系统——结账功能实现(调错与优化)

    调错部分 上一篇博客<VB.net版机房收费系统--结账功能实现(代码部分>说的是结账功能的实现,亮出了代码.是在为这篇博客做铺垫.尽管结账功能代码是借鉴的巨人的博客.可是自己比着葫芦画瓢 ...

  2. VB.net版机房收费系统——结账功能实现(代码部分)

    实现结账功能的时候,被选项卡控件整的有点郁闷,瞬间脑袋就凌乱了,听上去自己好像很可笑的样子--于是,便去爬巨人的肩膀了~ 看了欢哥的博客,发现她的结账博客是按照"索引"思想写的,在 ...

  3. 机房收费系统的退卡和结账

    在做机房收费系统的时候为了保证核心功能的实现,我将计费时间调成了秒.这样就可以迅速,快捷地看到了收费的结果. 在这种环境下,我的机房收费系统不负众望,终于一次又一次将金额搞错,经过n次实验,将测试的结 ...

  4. 【机房收费系统】之结账

       机房收费系统中遇到的第二个难题就是结账的部分了.还是那句话,首先最重要的一点就是要有思路.不知道结账是谁结,不知道给谁结,那肯定也就无从谈起结账.下面是我对机房结账的一点理解.         ...

  5. 机房收费系统 之 结账BUG

    声明:以下内容只对将卡表和退卡表放在同一张表的同学适用! 最近大家都已经开始做VB.NET机房收费系统重构版,在这里跟大家聊聊我在机房收费系统中发现的漏洞. 在机房收费系统中有这样一个窗体--结账.个 ...

  6. 机房收费系统学生下机结账小结

    这几天一直在考虑机房收费系统学生下机操作.学生下机,一则须要加入学生下机记录信息:还须要计算学生在整 个上机过程中所花费的金额,而且更新学生剩余金额.那么如何做在性能上或者扩展上更好一些呢? 操作 1 ...

  7. VB查询数据库之结账——机房收费系统总结(五)

    对于机房收费的结账,我感觉是所有窗体中,最难的一个.这个窗体我真的做了好多天.它的难度系数我感觉是最高的. 首先,你要理清上机时间和收费标准的关系,在预备时间中,是不收费的. 其次,在超过预备时间,一 ...

  8. 机房收费系统总结【1】-整体流程

    前言: 拖了3个月终于学完了机房收费,真正做机房的时间不到一个月,拖了好久,不应该! 以后,在学习的过程中遇到的问题(计算机+心得体会)在今目标的项目上简单标注! 这个过程中自己解决的问题博客总结!还 ...

  9. 机房收费系统【VB版】——选择下机

    前言: 今天实现机房收费系统--一般用户--学生上机状态查看--选中全部/部分下机部分收获很多!多亏了看光哥的博客,写的很清楚机房收费系统--上机状态查询之下机 过程: 要显示的表格式写查询,就会出来 ...

  10. 机房收费系统(VB.NET)——超具体的报表制作过程

    之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件. 刚開始当然对这块功能非常不熟悉,只是探究了一段时间后还是把它做出来了. 以下 ...

最新文章

  1. 清华博士宅家太无聊,给猫咪讲函数
  2. 如何用Dart写一个单例
  3. 在XMPP的JAVA开源实现Openfire中,增加LBS 附近的人功能
  4. 添加FB登陆时,需要curl扩展
  5. Linux——less指令常用操作
  6. 今天的我也不太清楚的即时通讯
  7. zoj 1406 Jungle Roads
  8. stauml工具怎么导入文件_小伙教大家怎么剪辑短视频,1小时就学会添加字幕,值得收藏哦...
  9. 两个mysql主从同步_如何配置两个MySQL数据库之间的主从同步功能
  10. mybatis源码学习(二):SQL的执行过程
  11. HuaWei ❀ Radius协议概述
  12. excel工具栏隐藏了怎么办_?Excel菜单栏中工具栏突然不见了,怎么办?
  13. qwert rfgfgfh
  14. 解除当前设置不允许下载该文件
  15. java实现猴子排序_java实现猴子排序(BogoSort)
  16. 优化工具MOZ功能详细解说
  17. VBA--LBound函数与UBound函数用法详解
  18. AR儿童绘本技术实现
  19. java 从excel中读取数据_java中怎样从Excel中读写数据
  20. oracle中12560,请问Oracle错误 了,ORA-12560该如何解决?

热门文章

  1. 控制台之console
  2. WCF 第十二章 对等网 使用自定义绑定实现消息定向
  3. 应用程序工程文件组织重要性
  4. 【Java从0到架构师】项目实战 - 驾考(旧)- Freemarker、MyBatis-Plus
  5. 【Java从0到架构师】JS_jQuery_BootStrap
  6. 【SpringBoot】 配置文件的拆分
  7. js问题集锦~持续更新
  8. 算法图解学习笔记01之二分查找
  9. python进阶12并发之八多线程与数据同步
  10. 学会这个大屏神器,低代码开发高端可视化大屏不在话下