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

📄 frmbusunpack.frm

📁 一个完整的非接触IC卡会员管理系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Begin VB.Form frmbusunpack 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "数据解包"
   ClientHeight    =   4800
   ClientLeft      =   30
   ClientTop       =   450
   ClientWidth     =   8370
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4800
   ScaleWidth      =   8370
   ShowInTaskbar   =   0   'False
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command2 
      Caption         =   "解包(&U)"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   6960
      TabIndex        =   8
      Top             =   600
      Width           =   1215
   End
   Begin VB.FileListBox File 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   3870
      Left            =   240
      TabIndex        =   7
      Top             =   600
      Width           =   4212
   End
   Begin VB.Frame Frame3 
      Caption         =   "数据类型"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1896
      Left            =   4680
      TabIndex        =   4
      Top             =   480
      Width           =   2052
      Begin VB.OptionButton Option4 
         Caption         =   "历史数据"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   480
         TabIndex        =   6
         Top             =   960
         Visible         =   0   'False
         Width           =   1305
      End
      Begin VB.OptionButton Option3 
         Caption         =   "当前数据"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   480
         TabIndex        =   5
         Top             =   480
         Value           =   -1  'True
         Width           =   1305
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "操作方式"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1692
      Left            =   4680
      TabIndex        =   1
      Top             =   2760
      Width           =   2052
      Begin VB.OptionButton Option1 
         Caption         =   "单个解包"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   360
         TabIndex        =   3
         Top             =   600
         Width           =   1212
      End
      Begin VB.OptionButton Option2 
         Caption         =   "全部解包"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   360
         TabIndex        =   2
         Top             =   1080
         Value           =   -1  'True
         Width           =   1212
      End
   End
   Begin VB.CommandButton Command3 
      Caption         =   "退出(&X)"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   6960
      TabIndex        =   0
      Top             =   1320
      Width           =   1215
   End
   Begin VB.Timer Timer1 
      Interval        =   5
      Left            =   7320
      Top             =   3600
   End
   Begin VB.Label Label1 
      Caption         =   "数据文件列表:"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   372
      Left            =   240
      TabIndex        =   9
      Top             =   120
      Width           =   3492
   End
End
Attribute VB_Name = "frmbusunpack"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim mbFalg As Boolean
Dim msPCName As String
Dim pspubilcPackPathFile As String
Dim iboolean As Boolean
Dim predatetime, strlinecode, strlinecentcode As String
Dim psBusNO1 As String
Dim psLineNO As String
Dim cur_tod_snt_path As String
Dim cur_his_sh_path As String
Dim bf_tod_snt_path As String
Dim bf_his_sh_path As String
Dim rs As New ADODB.Recordset

Private Function BusUnpackToDB(psPackPathFile As String) As Boolean
Dim pbIn(0 To 31) As Byte '每条交易记录
Dim psRecordData As String
Dim piRet As Boolean
Dim psIn As String
Dim psTempPathFile As String
Dim plFileEof As Long
Dim i23boolean    As Boolean
Dim i26boolean   As Boolean
Dim plL As Long

Dim ssCardNO As String
Dim ssCardOrderID As String
Dim ssCardType As String
Dim ssDo As String
Dim ssBalance As Currency
Dim ssBusinessMoney As Currency
Dim ssDateTime As String
Dim ssDeviceNO As String
Dim ssBM As String
Dim ssEmpName As String
Dim ssDoType As String
Dim L As Long                        '字节进制

L = 256
psTempPathFile = Left(psPackPathFile, Len(psPackPathFile) - 4) + ".txt"
pspubilcPackPathFile = File.FileName
Open psPackPathFile For Binary As #1
Open psTempPathFile For Output As #2
Do While Not EOF(1)
    Get #1, , pbIn
    plL = 1
    plFileEof = pbIn(0) * plL + pbIn(1) * plL + pbIn(2) * plL + pbIn(3) * plL + pbIn(4) * plL + pbIn(5) * plL + pbIn(6) * plL + pbIn(7) * plL
    If plFileEof = 0 Then Exit Do
    piRet = Hex_To_Asc(pbIn(0), psIn, 32)
   
    Select Case pbIn(9)
        Case 1, 2 '卡号(4)+卡交易流水(4)+卡类(1)+交易类型(1)+操作员编号(4)+余额(4)+交易金额(3)+交易时间(7)+设备号(3)
            psRecordData = psIn
            ssCardNO = Mid(psIn, 1, 8) '根据卡号查询持卡人姓名,持卡人部门
            Set rs = GetRecordset(maSys_db, "select * from 员工信息临时表 where IC卡号='" & ssCardNO & "'")
            If Not rs.EOF Then
                 ssBM = rs.Fields("部门")
                 ssEmpName = rs.Fields("员工姓名")
            Else
                 ssBM = "未知"
                 ssEmpName = "未知"
            End If
            ssCardOrderID = Mid(psIn, 9, 8)
            ssCardType = Mid(psIn, 17, 2)
            ssDo = Mid(psIn, 21, 8) '根据卡号查询司机名称
            Set rs = GetRecordset(maSys_db, "select * from 充值积分明细表 where IC卡号='" & ssDo & "'")
            If Not rs.EOF Then
                 ssDo = rs.Fields("员工编号")
            Else
                 ssDo = "未知"
            End If
            
