1. 程式人生 > >【機房收費系統】之結賬

【機房收費系統】之結賬

還沒開始做機房時,便聽到有人說,機房慢慢做,尤其結賬那一塊特別難。特別難,到底有多難呢?還沒開始做,心裡便有了一絲害怕。驗SQL視訊時,特意問了問師父,結賬是否真如他們所說,有那麼難。嘉穎師父誠懇地跟我說,沒事,只有你去做了,才知道做出來的成就感。有了嘉穎師父的定心丸,我心裡好像踏實了許多。

這是結賬的介面。在做結賬前,我們要先理清思路。結賬只是針對操作員而言,操作員在這一系統過程所做的一系列工作:購卡、充值、退卡、臨時使用者和彙總。前四個都還OK啦!只需要讀取相關資訊。難點在彙總,需要進行一些計算。此時,你要保持足夠的頭腦,明白以下內容:

售卡張數=購卡選項卡的記錄總數

退卡張數=退卡選項卡的記錄總數

退卡金額=cancelcard_Info表中的金額進行累加

總售卡數=售卡數-退卡數

註冊和充值金額=student_Info 表中註冊時候的充值金額+Recharge_Info 表中的充值金額(註冊時的充值的錢和充值時充進去的錢其實都一樣)

應收金額=註冊和充值金額-退卡金額

結賬:將student_Info 、Recharge_Info、Cancelcard_Info 中的“未結賬”改為“結賬”。

好啦,思路清晰了,接下來就是程式碼的實現部分了。以下是我結賬窗體的重要程式碼:

    '通過使用者名稱顯示真實姓名
    txtsql = "select * from user_info where UserID='" & comboOpUserID.Text & "'"
    Set mrc = ExecuteSQL(txtsql, msgtext)
        comboOpRealName.Text = mrc!UserName
    mrc.Close

購卡選項卡的重要程式碼:

    
    If SSTab1.Tab = 0 Then
    '將查詢的內容顯示在表格控制元件中
        With myFgBuyCard(0)
            .Rows = 1
            .CellAlignment = 4
            .TextMatrix(0, 0) = "???"
            .TextMatrix(0, 1) = "????"
            .TextMatrix(0, 2) = "????"
            .TextMatrix(0, 3) = "???"
            
        '判斷是否移動到資料集物件的最後一條
        Do While Not mrc1.EOF
            .Rows = .Rows + 1
            .CellAlignment = 4
            .TextMatrix(.Rows - 1, 0) = Trim(mrc1.Fields(1))
            .TextMatrix(.Rows - 1, 1) = Trim(mrc1.Fields(0))
            .TextMatrix(.Rows - 1, 2) = Trim(mrc1.Fields(13))
            .TextMatrix(.Rows - 1, 3) = Trim(mrc1.Fields(14))
            '移動到下一條記錄
            mrc1.MoveNext
        Loop
            
        End With
    End If

算錢那一部分我主要用到了多條迴圈語句:

do while not mrc.eof 
    語句塊
loop

嘻嘻!寫程式碼和學數學一樣,需要耐著性子,思路清晰,敢於實踐。

最後,送給大家一句詩:紙上得來終覺淺,絕知此事要躬行。