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

📄 frmuseroperate.frm

📁 一个功能比较完善的远程抄表软件
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmUserOperate 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "用户设备开关操作"
   ClientHeight    =   2955
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4305
   ControlBox      =   0   'False
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   MinButton       =   0   'False
   ScaleHeight     =   2955
   ScaleWidth      =   4305
   Begin VB.CommandButton cmdShut 
      Caption         =   "关断"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   324
      Left            =   1560
      TabIndex        =   8
      Top             =   2355
      Width           =   1140
   End
   Begin VB.CommandButton cmdOpen 
      Caption         =   "打开"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   324
      Left            =   240
      TabIndex        =   7
      Top             =   2355
      Width           =   1140
   End
   Begin VB.CommandButton cmdCancel 
      Caption         =   "返回"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   324
      Left            =   2880
      TabIndex        =   6
      Top             =   2355
      Width           =   1140
   End
   Begin VB.ComboBox cmbDev 
      Height          =   300
      Left            =   1200
      Style           =   2  'Dropdown List
      TabIndex        =   5
      Top             =   360
      Width           =   2496
   End
   Begin VB.TextBox txtUser 
      Height          =   264
      Left            =   1680
      TabIndex        =   4
      Top             =   1680
      Width           =   1932
   End
   Begin VB.OptionButton optScope 
      Caption         =   "用户号"
      Height          =   252
      Index           =   1
      Left            =   480
      TabIndex        =   3
      Top             =   1680
      Width           =   972
   End
   Begin VB.TextBox txtCardAddr 
      Height          =   264
      Left            =   1680
      TabIndex        =   2
      Top             =   840
      Width           =   1932
   End
   Begin VB.OptionButton optScope 
      Caption         =   "卡地址"
      Height          =   252
      Index           =   0
      Left            =   480
      TabIndex        =   1
      Top             =   840
      Width           =   972
   End
   Begin VB.TextBox txtDevAddr 
      Height          =   264
      Left            =   1680
      TabIndex        =   0
      Top             =   1200
      Width           =   1932
   End
   Begin VB.Label lblDev 
      Caption         =   "设备:"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   255
      Left            =   480
      TabIndex        =   10
      Top             =   360
      Width           =   855
   End
   Begin VB.Label Label1 
      Caption         =   "表地址"
      Height          =   255
      Left            =   720
      TabIndex        =   9
      Top             =   1200
      Width           =   735
   End
End
Attribute VB_Name = "frmUserOperate"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'****************************************************************************
'人人为我,我为人人
'枕善居收藏整理
'发布日期:2007/07/09
'描    述:CBB三表户外计量系统 Ver 5.2
'网    站:http://www.Mndsoft.com/  (VB6源码博客)
'网    站:http://www.VbDnet.com/   (VB.NET源码博客,主要基于.NET2005)
'e-mail  :Mndsoft@163.com
'e-mail  :Mndsoft@126.com
'OICQ    :88382850
'          如果您有新的好的代码别忘记给枕善居哦!
'****************************************************************************
Dim rcGate As Recordset
Dim rcBuild As Recordset
Dim rcUser As Recordset
Dim rcTemUserMap As Recordset
Dim curScope As Integer

Function prepareUser() As Integer
Dim curFrame As Integer
Dim curGate As Integer
Dim curBuild As String
Dim curBuildAddr As Integer
Dim curUserID As Integer
Dim curUserAddr As Integer
Dim i As Integer
Dim temVal As Boolean

'打开网关
    If Trim(cmbGate.List(cmbGate.ListIndex)) <> "" And IsNumeric(Trim(cmbGate.List(cmbGate.ListIndex))) Then
        curFrame = Format(Trim(cmbGate.List(cmbGate.ListIndex)))
            For i = 1 To curFrame
                rcGate.FindFirst "FrameID=" + Format(i)
                If Not rcGate.NoMatch Then
                    curGate = rcGate!StartGate
                    If curGate = 0 Then
                        GoTo NextStartGate
                    End If
                    temVal = openGate(curGate)
                    If temVal Then
                        rcGate.Edit
                        rcGate!Status = 1
                        rcGate.Update
                        If i = curFrame Then
                            GoTo GateOK
                        End If
                    Else
                        CloseGate (curGate)
                        rcGate.Edit
                        rcGate!Status = 2
                        rcGate.Update
                        GoTo NotIsForward
                    End If
                End If
NextStartGate:
            Next i
NotIsForward:
            For i = rcGate.RecordCount To curFrame Step -1
                rcGate.FindFirst "FrameID=" + Format(i)
                If Not rcGate.NoMatch Then
                    curGate = rcGate!endGate
                    If curGate = 0 Then
                        GoTo NextEndGate
                    End If
                    temVal = openGate(curGate)
                    If temVal Then
                        rcGate.Edit
                        rcGate!Status = 1
                        rcGate.Update
                        If i = curFrame Then
                            GoTo GateOK
                        End If
                    Else
                        CloseGate (curGate)
                        rcGate.Edit
                        rcGate!Status = 2
                        rcGate.Update
                        MsgBox "指定用户处于故障区间" + Chr(10) + "无法进行操作", 48, "用户煤气操作"
                        prepareUser = 0
                        Exit Function
                    End If
                End If
NextEndGate:
            Next i

