机房收费系统上机只有一种,就是在主界面上机;但下机方式有两种:其一,是主界面的正常下机;其二,是在菜单“一般用户”—“上机状态查看”—“上机管理”中的下机。如果细分的话,第二种方法还分为“选中学生下机”和“所有学生下机”。
因为主界面是要求显示的消费时间和消费金额的,这个不容易被忽略;往往就会把第二中下机方式忽略掉不计算。但我们从经营的角度去想,就会对自己造成一定的经济损失。下面就介绍怎么来计算日期和计算收费。
计算日期:
vb为我们提供了计算日期的函数DateDiff()
语法格式:DateDiff(interval,Date1,Date2[,firstweekofyear[,firstweekofyear]])
返回一个Variant(long) 的值,表示两个指定日期间的时间间隔数目。(通俗地说就是返回一个长整型的数值,数值大小为Date2减去Date1)
常用参数的含义:
interval:设定两个日期之间的期间计算之单位。下面是计算日期单位的符号。
yyyy>Year年
qQuarter季
mMonth月
dDay日
wWeekday星期
hHour时
Date1和Date2:是你要计算的两个日期,注意顺序不要搞混了,是Date2减去Date1的值
举例:返回2017年7月22日 18:17:23和2017年7月23日 18:17:23 相隔的分钟。
n=DateDiff("n","2017/7/22 18:17:23","2017/7/23 18:17:23") ’n用来接收返回值
计算收费:
(1)需要知道上机日期和上机时间;从online表中获取。
(2)需要知道下机日期和下机时间;当点击下机时获取。
(3)需要知道用户类型,计费标准不同;从student表中获取。
下面是示例代码:
在主界面下机和所有学生下机,注意相应的同步student表中的余额。选中学生下机,除这一点之外,还有一个需要获取从MSFlexGrid控件上获取“选中行”。
这个控件有一个事件可以很容易地帮助我们获取所选中的行。
Private Sub MSFlexGrid1_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)
n = Trim(MSFlexGrid1.Row)
End Sub
"n"是我们定义用来接收返回值。
得到选中行之后,就可以利用“cardNo”来使对应的学生下线。
sql语句为:txtsql = "select * from online_info where cardno='" _ & Trim(MSFlexGrid1.TextMatrix(n,0)) & "'"
MSFexGrid1.TextMatrix(n,0)代表的含义为:该控件的表的第n行第0列的数据。
原文链接:https://www.f2er.com/vb/256513.html