📄 form3.frm
字号:
Caption = "卡充值记录"
End
Begin VB.Menu 卡退款记录
Caption = "卡退款记录"
End
Begin VB.Menu rr
Caption = "-"
End
Begin VB.Menu 刷卡结算记录
Caption = "刷卡结算记录"
End
Begin VB.Menu 挂失记录
Caption = "挂失记录"
End
Begin VB.Menu tttt
Caption = "-"
End
Begin VB.Menu 卡总金额
Caption = "卡总金额"
End
End
Begin VB.Menu 帮助
Caption = "帮助"
End
End
Attribute VB_Name = "Form3"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim lianjie As New Connection
Dim R_xtshzh As Recordset
Dim CardNumber As Double
Dim yue As Recordset
Dim yue2 As Recordset
Dim jsjl As Recordset
Dim zhk As Recordset
Dim r_chzhjl As Recordset
Dim hj As Double
Dim zhekou As Double
Private Declare Function sndPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Dim SoundFile As String, Result As Long
Private Sub Form_Load()
Form3.StatusBar1.Panels(1).Text = " " & quanxian & ":" & yonghuming & " "
With lianjie
.ConnectionString = dblianjie
.Open
End With
jine = 0
Set R_xtshzh = New Recordset
R_xtshzh.CursorLocation = adUseClient
R_xtshzh.CursorType = adOpenDynamic
R_xtshzh.LockType = adLockOptimistic
R_xtshzh.Open "select * from 设置 ", lianjie
If R_xtshzh.RecordCount > 0 Then
com_x = R_xtshzh.Fields("串口设置")
jine = R_xtshzh.Fields("刷卡金额")
End If
If quanxian = "系统管理员" Then
系统管理.Visible = True
Else
系统管理.Visible = False
End If
MSComm1.CommPort = com_x '串口号,
MSComm1.Settings = "9600,N,8,1" '串口的属性
MSComm1.InputLen = 0 '接收缓冲区的大小
MSComm1.InputMode = comInputModeBinary '二进制接受方式
MSComm1.RThreshold = 7 '每7个字节响应消息
MSComm1.PortOpen = True '打开通信串口
Text5.Text = "等待刷卡!"
Call cyy
End Sub
Private Sub cyy()
hj = 0
Set jsjl = New Recordset
jsjl.CursorLocation = adUseClient
jsjl.CursorType = adOpenDynamic
jsjl.LockType = adLockOptimistic
jsjl.Open "select * from 卡结算记录 where 出帐日期=#" & Date & " # and 结算类型='自动'", lianjie
jsjl.Sort = "编号"
If jsjl.RecordCount > 0 Then
jsjl.MoveFirst
Do Until jsjl.EOF
hj = hj + jsjl.Fields("结算金额")
jsjl.MoveNext
Loop
jsjl.MoveLast
End If
Text6.Text = Format(hj, "0.00")
Set DataGrid1.DataSource = jsjl
DataGrid1.Columns(0).Visible = False
DataGrid1.Columns(1).Width = 1300
DataGrid1.Columns(2).Width = 1400
DataGrid1.Columns(2).NumberFormat = "0.00"
DataGrid1.Columns(3).Visible = False
DataGrid1.Columns(4).Width = 1700
DataGrid1.Columns(4).NumberFormat = "hh:mm:ss"
DataGrid1.Columns(5).Visible = False
DataGrid1.Columns(6).Visible = False
DataGrid1.Columns(7).Visible = False
DataGrid1.Columns(8).Width = 1300
DataGrid1.Columns(8).NumberFormat = "0.00"
DataGrid1.Columns(9).Width = 1400
DataGrid1.Columns(9).NumberFormat = "0.00"
DataGrid1.Columns(10).Width = 1100
DataGrid1.Columns(11).Width = 700
DataGrid1.Columns(12).Width = 2800
End Sub
Private Sub Form_Unload(Cancel As Integer)
lianjie.Close
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent '串口事件
Case comEvReceive '接收到数据
Dim Buffer As Variant '存储数据的缓冲区
Dim StringBuf(8) As String '数据数组
Buffer = MSComm1.Input '清理接收缓冲区,此时,接收的字节数已经为0
'Dim CardNumber As Long '卡号
CardNumber = CDec(Buffer(3)) * 2 ^ 24 + (Buffer(4) * 2 ^ 16) + (Buffer(5) * 2 ^ 8) + Buffer(6) '单个字节数据左移
'----------------------------------
Set yue2 = New Recordset
yue2.CursorLocation = adUseClient
yue2.CursorType = adOpenDynamic
'yue2.LockType = adLockOptimistic
yue2.Open "select * from 卡资料 where 卡号='" & CStr(CardNumber) & "'", lianjie
If yue2.RecordCount > 0 Then
Text1.Text = Trim(yue2.Fields("卡编号"))
Text4.Text = Trim(yue2.Fields("姓名"))
If Trim(yue2.Fields("卡状态")) = "正常" Then
Set zhk = New Recordset
zhk.CursorLocation = adUseClient
zhk.CursorType = adOpenDynamic
'zhk.LockType = adLockOptimistic
zhk.Open "select * from 折扣 where 开始金额<=" & yue2.Fields("累计消费") & "", lianjie
zhk.Sort = "开始金额"
If zhk.RecordCount > 0 Then
zhk.MoveLast
zhekou = 1 - zhk.Fields("折扣")
Else
zhekou = 1
End If
If yue2.Fields("卡余额") >= jine * zhekou Then
Set yue = New Recordset
yue.CursorLocation = adUseClient
yue.CursorType = adOpenDynamic
yue.LockType = adLockOptimistic
yue.Open "select * from 卡资料 where 卡号='" & CStr(CardNumber) & "'", lianjie
If yue.RecordCount > 0 Then
yue.Fields("卡余额") = yue.Fields("卡余额") - jine * zhekou
yue.Fields("累计消费") = yue.Fields("累计消费") + jine * zhekou
yue.Update
Set r_chzhjl = New Recordset
r_chzhjl.CursorLocation = adUseClient
r_chzhjl.CursorType = adOpenDynamic
r_chzhjl.LockType = adLockOptimistic
r_chzhjl.Open "select top 1 * from 卡结算记录 ", lianjie
r_chzhjl.AddNew
r_chzhjl.Fields("卡编号") = Trim(yue.Fields("卡编号"))
r_chzhjl.Fields("结算金额") = CDbl(jine * zhekou)
r_chzhjl.Fields("日期") = Date
r_chzhjl.Fields("时间") = Date + Time
r_chzhjl.Fields("操作人") = yonghuming
If Time < #6:00:00 AM# Then
r_chzhjl.Fields("出帐日期") = Date - 1
Else
r_chzhjl.Fields("出帐日期") = Date
End If
r_chzhjl.Fields("结算类型") = "自动"
r_chzhjl.Fields("结算折扣") = 1 - zhekou
r_chzhjl.Fields("卡余额") = yue.Fields("卡余额")
r_chzhjl.Fields("姓名") = Trim(yue.Fields("姓名"))
r_chzhjl.Fields("性别") = Trim(yue.Fields("性别"))
r_chzhjl.Fields("身份证号") = Trim(yue.Fields("身份证号"))
r_chzhjl.Update
End If
yue.Close
Text5.Text = "扣款成功!"
SoundFile = App.Path & "\刷卡正确.wav"
Result = sndPlaySound(SoundFile, 1)
Call cyy
Else
Text5.Text = "卡余额不足,请充值!"
End If
Else
Text5.Text = "本卡已挂失!"
End If
Else
Text1.Text = ""
Text4.Text = ""
Text5.Text = "非本系统注册的卡!"
End If
End Select
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "卡充值"
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_kchzh.Show 1
MSComm1.PortOpen = True
Case "查余额"
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_chye.Show 1
MSComm1.PortOpen = True
Case "刷卡结算"
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_shkjs.Show 1
MSComm1.PortOpen = True
Case "帮助"
Form_bzhu.Show 1
Case "退出系统"
Unload Me
End
End Select
End Sub
Private Sub 帮助_Click()
Form_bzhu.Show 1
End Sub
Private Sub 查余额_Click()
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_chye.Show 1
MSComm1.PortOpen = True
End Sub
Private Sub 初始化数据库_Click()
Form_chshh.Show 1
End Sub
Private Sub 挂失_Click()
xfk_gsh.Show 1
End Sub
Private Sub 挂失记录_Click()
xfk_gshjl.Show 1
End Sub
Private Sub 卡充值_Click()
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_kchzh.Show 1
MSComm1.PortOpen = True
End Sub
Private Sub 卡充值记录_Click()
Form_kchzhjl.Show 1
End Sub
Private Sub 卡退款_Click()
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_ktk.Show 1
MSComm1.PortOpen = True
End Sub
Private Sub 卡退款记录_Click()
Form_ktkjl.Show 1
End Sub
Private Sub 卡注册_Click()
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_kzc.Show 1
MSComm1.PortOpen = True
End Sub
Private Sub 卡资料查询_Click()
Form_kzlchx.Show 1
End Sub
Private Sub 卡总金额_Click()
Form_khz.Show 1
End Sub
Private Sub 密码修改_Click()
Form_mmxg.Show 1
End Sub
Private Sub 取消挂失_Click()
xfk_qxgsh.Show 1
End Sub
Private Sub 刷卡结算_Click()
If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If
Form_shkjs.Show 1
MSComm1.PortOpen = True
End Sub
Private Sub 刷卡结算记录_Click()
Form_kjsjl.Show 1
End Sub
Private Sub 通过卡号退款_Click()
Form_khtk.Show 1
End Sub
Private Sub 退出系统_Click()
Unload Me
End
End Sub
Private Sub 系统设置_Click()
Form_xtshzh.Show 1
End Sub
Private Sub 用户管理_Click()
Form_yhgl.Show 1
End Sub
Private Sub 折扣设置_Click()
Form_zhk.Show 1
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -