📄 frmoperator.frm
字号:
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form frmOperator
Caption = "操作员管理"
ClientHeight = 4650
ClientLeft = 2775
ClientTop = 3765
ClientWidth = 7155
Icon = "frmOperator.frx":0000
KeyPreview = -1 'True
LinkTopic = "Form1"
MDIChild = -1 'True
ScaleHeight = 4650
ScaleWidth = 7155
ShowInTaskbar = 0 'False
Begin VB.Frame Frame2
Caption = "修改"
Height = 3375
Left = 4560
TabIndex = 11
Top = 720
Width = 2415
Begin VB.CommandButton cmdOK
Caption = "确认(&O)"
Height = 315
Left = 720
TabIndex = 6
Top = 2880
Width = 975
End
Begin VB.OptionButton optSystemMan
Caption = "系统管理员"
Height = 255
Left = 720
TabIndex = 4
Top = 1365
Width = 1455
End
Begin VB.OptionButton optWatchMan
Caption = "值班员"
Height = 255
Left = 720
TabIndex = 5
Top = 1695
Value = -1 'True
Width = 1455
End
Begin VB.TextBox txtId
Height = 270
Left = 720
MaxLength = 4
TabIndex = 1
Top = 240
Width = 735
End
Begin VB.TextBox txtPassword
Height = 270
IMEMode = 3 'DISABLE
Left = 720
MaxLength = 8
PasswordChar = "*"
TabIndex = 3
Top = 960
Width = 1455
End
Begin VB.TextBox txtName
Height = 270
Left = 720
MaxLength = 10
TabIndex = 2
Top = 600
Width = 1455
End
Begin VB.Line Line2
X1 = 240
X2 = 2160
Y1 = 2760
Y2 = 2760
End
Begin VB.Label lblPrompt
AutoSize = -1 'True
Caption = "提示: 请操作员务必牢记"
Height = 180
Left = 240
TabIndex = 18
Top = 2160
Width = 1980
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "自己的口令!!!"
Height = 180
Left = 765
TabIndex = 17
Top = 2475
Width = 1095
End
Begin VB.Label lblTrust
AutoSize = -1 'True
Caption = "职责"
Height = 180
Left = 240
TabIndex = 16
Top = 1395
Width = 360
End
Begin VB.Line Line1
BorderColor = &H00FFFFFF&
Index = 1
X1 = 0
X2 = 2400
Y1 = 2070
Y2 = 2070
End
Begin VB.Line Line1
BorderColor = &H00808080&
Index = 0
X1 = 0
X2 = 2400
Y1 = 2055
Y2 = 2055
End
Begin VB.Label lblId
AutoSize = -1 'True
Caption = "编码"
Height = 180
Left = 240
TabIndex = 15
Top = 285
Width = 360
End
Begin VB.Label lblPassword
AutoSize = -1 'True
Caption = "口令"
Height = 180
Left = 240
TabIndex = 13
Top = 1005
Width = 360
End
Begin VB.Label lblName
AutoSize = -1 'True
Caption = "姓名"
Height = 180
Left = 240
TabIndex = 12
Top = 645
Width = 360
End
End
Begin VB.CommandButton cmdClose
Caption = "关闭(&X)"
Height = 315
Left = 5280
TabIndex = 9
Top = 4200
Width = 975
End
Begin VB.CommandButton cmdAdd
Caption = "增加(&A)"
Height = 315
Left = 840
TabIndex = 7
Top = 4200
Width = 975
End
Begin VB.CommandButton cmdDel
Caption = "删除(&D)"
Height = 315
Left = 2640
TabIndex = 8
Top = 4200
Width = 975
End
Begin VB.Frame Frame1
Caption = "操作员"
Height = 3375
Left = 120
TabIndex = 14
Top = 720
Width = 4335
Begin MSComctlLib.ListView LstvOperator
Height = 3015
Left = 120
TabIndex = 0
Top = 240
Width = 4095
_ExtentX = 7223
_ExtentY = 5318
View = 3
LabelEdit = 1
LabelWrap = -1 'True
HideSelection = 0 'False
FullRowSelect = -1 'True
GridLines = -1 'True
_Version = 393217
ForeColor = -2147483640
BackColor = -2147483643
Appearance = 1
NumItems = 3
BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628}
Text = "编码"
Object.Width = 1058
EndProperty
BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628}
Alignment = 2
SubItemIndex = 1
Text = "姓名"
Object.Width = 2823
EndProperty
BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628}
Alignment = 2
SubItemIndex = 2
Text = "职责"
Object.Width = 2647
EndProperty
End
End
Begin VB.Label lblTitle
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "操作员管理"
BeginProperty Font
Name = "隶书"
Size = 24
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF0000&
Height = 495
Left = 2160
TabIndex = 10
Top = 120
Width = 2415
End
End
Attribute VB_Name = "frmOperator"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Const m_SystemMan = "系统管理员"
Private Const m_WatchMan = "值班员"
Dim m_OperatorRs As ADODB.Recordset
Private Sub DisplayCurrentItem()
With LstvOperator.SelectedItem
txtId.Text = .Text
txtName.Text = .SubItems(1)
If .SubItems(2) = m_SystemMan Then
optSystemMan.Value = True
Else
optWatchMan.Value = True
End If
m_OperatorRs.MoveFirst
m_OperatorRs.Find "FId =" & LstvOperator.SelectedItem.Text
txtPassword.Text = IIf(IsNull(m_OperatorRs![FPassword]), "", m_OperatorRs![FPassword])
End With
End Sub
Private Sub SetOkCheck()
Dim bSelected As Boolean
If LstvOperator.SelectedItem Is Nothing Then
bSelected = False
Else
bSelected = True
End If
cmdAdd.Enabled = True
cmdDel.Enabled = bSelected
cmdOK.Enabled = bSelected
txtId.Enabled = bSelected
txtName.Enabled = bSelected
txtPassword.Enabled = bSelected
optSystemMan.Enabled = bSelected
optWatchMan.Enabled = bSelected
End Sub
Private Function GetNewId() As Integer
Dim TempRs As ADODB.Recordset
Set TempRs = New ADODB.Recordset
TempRs.Open "Select * From Operator Order by FId Desc", m_gCnAlarm
With TempRs
If .EOF And .BOF Then
GetNewId = 1
Else
GetNewId = ![FId] + 1
End If
End With
Set TempRs = Nothing
End Function
Private Sub cmdAdd_Click()
On Error GoTo ErrorHandler
With m_OperatorRs
.AddNew
![FId] = GetNewId
![FName] = "新操作员"
![FAttribute] = 0 '默认值班员
.Update
Dim ItemX As ListItem
Set ItemX = LstvOperator.ListItems.Add(, , ![FId])
ItemX.SubItems(1) = ![FName]
If ![FAttribute] = 1 Then
ItemX.SubItems(2) = m_SystemMan
Else
ItemX.SubItems(2) = m_WatchMan
End If
ItemX.EnsureVisible
Set LstvOperator.SelectedItem = ItemX
DisplayCurrentItem
End With
SetOkCheck
txtName.SetFocus
Exit Sub
ErrorHandler:
m_OperatorRs.CancelUpdate
Set LstvOperator.SelectedItem = LstvOperator.FindItem("新操作员", lvwSubItem)
DisplayCurrentItem
txtName.SetFocus
MsgBox "请修改新操作员!", vbOKOnly + vbInformation, "提示:"
End Sub
Private Sub cmdDel_Click()
If LstvOperator.SelectedItem Is Nothing Then
Exit Sub
End If
With m_OperatorRs
.MoveFirst
.Find "FId =" & LstvOperator.SelectedItem.Text
.Delete
End With
Dim nIndex As Integer
With LstvOperator
nIndex = .SelectedItem.Index
.ListItems.Remove (nIndex)
If nIndex <= .ListItems.Count Then
Set .SelectedItem = .ListItems(nIndex)
DisplayCurrentItem
ElseIf .ListItems.Count > 0 Then
Set .SelectedItem = .ListItems(nIndex - 1)
DisplayCurrentItem
Else
txtId.Text = ""
txtName.Text = ""
txtPassword.Text = ""
End If
End With
SetOkCheck
End Sub
Private Function CheckDataValidity() As Boolean
CheckDataValidity = False
If Trim(txtId.Text) = "" Or Not IsNumeric(txtId.Text) Then
txtId.Text = LstvOperator.SelectedItem.Text
ElseIf Val(txtId.Text) < 1 Then
txtId.Text = LstvOperator.SelectedItem.Text
End If
If Trim(txtName.Text) = "" Then
MsgBox "请输入操作员姓名!", vbOKOnly + vbInformation, "提示:"
txtName.SetFocus
Exit Function
ElseIf txtPassword.Text = "" Then
MsgBox "请输入操作员口令!", vbOKOnly + vbInformation, "提示:"
txtPassword.SetFocus
Exit Function
End If
Dim ItemX As ListItem
With LstvOperator
Set ItemX = .FindItem(Trim(txtId.Text), lvwText)
If Not ItemX Is Nothing Then
If ItemX.Index <> .SelectedItem.Index Then
MsgBox "操作员编码重复!", vbOKOnly + vbInformation, "提示:"
txtId.SetFocus
Exit Function
End If
End If
Set ItemX = .FindItem(Trim(txtName.Text), lvwSubItem)
If Not ItemX Is Nothing Then
If ItemX.Index <> .SelectedItem.Index Then
MsgBox "操作员姓名重复!", vbOKOnly + vbInformation, "提示:"
txtName.SetFocus
Exit Function
End If
End If
End With
CheckDataValidity = True
End Function
Private Sub cmdOk_Click()
If LstvOperator.SelectedItem Is Nothing Then
Exit Sub
End If
If Not CheckDataValidity Then
Exit Sub
End If
With m_OperatorRs
.MoveFirst
.Find "FId =" & LstvOperator.SelectedItem.Text
![FId] = txtId.Text
![FName] = txtName.Text
![FPassword] = txtPassword.Text
![FAttribute] = IIf(optSystemMan.Value, 1, 0)
.Update
End With
With LstvOperator.SelectedItem
.Text = Trim(txtId.Text)
.SubItems(1) = Trim(txtName.Text)
.SubItems(2) = IIf(optSystemMan.Value, m_SystemMan, m_WatchMan)
End With
End Sub
Private Sub cmdClose_Click()
Me.MousePointer = vbDefault
Unload Me
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{Tab}"
End If
End Sub
Private Sub Form_Load()
SetForm Me, 9
Set m_OperatorRs = New ADODB.Recordset
m_OperatorRs.Open "Select FId, FName, FPassword, FAttribute From Operator Order by FId", m_gCnAlarm, adOpenStatic, adLockOptimistic, adCmdUnknown
Dim ItemX As ListItem
With m_OperatorRs
Do While Not .EOF
Set ItemX = LstvOperator.ListItems.Add(, , ![FId])
ItemX.SubItems(1) = ![FName]
ItemX.SubItems(2) = IIf(![FAttribute] = 1, m_SystemMan, m_WatchMan)
.MoveNext
Loop
End With
With LstvOperator
If .ListItems.Count > 0 Then
Set .SelectedItem = .ListItems(1)
DisplayCurrentItem
End If
End With
SetOkCheck
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set m_OperatorRs = Nothing
End Sub
Private Sub LstvOperator_ItemClick(ByVal Item As MSComctlLib.ListItem)
DisplayCurrentItem
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -