⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 网吧的所有经营活动都能操作(包括时间管理、客户机管理、食品出售等)
💻 FRM
📖 第 1 页 / 共 5 页
字号:
        If Data6.Recordset.Fields("密码") = ThisStr(3) Then
        Winsock1(Index).SendData "_msgb" + Chr(0) + "你要查的卡号是:" + Data6.Recordset.Fields("卡号") + vbCrLf + _
                                       "总金额为:" + Format(Data6.Recordset.Fields("总金额"), "###0.0元") + "    总机时为:" + Format(Data6.Recordset.Fields("总机时"), "###0.00小时") + vbCrLf + _
                                       "已用机时:" + Format(Data6.Recordset.Fields("已用机时"), "###0.00小时") + vbCrLf + _
                                       "剩余金额:" + Format(Data6.Recordset.Fields("金额"), "###0.0元") + Chr(0) + "OK$"
        Else
        Winsock1(Index).SendData "_msgb" + Chr(0) + "您所输入的密码错误!" + Chr(0) + "OK$"
        End If
            DoEvents
            Exit Sub
       End If

        Data6.Recordset.MoveNext
       Next i
        Winsock1(Index).SendData "_msgb" + Chr(0) + "您所输入的卡号错误!" + Chr(0) + "OK$"
        DoEvents

    End Select
     DoEvents
  Case "_ereg"
  Case "_sets"
  Case "_vali"
    ReDim ThisStr(3) As String
    cc = 0
    For i = 1 To Len(strData)
        a$ = Mid(strData, i, 1)
        If a$ = Chr(0) Then
            cc = cc + 1
        Else
            ThisStr(cc) = ThisStr(cc) + a$
        End If
     Next i
     'MsgBox thisStr(3)
     Select Case ThisStr(3)
     Case "setup", "close", "shutdown" '如果是设置
        With Data8.Recordset
            .MoveFirst
            For i = 1 To .RecordCount
            If .Fields("用户名称") = ThisStr(1) And .Fields("用户密码") = ThisStr(2) Then
             If (ThisStr(3) = "close" Or ThisStr(3) = "setup") And .Fields("权限") < "C" Then
                Winsock1(Index).SendData "_msgb" + Chr(0) + "验证用户名权限不够!" + Chr(0) + "OK$"
                DoEvents
                Exit Sub
             End If
             Winsock1(Index).SendData "_comm" + Chr(0) + ThisStr(3) + Chr(0) + "OK$"
             DoEvents
             Exit Sub
            End If
            .MoveNext
            Next i
            Winsock1(Index).SendData "_msgb" + Chr(0) + "验证用户名或密码错误,不能完成指令!" + Chr(0) + "OK$"
            DoEvents
        End With
     Case "cardend"
        If frmScreen.Visible = True Then
         Winsock1(Index).SendData "_msgb" + Chr(0) + "主机已被锁定,请稍后再试!" + Chr(0) + "OK$"
         DoEvents
         Exit Sub
        End If
    Unload frmScreen
        Timer2_Timer
            Data6.Recordset.MoveFirst
      For i = 1 To Data6.Recordset.RecordCount
     '  MsgBox Data6.Recordset.Fields("卡号"), , thisStr(2)
       If Data6.Recordset.Fields("卡号") = ThisStr(1) Then
        If Data6.Recordset.Fields("密码") = ThisStr(2) Then '如果通过验证
    '           If Data6.Recordset.Fields("金额") < Val(ListView1.ListItems(IndexSock(i).JSJ).SubItems(7)) Then
    '            Winsock1(Index).SendData "_msgb" + Chr(0) + "您所输入的储金卡金额不够,不能结帐!"
    '           DoEvents
    '            Exit Sub
    '          End If
        
          
           With Data1.Recordset
              aa = .AbsolutePosition
                .MoveFirst
            
                For j = 1 To .RecordCount
                    
                    If .Fields("IP") = Winsock1(Index).RemoteHostIP Then
                       If MsgBox(.Fields("名称") & "要求用卡号为:" & ThisStr(1) & "的储金卡结帐,是否同意!", vbYesNo + vbQuestion) = vbYes Then
                        ListView1.ListItems(j).Selected = True
                        ListView1_ItemClick ListView1.SelectedItem
                        Check1.Value = 1
                        txtKaHaoMa.Text = ThisStr(1)
                        txtKaMiMa.Text = ThisStr(2)
 '问题                       Command1_Click
                        Else
                        Winsock1(Index).SendData "_msgb" + Chr(0) + "主机拒绝用此卡结帐!" + Chr(0) + "OK$"
                        DoEvents
                        
                        End If
                        Exit Sub
                    End If
                    .MoveNext
                Next j
            End With
         
        Else
        Winsock1(Index).SendData "_msgb" + Chr(0) + "您所输入的密码错误,不能结帐!" + Chr(0) + "OK$"
        End If
            DoEvents
            Exit Sub
       End If
        Data6.Recordset.MoveNext
      Next i
        Winsock1(Index).SendData "_msgb" + Chr(0) + "您所输入的卡号错误,不能结帐!" + Chr(0) + "OK$"
        DoEvents


        
     End Select
  Case "_sele"
     comm = ""
     cc = 0
    For i = 1 To Len(strData)
     a$ = Mid(strData, i, 1)
     If a$ = Chr(0) Then
     cc = cc + 1
     Else
     If cc = 1 Then comm = comm + a$
     End If
    Next i
     IndexSock(Index).JSJ = Val(comm)
    With Data1.Recordset
    aa = .AbsolutePosition
    .MoveFirst
    For i = 1 To .RecordCount
     If .Fields("机号") = IndexSock(Index).JSJ Then
       Select Case .Fields("状态")
        Case "Y"
            Winsock1(Index).SendData "_comm" + Chr(0) + "start" + Chr(0) + "OK$"
            DoEvents
        Case "P"
            Winsock1(Index).SendData "_comm" + Chr(0) + "pause" + Chr(0) + "OK$"
            DoEvents

       End Select
     .Edit
      .Fields("IP") = IndexSock(Index).Ip
      If .Fields("状态") = "N" Then
             .Fields("状态") = "S"
              ListView1.ListItems(i).Icon = 5
              ListView1.ListItems(i).SmallIcon = 5
      End If
     .Update

     Timer2_Timer
     Exit For
     End If
     .MoveNext
    Next i
