機房收費系統之全部下機-選中下機

機房收費系統中有三種下機的方式分別是在主界面的下機和在學生上機狀態中的全部下機和選中下機在這裏插入圖片描述
在這裏插入圖片描述
首先要明白功能存在的意義
個人理解:三種下機按鈕各自面臨的情況不同
第一個下機是有單個上機的人要離開 一個下機按鈕就可以搞定 。 而當出現十幾個二十幾個 幾十個 不連續的人要求下機的時候,一個一個的下機就會出現擁擠排隊下機的情況 這肯定不是我們想要的,這就用到了選中學生下機,可以一鍵將排隊下機的人全部下機,選中下機上邊的全部下機就更好理解了。一鍵所有人下機
好了 說完了功能的意義
現在就是要實現這個功能 這裏只講選中下機 全部下機的道理是一樣的 但是要比選中下機要簡單很多了
選中下機重點在於實現“選中”

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 = vbBlue
        Next col
        End If

End Sub

選完之後就要實現下機的功能了 在這裏一定要注意的是 不只是要下機 還要給每個下機的卡號算出錢來 這個功能涉及的表比較多 大家在寫的時候一定不要亂

Dim sz(999) As String      '用來存放帶√的學號
    Dim xh(999) As String       '用來存放行號
    Dim txtcash As String       '
    Dim cosumedate As String
    Dim cosumetime As String   '
    Dim consume As String       '
    Dim Msgtext As String
    Dim z As Integer            '存放帶√的變量
    Dim i As Integer            '存放改變顏色時候的變量
    Dim s As Integer            '存放行號用的變量
    Dim j As Integer
      Dim txtsqlbas As String
      Dim mrcbas As adodb.Recordset
      txtsqlbas = "select * from basicdata_info"  '連接basicadata表
      Set mrcbas = ExecuteSQL(txtsqlbas, Msgtext)
      Dim txtsqlonl As String
      Dim mrconl As adodb.Recordset
      txtsqlonl = "select * from online_info "  '連接online表
      Set mrconl = ExecuteSQL(txtsqlonl, Msgtext)
        If mrconl.EOF Then
            MsgBox "當前無上機人員", 48, "提示"
            Else
            
            With MSFlexGrid1
        If .RowSel = 0 Then
            MsgBox "請選擇學生", 48, "提示"
            Exit Sub
        End If
            End With
        
            With MSFlexGrid1            '
                i = 0
                For j = 1 To .Rows - 1
        If .TextMatrix(j, 5) = "√" Then
            sz(i) = .TextMatrix(j, 0)       '存的是卡號
            xh(i) = Val(j)
            i = i + 1
        End If
          Next j   '循環檢索數據庫
      
          For z = 0 To i - 1    '數組是從0開始
    Dim txtSQLlin As String
    Dim Mrclin As adodb.Recordset
    txtSQLlin = "select * from line_info where cardno = '" & sz(z) & "' and status = '正常上機'"
    Set Mrclin = ExecuteSQL(txtSQLlin, Msgtext)  '選擇line表中的數據
   Dim StrCPN As String * 10
   GetComputerName StrCPN, 10 '獲取電腦名稱
    Do While Mrclin.EOF = False
       Mrclin.Fields(8) = Format(Date, "yyyy-mm-dd")
       
       Mrclin.Fields(9) = Time$
       Mrclin.Fields(13) = "正常下機"
       Mrclin.Fields(14) = Trim(StrCPN)
        cosumedate = DateDiff("n", Mrclin.Fields(6), Mrclin.Fields(8))
        cosumetime = DateDiff("n", Mrclin.Fields(7), Mrclin.Fields(9))
        Mrclin.Fields(10) = (Val(cosumedate) + Val(cosumetime)) + 1
         If mrconl.Fields(1) = "固定用戶" Then    '計算錢數
          Mrclin.Fields(11) = Format(Mrclin.Fields(10) / mrcbas.Fields(2) * mrcbas.Fields(0), "0.00")
          Mrclin.Fields(11) = Format(Mrclin.Fields(10) / mrcbas.Fields(2) * mrcbas.Fields(1), "0.00")
          End If
          Mrclin.MoveNext
          Loop
          mrconl.Close
          Dim deleotxtsql As String
          Dim deleomrc As adodb.Recordset
          Dim deleomsgtext As String
            deleotxtsql = "delete from Online_Info where cardno='" & sz(z) & "'"
            Set deleomrc = ExecuteSQL(deleotxtsql, deleomsgtext)
          
          Next z
          For s = 0 To i - 1
             .RemoveItem xh(s)
          Next s

      
        
          txtsqlonl = " select * from online_info "
          Set mrconl = ExecuteSQL(txtsqlonl, Msgtext)
     '     frmMain.Label16.Caption = "當前上機人數:" & mrconl.RecordCount
          MsgBox "操作完成!", 48, "提示"
          
          End With
        
        End If
        End sub

以上就是選中下機的具體代碼
全部下機跟這個道理是一樣的 這裏就不多說了
大家只要將導圖畫好了就不會亂了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章