机房收费系统之上机、下机

简介:

还记得,从八月一日开始做机房收费系统,到今天已经是八月十二号了。期间,碰到了很多困难,有时候,就想这个机房收费系统能成功吗?解决了一个问题,另一个问题又接踵而至了,心里同样很清楚,下面还有好多好多问题。于是乎,根本不敢想后面的路。

前三天吧,开始了主界面上下机代码的编写。一个主界面,包含了15个文本框要填,可想而知,这真的是一个庞大的工程。

在开始动工之前,自己还是分析了整个流程,不然混乱的自己,早晚会被带沟里去的。

首先是上机:


在这一流程中,要注意的是,在LineRecord表中不可出现相同的卡号的记录,否则无法进行准确判断是否正在上机。

下面是下机:


两者加之一起,就把卡号上下机操作搞定了。在此界面上,还有三个需要通过计算才可以得到的:上机人数、消费时间和消费金额。

这个过程真的花费了我好长的时间,一遍遍理思路,掉沟里好几次,最后终于上岸了。

(1)消费人数的计算,两种方法。通过查找“正在上机”的字段的个数。

一是可以利用循环查找。把此记录集中所有记录都遍历一遍,最后得出个数。

<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong>'利用循环计算人数
            strTxtSQL = "select * from tb_linerecord where status = '正在上机' "
            Set mrc = ExecuteSQL(strTxtSQL, strMsgText)
            Sum = 0
            Do While Not mrc.EOF
                Sum = Sum + 1
                mrc.MoveNext
            Loop
            txtNowCount.Text = Sum</strong></span>

二是利用SQL语句,直接在数据库中计算,再将其值返回到VB中。

<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong> '计算上机人数,利用SQL语句
            strTxtSQL = "select count(status) as count from tb_lineRecord where status = '正在上机'  "
            Set mrc = ExecuteSQL(strTxtSQL, strMsgText)
            Sum = mrc("count").Value
            txtNowCount.Text = Sum</strong></span>
这里用到的是select Count语句,既然碰到了,不妨多了解了解吧。

(2)消费时间的计算

首先列出三个时间:

T1=准备时间(Basic Data表)中

T2=总消费时间(从上机命令生效开始计时)

T3=实际消费时间(T2-T1)

这里用到了DateDiff(时间间隔函数),特别方便。

<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong>            'CDate()转换为日期函数
            '实际消费时间=总消费时间-准备时间
            txtConsumeTime.Text = DateDiff("n", CDate(txtOnLineDate.Text), CDate(txtLineDate.Text))
            txtConsumeTime.Text = txtConsumeTime.Text + DateDiff("n", CDate(txtOnLineTime.Text), CDate(txtLineTime.Text))
            txtConsumeTime.Text = txtConsumeTime.Text - vntpreparedtime</strong></span>

(3)计算消费金额

<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong>            '在准备时间段内,可自由下机
            '判断消费时间是否大于准备时间
            If Trim(txtConsumeTime.Text) < 0 Then    '消费时间少于准备时间,消费时间为0
               txtConsumeTime.Text = 0
               txtConsumeMoney.Text = 0
               MsgBox "已成功下机,消费时间为0!", vbOKOnly + vbExclamation, "下机提示"
            Else
            '判断消费时间是否大于最低消费时间
                 If Trim(txtConsumeTime.Text) < vntlimitedtime Then
                    txtConsumeTime.Text = txtConsumeTime.Text      '消费时间小于最低消费时间,消费金额为最低消费金额
                    txtConsumeMoney.Text = vntlimitedmoney
                 Else
            '消费时间大于最低消费时间,则根据用户类型,计算消费金额</strong></span>
<span style="font-family:KaiTi_GB2312;font-size:24px;"><strong><span style="white-space:pre">	</span>    'Round()为四舍五入函数
                    If Trim(txtUserType.Text) = "固定用户" Then
                       txtConsumeMoney.Text = Round(txtConsumeTime.Text / Addtime * fixedusercost) + fixedusercost
                    Else
                       txtConsumeMoney.Text = Round(txtConsumeTime.Text / Addtime * casualusercost) + casualusercost
                    End If
                 End If
             End If</strong></span>
后两者的计算是分不开的,所以必须很清楚的知道它们间的关系。有个流程图,自己才没有被弄得那么混。


最后的最后,我终于把主界面的所有文本框都搞定了。


这个过程中,一次次跌倒,一次次头晕,可是,自己强大的内心还是战胜了所有的敌人,没有什么不可以。其实正确地应该是不需要去想后面的路,只要走好脚下的路,一步一步,就一定可以。路,还在自己脚下。




目录
相关文章
|
7月前
|
监控 C++
【2021全国高校计算机能力挑战赛C++题目】17.信息整理 某机房上线了一套系统,和每台计算机都相连,以便监控各计算机相关外设的运行状态。
【2021全国高校计算机能力挑战赛C++题目】17.信息整理 某机房上线了一套系统,和每台计算机都相连,以便监控各计算机相关外设的运行状态。
|
负载均衡 安全 测试技术
变形金刚外传0x11-T1SR承载负载平衡器用例
在之前连续几篇分享中,我向各位演示了如何利用分级逻辑路由器实现跨KVM和vSphere、跨逻辑与物理网络的三层互访。在谈及逻辑路由架构设计的时候,我建议将负载平衡器(后文称LB)、网络地址转换(NAT)等通过Tier1级别的逻辑路由器(后文称T1LR)实现。在这种架构设计下,Tier0级别的逻辑路由器(后文称T0LR)可以采用Active-Active架构来满足带宽利用率的最大化。并且,一般在分级架构中,Tier0级别扮演的更多是运营商级别的角色;Tier1级别扮演的更多是租户级别的角色;在T1LR级别实现包括LB在内的网络功能虚拟化(NFV),更能贴近通过运管平台纳管NSXDC实现网络与安全
|
数据库
第一次机房收费系统之下机
第一次机房收费系统之下机
114 0
|
存储 设计模式 Oracle
关于分投趣质押模式开发系统搭建原理
存储在链上的数据未以可以有效或轻松地被Dapp使用的格式注册。为了做到这一点,数据需要被索引和组织以进行高效检索。
|
负载均衡 监控 安全
网关系统就该这么设计,万能通用,稳的一批!
网关系统就该这么设计,万能通用,稳的一批!
|
负载均衡 监控 安全
网关系统就该这么设计(万能通用),稳的一批!
网关系统就该这么设计(万能通用),稳的一批!
|
运维 Kubernetes Cloud Native
SFKP • 计算机百科丨云原生才是「吞噬世界」的那条大鱼...
SFKP • 计算机百科丨云原生才是「吞噬世界」的那条大鱼...
SFKP • 计算机百科丨云原生才是「吞噬世界」的那条大鱼...
带你读《好设计,有方法:我们在搜狐做产品体验设计》之二:有源设计
那些激动人心、让人拍手叫好的设计,到底有没有方法可循?背后到底有没有设计理论支撑?答案是肯定的!本书作者是资深体验设计专家,拥有超过10年的产品体验设计和团队管理经验,他们将试图为大家总结和揭示那些优秀设计背后的理论和方法。
下一篇
DataWorks