收費了,開始收費了,機房終於要做到收費的階段了。本目前為止,終於扣題了。關於收費的難點就是時間差的計算,
時間差算出來錢就可以隨便算(只要你不怕被打),不過前提是合理。下面就說說怎麼計算這個時間差。
1、在就算時間差的時候,用到了「datediff」函式,關於函式的使用規則,這裡給出簡單介紹
datediff datediff: sql server函式
返回 variant (long) 的值,表示兩個指定日期間的時間間隔數目。 語法
datediff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
datediff 函式語法中有下列命名引數:(部分 描述)
interval 必要。字串表示式,表示用來計算date1 和 date2 的時間差的時間間隔
date1□date2 必要;variant (date)。計算中要用到的兩個日期。
firstdayofweek 可選。指定乙個星期的第一天的常數。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數。如果未予指定,則以包含 1 月 1 日的星期為第一周。
interval 引數的設定值如下:設定 描述
yyyy 年
q 季
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 時
n 分鐘
s 秒
2、計算出時間差,接著就開始計算消費金額了,在算消費金額是要根據基本資料設定表中規定的,不同型別的顧客有不一樣的收費標準來判斷,我是乙個好人,所以那,我是根據上機時間來計算的消費金額。
'計算消費金額,
txtsql = "select * from basicdata_info "
set mrc3 = executesql(txtsql, msgstring)
i = val(trim(mrc2.fields(11)))
if trim(text1(1).text) = "固定使用者" then
if i <= 2 then
mrc2.fields(12) = 0
else
mrc2.fields(12) = (val(mrc3.fields(0)) / 60) * i
end if
end if
if trim(text1(1).text) = "臨時使用者" then
if i < 2 then
mrc2.fields(12) = 0
else
mrc2.fields(12) = (val(mrc3.fields(0)) / 60) * i
end if
end if
3、把新增到資料庫中的資料都新增完成後,要更改上機人數
'統計上機人數
txtsql = "select count(*)from online_info"
set mrc1 = executesql(txtsql, msgstring)
s = mrc1.fields(0)
mrc1.close '關閉上機資料庫
label13.caption = "當前上機人數為:" & s
4、已經正常的下機了,還有最終的一件事不能忘,那就是要同步顧客的餘額。
'更改一般使用者的餘額
txtsql = "update student_info set cash = '" & mrc2.fields(13) & "' where cardno = '" & trim(text1(0).text) & "'"
set mrc4 = executesql(txtsql, msgstring)
' mrc4.close '關閉上機資料庫
【總結】
雖然有些功能沒有實現,比如,在上機過程中,餘額不足要強制下機等等。這些都需要慢慢的去完善,自己可能不能想到方法,但是我們可以求助於強大的度娘,周圍的小夥伴等等,閉門造車的思想不可取,站在巨人的肩膀上,這樣才能事半功倍。
機房收費系統之下機
下機找好邏輯然後慢慢來,平靜下心來,其實也不難。主要邏輯和上機還是挺像的。如圖 部分 如下 一 判斷卡號是否為空 if trim txtcardno.text then msgbox 請輸入卡號,卡號不能為空!48,提示 exit sub 防止錯誤 3021 二 判斷此卡是否存在 else txts...
機房收費系統(二)之下機退卡
今天我又回顧了一下 機房管理系統,看見了我熟悉的花費了我三天才敲好的窗體 當然想了兩天 然後今天我就來總結一下下機退卡吧!第一句話是讓子窗體在父窗體中的框裡顯示!其他的然後就是定義函式名稱 然後接下來就是 呼叫函式,並計算上機時間的消費金額 接下來就是將 寫上資料庫中 寫完之後就關閉掉資料庫 整理思...
機房收費系統 下機
有了上機的思路,下機當然也就很簡單了,不過總是要比別人多想一步,這樣你就能夠比別人更加的優秀。下機的流程圖 下機的注意事項 txtontime.text trim mrc3.fields 7 txtdowndate.text format now yyyy mm dd txtdowntime.tex...