GateOK:
'打开安全器
        If Trim(cmbBuild.List(cmbBuild.ListIndex)) <> "" Then
            curBuild = Trim(cmbBuild.List(cmbBuild.ListIndex))
            rcBuild.FindFirst "BuildID=""" + curBuild + """"
            If Not rcBuild.NoMatch Then
                curBuildAddr = rcBuild!Address
                If curBuildAddr <> 0 Then
                    If Not openBuild(curBuildAddr) Then
                        CloseBuild (curBuildAddr)
                        MsgBox "不能打开用户所在楼安全器"
                        prepareUser = 0
                        Exit Function
                    End If
                End If
            End If
        End If
'得到用户地址
        If Trim(cmbUser.List(cmbUser.ListIndex)) <> "" Then
            curUserID = Val(Trim(cmbUser.List(cmbUser.ListIndex)))
            rcUser.FindFirst "UserID=" + Format(curUserID)
            If Not rcUser.NoMatch Then
                If IsNull(rcTemUserMap!Address) Then
                    curUserAddr = 0
                    MsgBox "用户地址无效!", 48, "用户操作"
                Else
                    curUserAddr = rcTemUserMap!Address
                End If
                prepareUser = curUserAddr
            Else
                MsgBox "无法找到指定用户信息!", 48, "用户操作"
                prepareUser = 0
            End If
        End If
    End If

End Function

    'lblAddress.Caption = ""
    'If Not (rcTemUserMap.RecordCount > 0) Then
        'Exit Sub
    'End If
    'rcUser.FindFirst "UserID=" + Trim(cmbUser.List(cmbUser.ListIndex))
    'If Not rcTemUserMap.NoMatch Then
        'lblAddress.Caption = rcTemUserMap!Address
    'End If



Private Sub cmdCancel_Click()
    Unload Me
End Sub

Private Sub cmdOpen_Click()
Dim rcUserDev As Recordset
Dim curCardAddr As Integer
Dim curDevAddr As Integer

    Select Case curScope
        Case 0
            curCardAddr = Val(txtCardAddr.Text)
            curDevAddr = Val(txtDevAddr.Text)
        Case 1
            If Val(txtUser.Text) >= 0 Then
                SQL = "select * from UserDev where UserID=" & Val(txtUser.Text) _
                    & " and devType=" & (cmbDev.ListIndex + 1)
                Set rcUserDev = dbCbb.OpenRecordset(SQL, dbOpenSnapshot)
                If rcUserDev.EOF Then
                    MsgBox "无效的用户号,请重新输入", vbOKOnly + vbInformation, "开关设备"
                    Exit Sub
                End If
                curCardAddr = rcUserDev!CardTermID
                curDevAddr = rcUserDev!CardUserID
            End If
    End Select
    
    closeCard
    Delay 1, 1
    
    '先发卡地址+开设备指令
    openDev curCardAddr, DEVOP_OPEN
    Delay 1, 1
    '再发卡地址+设备地址
    openDev curCardAddr, curDevAddr
    Delay 1, 1
    closeCard
    
    MsgBox "打开设备(" & curCardAddr & " + " & curDevAddr & ")指令已发出", vbOKOnly + vbInformation, "打开设备"
End Sub

Private Sub cmdShut_Click()
Dim rcUserDev As Recordset
Dim curCardAddr As Integer
Dim curDevAddr As Integer

    Select Case curScope
        Case 0
            curCardAddr = Val(txtCardAddr.Text)
            curDevAddr = Val(txtDevAddr.Text)
        Case 1
            If Val(txtUser.Text) >= 0 Then
                SQL = "select * from UserDev where UserID=" & Val(txtUser.Text) _
                    & " and devType=" & (cmbDev.ListIndex + 1)
                Set rcUserDev = dbCbb.OpenRecordset(SQL, dbOpenSnapshot)
                If rcUserDev.EOF Then
                    MsgBox "无效的用户号,请重新输入", vbOKOnly + vbInformation, "开关设备"
                    Exit Sub
                End If
                curCardAddr = rcUserDev!CardTermID
                curDevAddr = rcUserDev!CardUserID
            End If
    End Select
    
    closeCard
    Delay 1, 1
    
    '先发卡地址+关设备指令
    openDev curCardAddr, DEVOP_SHUT
    Delay 1, 1
    '再发卡地址+设备地址
    openDev curCardAddr, curDevAddr
    Delay 1, 1
    closeCard
    
    MsgBox "关断设备(" & curCardAddr & " + " & curDevAddr & ")指令已发出", vbOKOnly + vbInformation, "关断设备"
            
End Sub

Sub initDev()
Dim rcDevsMap As Recordset

    cmbDev.Clear
    SQL = "select * from DevsMap order by typeID"
    Set rcDevsMap = dbCbb.OpenRecordset(SQL, dbOpenSnapshot)
    Do While Not rcDevsMap.EOF
        cmbDev.AddItem rcDevsMap!Name
        rcDevsMap.MoveNext
    Loop
End Sub
Private Sub Form_Load()
    If UBound(curForm) > 0 Then
        curForm(UBound(curForm)).Enabled = False
    End If
    ReDim Preserve curForm(UBound(curForm) + 1)
    Set curForm(UBound(curForm)) = Me
    
    initDev
End Sub


Private Sub Form_Unload(Cancel As Integer)
    ReDim Preserve curForm(UBound(curForm) - 1)
    If UBound(curForm) > 0 Then
        curForm(UBound(curForm)).Enabled = True
    End If

End Sub

Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

End Sub

Private Sub optScope_Click(Index As Integer)
    curScope = Index
    Select Case Index
        Case 0
            txtCardAddr.Enabled = True
            txtDevAddr.Enabled = True
            txtUser.Enabled = False
        Case 1
            txtCardAddr.Enabled = False
            txtDevAddr.Enabled = False
            txtUser.Enabled = True
        Case Else
            txtCardAddr.Enabled = False
            txtDevAddr.Enabled = False
            txtUser.Enabled = False
    End Select
End Sub


⌨️ 快捷键说明

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