'            ssBalance = Val(Mid(psIn, 27, 8)) / 100
            ssBalance = pbIn(14) + pbIn(15) * L + pbIn(16) * L * L + pbIn(17) * L * L * L
'            ssBusinessMoney = Val(Mid(psIn, 35, 6)) / 100
            ssBusinessMoney = pbIn(18) + pbIn(19) * L + pbIn(20) * L * L
            ssDateTime = Mid(psIn, 43, 4) & "-" & Mid(psIn, 47, 2) & "-" & Mid(psIn, 49, 2) & " " & Mid(psIn, 51, 2) & ":" & Mid(psIn, 53, 2) & ":" & Mid(psIn, 55, 2)
            ssDeviceNO = Mid(psIn, 57, 6)
            
            ssDoType = "扣次"
            If pbIn(9) = 2 Then
                ssBalance = ssBalance / 100
                ssBusinessMoney = ssBusinessMoney / 100
                ssDoType = "扣钱"
            End If
            
            Set rs = GetRecordset(maSys_db, "select * from 消费明细 where IC卡号='" & ssCardNO & "' and 消费时间='" & ssDateTime & "' and 卡上余额=" & ssBalance)
            If rs.RecordCount = 0 Then
                maSys_db.Execute "insert into 消费明细(IC卡号,IC卡类,员工编号,设备号,消费金额,卡上余额,消费时间,部门,司机,消费类型)" _
                        & "values('" & ssCardNO & "','" & ssCardType & "','" & ssEmpName & "','" _
                        & ssDeviceNO & "'," & ssBusinessMoney & "," & ssBalance & ",'" & ssDateTime & "','" _
                        & ssBM & "','" & ssDo & "','" & ssDoType & "')"
            End If
            Print #2, psRecordData
            
            
        Case 3 '卡号(4)+卡流水(4)+卡类(1)+交易类型(1)+操作员编号(4)+保留(7,补0)+交易时间(7)+设备号(3)
            psRecordData = psIn
            
            ssCardNO = Mid(psIn, 1, 8) '根据卡号查询持卡人姓名,持卡人部门
            Set rs = GetRecordset(maSys_db, "select * from 员工信息临时表 where IC卡号='" & ssCardNO & "'")
            If Not rs.EOF Then
                 ssBM = rs.Fields("部门")
                 ssEmpName = rs.Fields("员工姓名")
            Else
                 ssBM = "未知"
                 ssEmpName = "未知"
            End If
            ssCardOrderID = Mid(psIn, 9, 8)
            ssCardType = Mid(psIn, 17, 2)
            ssDo = Mid(psIn, 21, 8) '根据卡号查询司机名称
            Set rs = GetRecordset(maSys_db, "select * from 充值积分明细表 where IC卡号='" & ssDo & "'")
            If Not rs.EOF Then
                 ssDo = rs.Fields("员工编号")
            Else
                 ssDo = "未知"
            End If
   
            ssBalance = 0
            ssBusinessMoney = 0
            ssDateTime = Mid(psIn, 43, 4) & "-" & Mid(psIn, 47, 2) & "-" & Mid(psIn, 49, 2) & " " & Mid(psIn, 51, 2) & ":" & Mid(psIn, 53, 2) & ":" & Mid(psIn, 55, 2)
            ssDeviceNO = Mid(psIn, 57, 6)
            
            Set rs = GetRecordset(maSys_db, "select * from 消费明细 where IC卡号='" & ssCardNO & "' and 消费时间='" & ssDateTime & "' and 卡上余额=" & ssBalance)
            If rs.RecordCount = 0 Then
                maSys_db.Execute "insert into 消费明细(IC卡号,IC卡类,员工编号,设备号,消费金额,卡上余额,消费时间,部门,司机)" _
                        & "values('" & ssCardNO & "','" & ssCardType & "','" & ssEmpName & "','" _
                        & ssDeviceNO & "'," & ssBusinessMoney & "," & ssBalance & ",'" & ssDateTime & "','" _

⌨️ 快捷键说明

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