机房管理系统之主窗体

主窗体功能可以让卡号上下机,并记录其上机时间,及上机后的余额。  

步骤:

1,主窗体加载时

首先判断登录到该系统的用户级别,并对菜单进行相应的设置(若为操作用户则,管理员的菜单不可见,若为一般用户,则操作员和管理员的菜单都不可见)

然后将该值班老师的信息添加到正在值班教师表中。(在这里我将写表的过程独立了出来,在窗体加载时直接调用)

2,对卡进行操作:

首先判断该卡是否注册。若没有注册或已经注销,则提示信息,并显示最近一次正在上机的卡号信息;若没有正在上机的卡,则显示最近一次下机的卡号信息。(最近一次的上机卡的信息我独立了出来)

其次判断上下机:

1、刷卡上下机。判断该卡的上机状态(若为上机状态则下机,若为下机状态则上机)。

2、手动上下机。单击上机按钮:若该卡已经处于上机状态,则再次单击上机按钮不进行操作;若该卡是下机状态,则单击上机按钮上机;同理当单击下机按钮:若该卡处于上机状态则下机,若该卡已经处于下机状态,则不进行操作。

下机后对余额进行计算:

1,通过调用基本数据的单位费用来计算,因为费用是通过分钟来计算的,所以我先用DateDiff函数求出了两个时间差(分钟差),然后相乘即可。

If TimeDiff < 5 Then       ’上机时间少于五分钟不计费
    mrss.Fields(7) = 0
Else
    mrss.Fields(7) = ((Val(TimeDiff) - 1) / 30 + 1) * Fee
End If

2,消费时间的显示,由于在分钟转换为小时的时候可能会出现很多位小数,避免这种情况我用了Round函数只保留了两位小数。(当结果小于1时,Round函数不显示整数部分,所以对此情况又进行了字符串连接,这个仅仅是外观问题)

3,计算好消费金额,余额后,将该卡号修改后的信息替代原来上机记录表中该卡号的信息,并对最新余额表中的余额进行更新。

4,关闭主窗体时要对操作员记录表进行添加,并删除该用户在正在值班教师中的信息。(操作员记录表是通过正在值班表进行写入的)

5,在写入正在值班表时需要用到机器名(即本机的计算机名),在这里我用到了GetComputerName函数。(在这里要注意建表时该字段的长度设置,要尽量大一些)

下面是我在做该窗体时遇到的问题:

1.子窗体的显示问题:因为要在主窗体(MDI窗体)上添加控件,所以用了一个容器控件PictureBox,可是它的子窗体却被PictureBox盖住了。

在该窗体中遇到的问题:

我的解决方法是:使用SetParent(API函数),将要显示的子窗体强制转换为PictureBox的子窗体,这样它就可以在PictureBox控件上显示出来了。

2.上下机的判断:当一个卡号上机后,要用一个状态来记录它的上机状态,当该号再一次单击上机时没有操作,若该号单击下机时,计算它的余额修改它的上机状态;若下机后在对该卡号单击下机则提示。在一个卡号上机后允许其他用户随意上下机。

在这里遇到的问题:

3,更换用户后的显示问题(若这个用户不能上机,则显示上一条正在上机的用户信息,或下机用户的信息)。

4,余额的更新问题余额一定要是最新的,所以需要用一个表专门存储余额信息,一旦当余额发生变化,它就进行更新,然后用刀余额的地方都从该表中调用余额。

5,更新一致问题:主窗体一共用到了两个表:学生信息表和上机记录表,所以如果卡号发生变化,两个表的显示情况都要发生变化,不能只变一个地方;且每次变化显示上机人数都要进行更新。

6,消费金额的计算:首先要用DateDiff函数求得时间(分钟)差,然后根据基本数据表中的单位费用进行计算,当余额不足时不能上机;用Round函数将分钟转换为小时。

7.调用问题:在一个窗体中不能直接调用另一个窗体的文本框的内容或者事件等(因为他们不是全局变量)

可以事前将要调用的文本等转换为全局变量。

8.避免代码重复:若在一个窗体中有很多重复的代码,我们就可以把这些重复的代码独立出来写成一个过程,用的时候进行调用即可。

9.登录到主窗体时添加正在值班教师表(根据登录用户的不同级别对菜单显示进行相应的隐藏;如一般用户登录时只能看到一般用户和帮助的菜单),卸载主窗体时添加操作员工作记录表,其中用GetComputerName(API函数)获得计算机名。

10.刷卡回车事件:回车事件主要是根据该卡的上机状态来调用上下机事件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值