機房收費系統-優化
阿新 • • 發佈:2018-12-20
前言:機房收費系統的基本功能已經完成,而在之前的第一遍驗專案時,師傅給了我一些建議:**除了保證產品功能的嚴謹,還要足夠考慮受眾群體的需求和體驗。**這句話真的是受益匪淺。
優化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 ......(省略)
優化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
'如果選擇了日期格式
If i = 1 Then
'若日期格式不正確
If Not IsDate(txtFind1.Text) Then
Label7.Caption = "日期格式有誤!請重新填寫!"
Exit Sub
txtFind1.SetFocus
End If
End If
優化6:小數點精度問題 語法舉例: mrcl!consume = Format(txtCostMoney, “0.0”)
以上就是本次優化的主要問題,期待自己之後下一個學習專案