机房收费系统之上下机
2015-08-16 19:07
211 查看
背景:经过第一次的机房验收,发现自己的问题,现在整理一下自己的思路,就上下机而言理理思路!
上机:用到表student_Info,Basic_info,line,Online表
下机:重点是时间和花费的钱的计算,区分是临时用户还是固定用户,如果是临时用户下机就等于是退卡!下机的时候当钱不够一个小时的花费时提醒,钱<=0时强制下机!
一般用户下有一个学生上机状态查看这个窗体就涉及到下机:
说明:选中学生下线:selectssoffMenu
所有学生下线:allssoffMenu
一开始我是把写下机的代码差不多都写到这个窗体下,但是发现代码好多,感觉好麻烦,尤其写所有学生下线后来受到一个人的启发就把代码给改了:
1.选中学生下线
2.所有学生下线
)上下机过程理清逻辑关系,实践下来也不是很难!
上机:用到表student_Info,Basic_info,line,Online表
下机:重点是时间和花费的钱的计算,区分是临时用户还是固定用户,如果是临时用户下机就等于是退卡!下机的时候当钱不够一个小时的花费时提醒,钱<=0时强制下机!
一般用户下有一个学生上机状态查看这个窗体就涉及到下机:
说明:选中学生下线:selectssoffMenu
所有学生下线:allssoffMenu
一开始我是把写下机的代码差不多都写到这个窗体下,但是发现代码好多,感觉好麻烦,尤其写所有学生下线后来受到一个人的启发就把代码给改了:
1.选中学生下线
<<span style="font-size:24px;">span style="font-size:24px;"><pre name="code" class="html">Private Sub selectssoffMenu_Click() Dim mrc As Recordset Dim MsgText As String Dim txtSQL As String Dim i As Integer If Val(MSFlexGrid.RowSel) = 0 Then MsgBox "请选择学生下线!", vbOKOnly + vbExclamation, "警告" Exit Sub End If If MSFlexGrid.RowSel = MSFlexGrid.Row = 0 Then MsgBox "首行不能删除!", vbOKOnly + vbExclamation, "警告" Exit Sub End If txtSQL = "select * from student_Info where cardno='" & Trim(MSFlexGrid.TextMatrix(MSFlexGrid.RowSel, 0)) & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) i = mrc.Fields(0) '卡号 frmMain.Show frmMain.txtcardno = i '将卡号赋给frmMain窗体中的卡号文本框 frmMain.cmdoff = True ’执行下机操作 MSFlexGrid.RemoveItem MSFlexGrid.RowSel '删除Msflexgrid表中选中的一行 </span> End Sub</span>
2.所有学生下线
<span style="font-size:24px;"><span style="font-size:24px;">Private Sub allssoffMenu_Click() Dim mrc As ADODB.Recordset Dim MsgText As String Dim txtSQL As String Dim i As Integer Dim m As Integer txtSQL = "select * from OnLine_Info " Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = True Then MsgBox "没有学生上机!", vbOKOnly + vbExclamation, "警告" Else Do While Not mrc.EOF i = mrc.Fields(0) frmMain.Show frmMain.txtcardno = i '<span style="font-family: KaiTi_GB2312;">将卡号赋给frmMain窗体中的卡号文本框</span> frmMain.cmdoff = True <span style="font-family: KaiTi_GB2312;">’执行下机操作</span> mrc.MoveNext Loop MSFlexGrid.Rows = 1 '删除MSFlexGrid中的数据 MsgBox "所有学生成功下机!", vbOKOnly + vbExclamation, "提示" End If End Sub</span></span>但是如果下机时执行frmMain中的下机操作MsgBox会提示下机成功,如果是全部下机的话每个都要点一次,这样好麻烦,所以就在frmMain窗体添加一段代码:当提示下机成功时让它在几秒钟自动消失!
<span style="font-size:24px;"><span style="font-size:24px;">Option Explicit</span></span>
<span style="font-size:24px;"><span style="font-size:24px;">Private Declare Function MessageBoxTimeout Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long, ByVal wlange As Long, ByVal dwTimeout As Long) As Long '声明一个过程</span></span>
<span style="font-size:24px;"><span style="font-size:24px;">部分代码:</span></span>
<span style="font-size:24px;"><span style="font-size:24px;">txtSQL1 = "delete from OnLine_Info where cardno= '" & Trim(txtcardno.Text) & "'" '更新Online表 Set mrc1 = ExecuteSQL(txtSQL1, MsgText1) MessageBoxTimeout Me.hwnd, "成功下机", "提示", vbInformation, 0, 600</span></span>总结:一个人的力量总是有限,像执行frmMain中的下机操作就是我们讨论的结果,代码是她摸索出来的(名字不就不说了她比较低调
)上下机过程理清逻辑关系,实践下来也不是很难!
相关文章推荐
- web_reg_find函数在飞机票订票中的例子
- 实现一个函数来调整该数组中数字的顺序实例
- POJ 2195 D - Going Home 费用流
- Python 发送邮件
- android application context 小结
- 【php】基于Redis的js、css缓存类
- Python对xml的操作
- android Service
- 第2周工作周报-2组-王亮晶
- Mac OS X安装redis-php扩展
- Oracle PGA
- EasyRTSPClient:基于live555封装的支持重连的RTSP客户端RTSPClient
- HDOJ 1258 确定比赛名次 (拓扑排序)
- IOS项目上架时问题的解决方案(3)
- Linux Kernel Parameter config for Oracle
- oracle SGA
- EasyRTSPClient:基于live555封装的支持重连的RTSP客户端RTSPClient
- HDU 5071 Chat (神一般的模拟题)
- ios: push viewcontroller 时出现Presenting view controllers on detached view controllers is discouraged 警告
- 算法导论——(2)二叉查找树的实现