机房结账

2023-10-24 00:48
文章标签 机房 结账

本文主要是介绍机房结账,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

感受

机房项目总共有三个大难点,其中比较重要的分别是上下机和结账,而组合查询因为没有涉及到金钱,所以暂居两者之后。之前我曾分享了自己对于上机,下机的想法,所以这次我就来写写结账窗体的那二三事。
1.预载用户列

Private Sub Form_Load()Dim txtSQL As StringDim Msgtext As StringDim mrc As ADODB.RecordsettxtSQL = "select * from User_Info where Level = '操作员'"Set mrc = ExecuteSQL(txtSQL, Msgtext)Do While Not mrc.EOFComboUserID.AddItem mrc!UserIDmrc.MoveNextLoopIf Trim(ComboUserID.Text) = "" ThenMsgBox "没有用户,请先添加用户!", vbOKOnly + vbExclamation, "提示"FrmADUser.ShowEnd If
End sub

2.选择加载
在这里插入图片描述
根据选择的用户,自动加载相关的信息

    Dim txtSQL As StringDim Msgtext As StringtxtSQL = "select * from xx表 where UserID(以数据表为准) = '" & Trim(ComboUserID) & "'" & "and Ischeck = '未结账'"    '连接至数据库Set mrc = ExecuteSQL(txtSQL, Msgtext)With MSFlexGrid1                                '加载模板.ColWidth(2) = 1800.Rows = 1.CellAlignment = 4.TextMatrix(0, 0) = "学号".TextMatrix(0, 1) = "卡号".TextMatrix(0, 2) = "日期".TextMatrix(0, 3) = "时间"End WithDo While Not mrc.EOFWith MSFlexGrid1                        '将回执信息显示在窗体上.ColWidth(2) = 1800.Rows = .Rows + 1.CellAlignment = 4.TextMatrix(.Rows - 1, 0) = Trim(mrc!studentNo).TextMatrix(.Rows - 1, 1) = Trim(mrc!cardno).TextMatrix(.Rows - 1, 2) = Trim(mrc!Date).TextMatrix(.Rows - 1, 3) = Trim(mrc!Time)mrc.MoveNextEnd WithLoop

3.金钱计算(!!!)
在这里插入图片描述
售卡张数 = 学生表中该操作员旗下未结账的记录
退卡张数 = 退卡表中该操作员旗下未结账的记录
充值金额 = 充值表中该操作员旗下未结账的记录的充值金额之和
退卡金额 = 退卡表中该操作员旗下未结账的记录的退款金额之和
总售卡数 = 学生表中该操作员旗下未结账的记录 + 退卡表中该操作员旗下未结账的记录
应收金额 = 充值金额 - 退卡金额
需要注意的是:充值金额不仅仅包含了充值时的记录,购卡时的金额也是充值表的一部分忽略这一点就会出现对不清账的情况
计算的方法基本是共同的

txtSQL = "select * from student_Info where UserID = '" & Trim(ComboUserID.Text) & "'" & "and Ischeck = '未结账'"    '售卡统计Set mrc = ExecuteSQL(txtSQL, Msgtext)i = 0Do While Not mrc.EOFi = i + 1mrc.MoveNextLoopTxtSellCard.Text = i

4.数据更新(闭环)(!!!)
在将金额计算正确之后,需要将相关的数据更新到各个表中,结账一共涉及到了四个表的更新,分别是学生表,充值表,退卡表,以及日结账单

	txtSQL = "select * from Recharge_Info where userID = '" & Trim(ComboUserID.Text) & "'" & "and status = '未结账'"Set mrc1 = ExecuteSQL(txtSQL, Msgtext)Do While Not mrc1.EOFmrc1.Fields(7) = "结账"mrc1.Updatemrc1.MoveNextLoop
txtSQL = "select * from CheckDay_Info where date ='" & Date & "'"Set mrc = ExecuteSQL(txtSQL, Msgtext)txtSQL = "select sum (allcash) from CheckDay_Info where date = '" & Date - 1 & "'"                 '计算昨天的总收入Set mrc1 = ExecuteSQL(txtSQL, Msgtext)txtSQL = "select sum(consume) from Line_Info where offdate = '" & Date & "'"                     '计算今天的消费金额Set mrc2 = ExecuteSQL(txtSQL, Msgtext)If IsNull(mrc2.Fields(0)) Then                                                                      '无信息则为0xfjy = 0Elsexfjy = mrc2.Fields(0)                                                                             '赋值End IfIf IsNull(mrc1.Fields(0)) Then                                                                   '无信息则为0sqye = 0Elsesqye = mrc1.Fields(0)                                                                        '赋值End Ifb = g - eIf Not mrc.EOF And Not mrc.BOF Then                                                     '判断是否已有记录mrc.Fields(0) = sqyemrc.Fields(1) = g + mrc.Fields(1)mrc.Fields(2) = xfjymrc.Fields(3) = e + mrc.Fields(3)mrc.Fields(4) = b + mrc.Fields(4)mrc.UpdateElse																										‘无则加新’mrc.AddNewmrc.Fields(0) = sqyemrc.Fields(1) = gmrc.Fields(2) = xfjemrc.Fields(3) = emrc.Fields(4) = bmrc.Fields(5) = Datemrc.UpdateEnd IfMsgBox "结账成功!", vbOKOnly + vbExclamation, "提示"

至此,我们的机房结账就可以宣告竣工了。

总结

机房结账本身并没有特别难的地方,只是需要我们严谨的去对待金钱计算逻辑及整个机房系统的信息闭环更新。而谨慎和细心正是我们作为一个软件从业者必须具备的一个品质。

这篇关于机房结账的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/271561

相关文章

搭建服务器机房的标准是什么?

企业在进行选择服务器时,可能会将服务器放置公司,但是大多数企业还是会选择服务器租用或托管服务,因为专业的IDC服务商通常能够提供良好的机房环境来进行放置服务器,接下来小编就主要来介绍一下搭建服务器机房的标准都有哪些吧! 首先对于机房的位置选择要保证原理水源、油库和化工厂等危险的场所,并且不应该建设在容易受到水灾和地震等自然灾害影响的地区当中,防止出现不可遏制的情况发生,造成重大的经济损失。

大学生如何不带电脑去机房与屏幕被控解决方案

大学生如何不带电脑去机房与屏幕被控解决方案 引言 计算机专业的同学, 应该都有感触, 上计算机实验课, 机房有电脑, 但是有时候没网, 或者需要传输数据, 或者是需要把实验软件带回去自己操作, 所以必须带着自己的笔记本电脑, 但是电脑太重, 并且确实没必要带电脑. 痛点: 机房电脑: 1.性能差 2.被老师控制, 没法儿自己操作 3.电脑一旦重启, 则会清除数据 4.存在没有网络

信息安全--(五)物理与环境安全技术(二)机房安全分析与防护

在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明:信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要决定之前,请咨询相关领域的专业人士。个人责任:使用本博客内容的风险由用户自行承担。作者不对因使用本博客内容而导致的任何直接或间接损失承担责任。版权

基于HTML5的WebGL经典3D虚拟机房漫游动画

第一人称在 3D 中的用法要参考第一人称在射击游戏中的使用,第一人称射击游戏(FPS)是以第一人称视角为中心围绕枪和其他武器为基础的视频游戏类型 ; 也就是说,玩家通过主角的眼睛来体验动作。自从流派开始以来,先进的 3D 和伪 3D 图形已经对硬件发展提出了挑战,而多人游戏已经不可或缺。   Doom 的截图,这个流派的突破游戏之一,展示了第一人称射击游戏的典型视角   现在博物馆或者公司也经

基于 HTML5 Canvas 的 3D 机房创建

对于 3D 机房来说,监控已经不是什么难事,不同的人有不同的做法,今天试着用 HT 写了一个基于 HTML5 的机房,发现果然 HT 简单好用。本例是将灯光、雾化以及 eye 的最大最小距离等等功能在 3D 机房中进行的一个综合性的例子。接下来我将对这个例子的实现进行解析,算是自己对这个例子的一个总结吧。整个例子因为没有设计师的参与,所以样式上可能比较简陋,但是在一些细节的地方,比如墙上的贴图、门

工业互联网可视化系统风格的抉择:线框模式之 3D 数据中心机房的实现

前言 3D 可视化,就是把复杂抽象的数据信息,以合适的视觉元素及视角去呈现,方便系统的展示、维护和管理。而在可视化系统的搭建选择上,所呈现的风格样式效果多种多样,各自所突出的适用场合也不尽相同。对于科技风格上的体现, 线框模式 可能是最具有代表性意义的实现方式之一。 机房数据可视化 的管控维护的实现上,在 工业互联网 的推动下,体现的维护数据和系统搭建也越来越多样化,而 Hightopo(以下简

住宅IP与机房IP:哪种更适合业务应用?

在当前的互联网业务环境中,选择适当的IP地址类型对于确保业务的高效、稳定运行至关重要。住宅IP和机房IP作为两种常见的IP类型,各自具有独特的特点和适用场景。本文将从多个维度对比住宅IP与机房IP,以探讨哪种类型更适合业务应用。 一、定义与特点 住宅IP 住宅IP,顾名思义,是指分配给普通家庭用户的IP地址。这些IP地址通常由互联网服务提供商(ISP)动态分配给家庭网络,因此它们看起来更“自

机房收费系统——SqlHelper

前面自己将了一大堆ADO.NET的基础知识,现在该认真的实践一下了,下面我介绍一下vb.net版机房收费系统中,SqlHelper的使用,在机房收费中,SqlHelper是自己编写的一个类,里面用到的前面讲的几个对象的简单实例。     SqlHelper简介:SqlHelper是一个基于·NETFramework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化你重

机房收费系统总结之结帐

结账这个真的比较难,改了又改,改了又改。            因为这个窗口是在管理的权限范围之内的,所以我做了改动,把可以实现结账功能的人,也就是操作员和管理员都列在了这个里面。管理员和操作员都可以实现结账的权利。       因为combobox是能是下拉菜单来现实这个功能,不能往里面输入任何的字符,所以这时候就需要用一个键盘事件啦。 Private Su

机房收费系统总结之上下机

一:上机:  条件:1:卡号是否为空   2:卡号是否注册  3:卡号是否状态为正在使用(退卡的              学生不能再次上机的)4:余额不能为0,思路就是这样的,比较简单              整体过程: 满足条件——添加online记录——更新student记录  代码: If kahao.Text = "" ThenMsgBox "请输入卡号"Exit Subkahao