a1 = Timer
Do While a1 + 1 > Timer
DoEvents
Loop
         DoEvents
         SetHickHttp Index
         DoEvents
      SetQuickHttp Index

         
    .MoveFirst
    .Move aa
    End With
 Case "_prog"
  frmComputer.Show
  frmComputer.FlashList1 strData
 End Select
 
End Sub

Private Sub Winsock2_ConnectionRequest(ByVal requestID As Long)
'远程请求连接
On Error Resume Next
For i = 0 To Winsock1.Count - 1
'MsgBox Winsock1(i).State
 If Winsock1(i).State <> sckConnected Then
  Winsock1(i).Close
  Winsock1(i).Accept requestID
 ReDim Preserve IndexSock(Winsock1.Count) As Lwinsock
 ReDim Preserve IChatUser(Winsock1.Count) As lChatUser

 For j = 0 To Winsock1.Count - 1
   IndexSock(j).Ip = Winsock1(j).RemoteHostIP
   IndexSock(j).Index = i
  ' MsgBox IndexSock(j).Ip
 Next j
  
  Exit Sub
 End If
Next i
 Load Winsock1(Winsock1.Count)
 Winsock1(Winsock1.Count - 1).Accept requestID
  ReDim Preserve IndexSock(Winsock1.Count) As Lwinsock
  ReDim Preserve IChatUser(Winsock1.Count) As lChatUser
 For i = 0 To Winsock1.Count - 1
   IndexSock(i).Ip = Winsock1(i).RemoteHostIP
   IndexSock(i).Index = i
  ' MsgBox IndexSock(i).Ip
 Next i
 
End Sub


Public Sub SelectJSJ()
'选中计算机
On Error Resume Next
'List1.Clear
'List2.Clear

With Data1.Recordset

'Select Case Data1.Recordset.Fields("状态").Value
'  Case "Y"
'   st = 3
'  Case "N"
'   st = 2
'  Case "P"
'   st = 4
'  Case "S"
'   st = 5
'End Select
Select Case .Fields("状态").Value
  
  Case "Y"
   cdJF1.Enabled = False
   cdJF2.Enabled = True
   cdJF3.Enabled = True
   cdJF4.Enabled = True
   cdJF5.Enabled = True
   cdJF6.Enabled = True
   cdJF7.Enabled = True
   Toolbar1.Buttons(1).Enabled = False
   Toolbar1.Buttons(2).Enabled = True
   
  Case "N"
   cdJF1.Enabled = True
   cdJF2.Enabled = False
   cdJF3.Enabled = False
   cdJF4.Enabled = False
   cdJF5.Enabled = False
   cdJF6.Enabled = False
   cdJF7.Enabled = False
   Toolbar1.Buttons(1).Enabled = True
   Toolbar1.Buttons(2).Enabled = False
   
 
  Case "S"
   cdJF1.Enabled = True
   cdJF2.Enabled = False
   cdJF3.Enabled = False
   cdJF4.Enabled = False
   cdJF5.Enabled = False
   cdJF6.Enabled = True
   cdJF7.Enabled = True
   Toolbar1.Buttons(1).Enabled = True
   Toolbar1.Buttons(2).Enabled = False
   
 
