今天實現機房收費系統——一般使用者——學生上機狀態檢視——選中全部/部分下機部分收穫很多!多虧了看光哥的部落格,寫的很清楚機房收費系統——上機狀態查詢之下機
要顯示的**式寫查詢,就會出來這樣子
private
sub 顯示全部_click()
dim txtsql as
string
dim msgtext as
string
dim mrc as adodb.recordset '作為的連線online_info表查詢的結果集
txtsql = "select cardno,studentno,ondate,ontime,computer from online_info"
set mrc = executesql(txtsql, msgtext)
if mrc.eof = true
then
msgbox "查詢到0條記錄", vbokonly + vbinformation, "提示!"
接著我們可以看到它的
要想實現選中的下機,首先把選中的記錄用乙個符號√來標識這條記錄!
這裡定義了兩個陣列,分別來儲存標識√的記錄它的行號和學號。
i=0 有√標識的記錄數目
forj=0 to .rows-1
if 符合√ then
記錄行號到陣列xh(s)
記錄學號到陣列sz(z)
i=i+1
endif
next j
'j是真實的**中的行數,通過標識√篩選遍歷一遍,將有√記錄的資訊記錄並保留到陣列中,並且將有記錄的行數計算出了
for z=0
to i-1 (0~i-1=i行,也就是由記錄的i行)
通過陣列引用乙個個的學號,學號是主鍵,查詢表得到記錄集
mrc3 basicdate_info
mrc4 studeng_info
mrc1 online_info
mrc2 line_info
z=z+1
next z
'通過這樣的一次遍歷查詢到資料庫中的每一條記錄
'因為選中的部分即將下機,引用這些記錄的資訊來進行結算帳目部分的計算!下機之前結賬完畢!
'將選中的學生的資料進行更新,消費時間,消費金額,正常下機等等!修改包括student表和line表
'最後從online_info表中刪除這些資訊
接著,非常奇妙的部分就是如何實現部分
這段選擇的**真的是非常的巧妙,本意按下滑鼠,選擇要下機的學生;
前提是顯示出來的資訊都是沒有選中的!在顯示全部後所有的資訊都是沒有選中的狀態!
在選的過程中:
按下滑鼠之前,假設是沒有選中的,按下後把它變為選中的狀態;
按下滑鼠之前,假設是選中的狀態,按下後把它變為沒有選中的狀態;【二次按下滑鼠就會需要這樣的機制】
private
sub msflexgrid1_mousedown(button as
integer, shift as
integer, x as
single, y as
single)
'如何選中不連續的行
dim col as
integer
if msflexgrid1.textmatrix(msflexgrid1.row, 5) = "√"
then
msflexgrid1.textmatrix(msflexgrid1.row, 5) = ""
'改變行顏色(變為沒選中之前的)
for col = 0
to msflexgrid1.cols - 1
msflexgrid1.col = col
msflexgrid1.cellbackcolor = vbwhite
next col
else
msflexgrid1.textmatrix(msflexgrid1.row, 5) = "√"
'改變行顏色(選中後的顏色)
for col = 0
to msflexgrid1.cols - 1
msflexgrid1.col = col
msflexgrid1.cellbackcolor = &hffff00
next col
endif
這部分的**是複製的,但我覺得寫得非常巧妙!
1.分析**,不會就一點一點測試
2.寫**而不是改**,學習一招致命。
3.把問題複雜化其實是了避免直接面都那麼難的問題,找到本質,就不難!
4.選擇單行msflexgrid或是單元格
mousecollong返回滑鼠游標的列座標位置
mouserowlong返回滑鼠游標的行座標位置
選中某個單元
msflexgrid.row=1
msflexgrid.col=1
5. dim stokens() as string 『定義名為stokens字串(陣列)
dim stokens as string 『定義名為stokens字串
6.trim:刪除字串符的空格
trim$:去掉字串左右兩端的空格
機房收費系統 選擇下機
rem 對 控制項進行修改 private sub msflexgrid1 mousedown button as integer,shift as integer,x as single,y as single 獲取選中不連續行的許可權,及實現多行選中 dim col as integer if ...
機房收費系統 下機
有了上機的思路,下機當然也就很簡單了,不過總是要比別人多想一步,這樣你就能夠比別人更加的優秀。下機的流程圖 下機的注意事項 txtontime.text trim mrc3.fields 7 txtdowndate.text format now yyyy mm dd txtdowntime.tex...
機房收費系統 下機
上下機是機房收費系統中比較重要的一部分,所以我們一定要把上下機的思路理清楚才可以,不然會很亂,一會兒就把自己繞進去了,現在我們一起分析一下下機的思路吧!片段 判斷上下機的情況 private sub cmdoffline click dim mrconline as adodb.recordset ...