📄 frmmain.frm
字号:
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 + -