End Select

End With

End Sub


Function CountJF() As Double
'统计费用
On Error Resume Next
Dim Zje As Double
With Data1.Recordset
 预交金额 = .Fields("已收款")
 设定时 = ""
 设定分 = ""
 txtSJName = .Fields("客户姓名")
 txtZhengJian = .Fields("证件号码")
 comSjZhengJi.Text = .Fields("客户证件")

'   RtBox1.SelText = vbCrLf + "开始时间:" + Format(.Fields("开始时间").Value, "m月d日 hh:nn:ss")
  If .Fields("上机方式") = "P" Then
    ' RtBox1.SelText = vbCrLf + "通宵记费方式"
     Zje = Data7.Recordset.Fields("通宵金额")
     
     
  Else
   '  RtBox1.SelText = vbCrLf + "到点时间:" + Format(.Fields("到点时间").Value, "m月d日 hh:nn:ss")
   '  RtBox1.SelText = vbCrLf + "已经暂停时间:" & .Fields("暂停时间") \ 60 & "小时" & .Fields("暂停时间") Mod 60 & "分钟"
   ' RtBox1.SelText = vbCrLf + "开始暂停时间:" + Format(.Fields("暂停开始").Value, "m月d日 hh:nn:ss")
      
   '  RtBox1.SelText = vbCrLf + "当前暂停时间:" & DateDiff("n", .Fields("暂停开始"), Now) \ 60 & "小时" & DateDiff("n", .Fields("暂停开始"), Now) Mod 60 & "分钟"
   
     mm = DateDiff("n", .Fields("开始时间"), Now)
     If .Fields("暂停时间") <> "" And .Fields("暂停时间") > 0 Then mm = mm - .Fields("暂停时间") - DateDiff("n", .Fields("暂停开始"), Now)
   '  RtBox1.SelText = vbCrLf + "运行时间:" & mm \ 60 & "小时" & mm Mod 60 & "分钟"
     Zje = .Fields("单位费用").Value * mm / 60
  End If
     
     If Zje <= Data7.Recordset.Fields("最低消费额") Then Zje = Data7.Recordset.Fields("最低消费额")
     If Data7.Recordset.Fields("取整金额") = 0.5 Then
       Zje = Round(Zje * 2) / 2
       Else
       Zje = Round(Zje)
     End If
     'RtBox1.SelText = vbCrLf + "应付金额:" & Format(Zje, "###,###0.00元")
     'RtBox1.SelText = vbCrLf + "已付金额:" & Format(.Fields("已收款"), "###,###0.00元")
     ' RtBox1.SelColor = &H0
    'RtBox1.SelText = vbCrLf + "其他花费:"
    Data2.Recordset.MoveFirst
    For i = 1 To Data2.Recordset.RecordCount
    
     If Data2.Recordset.Fields("机号").Value = .Fields("机号").Value Then
       Data3.Recordset.MoveFirst
       For j = 1 To Data3.Recordset.RecordCount
        If Data3.Recordset.Fields("商品编号").Value = Data2.Recordset.Fields("商品编号").Value Then Exit For
        
        Data3.Recordset.MoveNext
       Next j
       'RtBox1.SelText = vbCrLf + Data3.Recordset.Fields("商品名称") & "  数量:" & Data2.Recordset.Fields("数量").Value & "   金额:" & Data2.Recordset.Fields("数量").Value * Data3.Recordset.Fields("零售价格") & "元"
       Zje = Zje + Data2.Recordset.Fields("数量").Value * Data3.Recordset.Fields("零售价格")
     End If
    Data2.Recordset.MoveNext
    Next i
     'RtBox1.SelColor = &HFF
   '  If Zje <= 0.5 Then Zje = 0.5
      ' RtBox1.SelText = vbCrLf + "总计金额:" & Format(Round((Zje - .Fields("已收款")) * 2) / 2, "###,###0.00元")
 
      If Data7.Recordset.Fields("取整金额") = 0.5 Then
       Zje = Round(Zje * 2) / 2
       Else
       Zje = Round(Zje)
     End If
