前言:
第一次去驗收機房的時候,**問我說,上機的時候怎樣才能保證學生不會因為上機時間太長而導致餘額為負數呢但是我沒有仔細想,但是後來**告訴我可以實現乙個實時判斷餘額的功能,於是我便著手做這個功能思路:計時器控制項
思路:
具體實施:
private sub timer2_timer()
dim txtsql as string
dim msgtext as string
dim mrconl as adodb.recordset
dim mrcstu as adodb.recordset
dim mrcbas as adodb.recordset
dim balance as integer
'將online表與student表進行連線
txtsql = "select cash from student_info,online_info where _
student_info.cardno=online_info.cardno "
set mrcstu = executesql(txtsql, msgtext)
'連線online表
txtsql = "select * from online_info "
set mrconl = executesql(txtsql, msgtext)
'連線basic表
txtsql = "select * from basicdata_info "
set mrcbas = executesql(txtsql, msgtext)
'當online表不為空時,進行計算與判斷
do while not mrconl2.eof
'計算上機時長
intlinetime = (date - datevalue(mrconl2!ondate)) * 1440 _
+ (hour(time) - hour(timevalue(mrconl2!ontime))) * 60 _
+ (minute(time) - minute(timevalue(mrconl2!ontime)))
'計算餘額
if trim(mrconl.fields(1)) = "臨時使用者" then '若為臨時使用者,計算餘額
balance = trim(mrcstu.fields(0)) - (int(intlinetime / 30) + 1) * _
(trim(mrcbas.fields(1)) / 2)
else '若為固定使用者,消費金額的計算
balance = trim(mrcstu.fields(0)) - (int(intlinetime / 30) + 1) * _
(trim(mrcbas.fields(0)) / 2)
end if
'進行判斷
if balance < trim(mrcbas.fields(5)) then
txtcardno.text = mrconl.fields(0)
mdifrom.cmdoffline = true
end if
mrconl.movenext
mrcstu.movenext
loop
end sub
總結:在有思路之前我覺得要實現這個功能很難,而且是相當的難,但是自己真正去做了才發現原來也不是很難啊。
特別感謝:
感謝**對我的指導,感謝偉傑同志的幫助,其實迴圈以及連線兩個表是偉傑想出來的。
機房重構之餘額實時判斷
機房重構經過近乙個月的努力,終於成型了!在優化的過程中,注意到非常多的問題,今天就來總結一下上機使用者的餘額實時判斷。大家應該對網咖的收費系統有所了解,如果你上機的時候充值了5元,網咖的收費是每小時5元,也就是你的金錢只可以上機乙個小時,當快到乙個小時的時候,系統會提醒你的餘額不足,讓你充值,如果不...
機房收費系統 上下機
最近大家都在進行機房收費系統,看大家的部落格,基本上都是先理清思路再實現功能,回想自己當時做的時候就不夠好,只是盲目的敲 卻忽略了方向比努力更重要這個道理,導致最後出現了很多漏洞,於是又重新畫了一遍上下機的流程圖,希望能對以後機房的學習有幫助。上機 只要思路清晰,具體的 實現很簡單。下機 下機需要計...
機房收費系統 上下機
在 上機下機中 主要是要想到所有在上機中可能發生的事件 並作出相應的對策 確保使用者可以成功的上機 下 機。上機 卡號是否位數字,需要判斷卡號是否存在,卡內餘額是否充足,卡號是否正在被使用。首先 查詢資料庫 中的student表 判斷卡號是否存在,且 處於可使用狀態 如果均符合以上要求 那麼就要檢視...