前言:机房收费系统的基本功能已经完成,而在之前的第一遍验项目时,师傅给了我一些建议:**除了保证产品功能的严谨,还要足够考虑受众群体的需求和体验。**这句话真的是受益匪浅。
优化1:退出系统后,所有用户强制下机且全部结账
第一个问题就给了我狠狠的First Strike:为了实现这个功能我在退出事件上下了很大功夫,后来自己采用了一种迂回战术:退出时若检测到有用户未下机,先进入批量下机窗体进行下机,完成后再关掉系统。
txtSQL = "select * from worklog_info where userid='" & UserName & "' and status= '" & "值班" & "'"
Set mrwl = ExecuteSQL(txtSQL, MsgText)
txtSQL = "select * from online_info "
Set mrol = ExecuteSQL(txtSQL, MsgText)
'判定是否有用户未下机
If mrol.EOF = False Then
str$ = MsgBox("检测到还有用户未下机,是否强制下机这些用户?", vbOKCancel, "提示")
'判断是否选择强制下机
If str$ = vbOK Then
'终止退出过程,显示一键结账窗体
Cancel = 1
frmStuDemOnStat.Show
'在worklog表内更新数据
mrwl!loginoutdate = Date
mrwl!loginouttime = Time
mrwl!Status = "下班"
mrwl.Update
mrwl.Close
Else
Cancel = 1
End If
Else
'在worklog表内更新数据
mrwl!loginoutdate = Date
mrwl!loginouttime = Time
mrwl!Status = "下班"
mrwl.Update
mrwl.Close
End
End If
优化2:注册时,必须充够50元才有资格成为会员
这一点当时的确没有想过,因为会有一些用户只是想上两个小时的机,但却注册会员用户以达到优惠的目的,最后再退卡。这就属于软件逻辑问题。
Private Sub comboType_Click()
If comboType.Text = "固定用户" Then
i = 1
Else
i = 0
End If
End Sub
Private Sub cmdOK_Click()
......(省略)
'判断固定用户时,是否低于50元
If i = 1 Then
If Trim(txtCash.Text) < 50 Then
Label21.Caption = "固定用户至少充值50元!"
Exit Sub
txtCash.SetFocus
End If
End If
End Sub
优化3:若要退卡,必须消费够40元才可以退卡
这条同样是对某些别有用心的用户采取的限制。而且这样一来二去对网吧的收入也是一种很大的影响。反正你不用电脑了之后下机就行了,剩下的钱我们帮你保管就是了(笑)
Private Sub cmdOK_Click()
......(省略)
'判断该用户上机是否消费满40元
txtSQL = "select sum(consume) from line_info where cardno='" & Trim(txtCardId.Text) & "'"
Set mrl = ExecuteSQL(txtSQL, MsgText)
If mrl.Fields(0) < 40 Then
Label3.Caption = "该用户上机未满40元,不可退卡!"
txtCardId.Text = ""
txtCardId.SetFocus
Exit Sub
......(省略)
End Sub
优化4:学生基本信息维护:选定查询字段名时,当选择卡号等可比较大小的条件时,操作符中出现“=” “<” “>” “<>”四种操作符;而当选定姓名、性别等无法比较大小的条件时,操作符中删去"<" ">"操作符。
Private Sub comboFields1_Click()
'当查询条件改变时,combosign控件内的符号也发生变化
If comboFields1.Text = "姓名" Or comboFields1.Text = "性别" Or comboFields1.Text = "系别" Then
comboSign1.Clear
comboSign1.AddItem "="
comboSign1.AddItem "<>"
Else
comboSign1.Clear
comboSign1.AddItem "="
comboSign1.AddItem "<"
comboSign1.AddItem ">"
comboSign1.AddItem "<>"
End If
End Sub
优化5:学生上机统计信息查询中,查询内容增加日期格式限定
Dim i As integer
Private Sub comboFields1_Click()
'当查询条件改变时,combosign控件内的符号也发生变化
If comboFields1.Text = "姓名" Then
i = 0
Label6.Caption = ""
comboSign1.Clear
comboSign1.AddItem "="
comboSign1.AddItem "<>"
Else
If comboFields1.Text = "卡号" Or comboFields1.Text = "消费金额" Or comboFields1.Text = "余额" Then
i = 0
Label6.Caption = ""
comboSign1.Clear
comboSign1.AddItem "="
comboSign1.AddItem "<"
comboSign1.AddItem ">"
comboSign1.AddItem "<>"
Else
i = 1
Label6.Caption = "你已经选择日期或时间格式,请按照yyyy-mm-dd/hh:mm:ss格式填写日期或时间!"
comboSign1.Clear
comboSign1.AddItem "="
comboSign1.AddItem "<"
comboSign1.AddItem ">"
comboSign1.AddItem "<>"
End If
End If
End Sub
Private Sub cmdInquire_Click()
......(省略)
'如果选择了日期格式
If i = 1 Then
'若日期格式不正确
If Not IsDate(txtFind1.Text) Then
Label7.Caption = "日期格式有误!请重新填写!"
Exit Sub
txtFind1.SetFocus
End If
End If
......(省略)
End Sub
优化6:小数点精度问题
语法举例:
mrcl!consume = Format(txtCostMoney, “0.0”)
以上就是本次优化的主要问题,期待自己之后下一个学习项目