'       txtYingShou.Text = Format(Zje, "#0.00")
'       txtYiShou.Text = Format(.Fields("已收款"), "#0.00")
'       txtShiShou.Text = Format(Zje, "#0.00") 'Format(Round((Zje - .Fields("已收款")) * 2) / 2, "#0.00")
   'nnn = .AbsolutePosition


End With

CountJF = Zje
End Function

Sub ClearJF()
'结帐
On Error Resume Next
Dim Yinshou As Double, shishou As Double, ID As Double
aa = frmEndPlay.txtShiShou
bb = frmEndPlay.txtYingShou
Yinshou = CountJF

shishou = Round(Val(frmEndPlay.txtShiShou.Text) * Yinshou / Val(frmEndPlay.txtYingShou), 2)
 With Data1.Recordset
  ID = Data4.Recordset.RecordCount + 1
  Data4.Recordset.AddNew
  Data4.Recordset.Fields("ID") = ID
  Data4.Recordset.Fields("机号") = .Fields("机号")
  Data4.Recordset.Fields("开始时间") = .Fields("开始时间")
  Data4.Recordset.Fields("结束时间") = Now
  Data4.Recordset.Fields("应收款") = Yinshou
  Data4.Recordset.Fields("实收款") = shishou
  Data4.Recordset.Fields("上机方式") = .Fields("上机方式")
  Data4.Recordset.Fields("优惠") = Val(comYouHui.Text)
  Data4.Recordset.Fields("结帐人") = UserName
  Data4.Recordset.Fields("客户姓名") = .Fields("客户姓名")
  Data4.Recordset.Fields("客户证件") = .Fields("客户证件")
  Data4.Recordset.Fields("证件号码") = .Fields("证件号码")
  Data4.Recordset.Update
  Data9.Recordset.MoveFirst
  For i = 1 To Data9.Recordset.RecordCount
   If Data9.Recordset.Fields("客户姓名") = .Fields("客户姓名") Then
    Data9.Recordset.Edit
    Data9.Recordset.Fields("消费额") = Data9.Recordset.Fields("消费额") + shishou
    Data9.Recordset.Fields("消费次数") = Data9.Recordset.Fields("消费次数") + 1
    Data9.Recordset.Fields("最后一次时间") = Now
    Data9.Recordset.Update
   End If
   Data9.Recordset.MoveNext
  Next i
  
  .Edit
  .Fields("开始时间").Value = Null
  .Fields("到点时间").Value = Null
  .Fields("暂停开始").Value = Null
  .Fields("暂停时间").Value = 0
  .Fields("已收款").Value = 0
  .Fields("状态").Value = "S"
  .Fields("上机方式").Value = ""
  .Fields("客户姓名") = ""
  .Fields("客户证件") = ""
  .Fields("证件号码") = ""
  .Update
 For i = 0 To Winsock1.Count - 1
  If Data1.Recordset.Fields("IP") = Winsock1(i).RemoteHostIP Then
    Winsock1(i).SendData "_comm" + Chr(0) + "stop" + Chr(0) + "OK$"
    DoEvents
   Exit For
  End If
 Next i

 End With
  ListView1.ListItems(SelectComputer).Icon = 5
  ListView1.ListItems(SelectComputer).SmallIcon = 5
  ListView1.ListItems(SelectComputer).Selected = True
  For i = 1 To 9
  ListView1.ListItems(SelectComputer).SubItems(i) = ""
  Next i
 With Data2.Recordset
 .MoveFirst
  For i = 1 To .RecordCount
   If .Fields("机号") = Data1.Recordset.Fields("机号") Then
    Data5.Recordset.AddNew
    Data5.Recordset.Fields("ID") = ID
    Data5.Recordset.Fields("机号") = .Fields("机号")
    Data5.Recordset.Fields("商品编号") = .Fields("商品编号")
    Data5.Recordset.Fields("数量") = .Fields("数量")
    Data5.Recordset.Fields("时间") = .Fields("时间")
    Data5.Recordset.Update
    .Delete
   End If
   .MoveNext
  Next i
 End With
End Sub

Sub Longin()
If Data8.Recordset.RecordCount > 0 Then
 frmLogin.Show vbModal, Me
 Else
 UserPass

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -