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

📄 form3.frm

📁 射频卡收费系统 自主开发 可以用于任何商业收费场所
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         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 + -