📄 frmemployees.frm
字号:
.TextMatrix(0, 3) = "性别"
.TextMatrix(0, 4) = "部门"
.TextMatrix(0, 5) = "职务"
.TextMatrix(0, 6) = "职称"
.TextMatrix(0, 7) = "文化程度"
.TextMatrix(0, 8) = "政治面貌"
.TextMatrix(0, 9) = "婚姻状况"
.TextMatrix(0, 10) = "身份证号码"
.TextMatrix(0, 11) = "出生日期"
.TextMatrix(0, 12) = "参加工作日期"
.TextMatrix(0, 13) = "到本单位日期"
.TextMatrix(0, 14) = "手机号码"
.TextMatrix(0, 15) = "家庭电话"
.TextMatrix(0, 16) = "家庭地址"
.TextMatrix(0, 17) = "备注"
.ScrollBars = flexScrollBarBoth
' .GridLines = flexGridNone
' .GridLinesFixed = flexGridNone
.FillStyle = flexFillSingle
.ScrollTrack = True
.AllowUserResizing = flexResizeColumns
For i = 1 To .Cols - 1
.ColAlignmentFixed(i) = 3 '设置表格标题的对齐方式
Next i
.ColWidth(0) = 1
.ColWidth(1) = 800
.ColWidth(2) = 1000
.ColWidth(3) = 500
.ColWidth(4) = 700
.ColWidth(5) = 600
.ColWidth(6) = 600
.ColWidth(7) = 800
.ColWidth(8) = 800
.ColWidth(9) = 800
.ColWidth(10) = 1800
.ColWidth(11) = 1200
.ColWidth(12) = 1200
.ColWidth(13) = 1200
.ColWidth(14) = 1200
.ColWidth(15) = 1400
.ColWidth(16) = 3000
.ColWidth(17) = 1000
.ColAlignment(1) = 1 '水平居左,垂直居中对齐
.ColAlignment(2) = 1
.ColAlignment(3) = 4 '水平居中,垂直居中对齐
.ColAlignment(4) = 4
.ColAlignment(5) = 4
.ColAlignment(6) = 4
.ColAlignment(7) = 4
.ColAlignment(8) = 4
.ColAlignment(9) = 4
.ColAlignment(10) = 1
.ColAlignment(11) = 1
.ColAlignment(12) = 1
.ColAlignment(13) = 1
.ColAlignment(14) = 1
.ColAlignment(15) = 1
.ColAlignment(16) = 1
.ColAlignment(17) = 1
.Row = 1 '选择第一行
.Col = 0
.RowSel = 1
.ColSel = .Cols - 1
End With
End Sub
Public Sub ShowData(ByVal Recordset As ADODB.Recordset, ByVal flexGrid As MSHFlexGrid)
Dim i As Long
Dim vtempdata As Variant
If Recordset.RecordCount > 0 Then
Recordset.MoveFirst
With flexGrid
.Row = 1
While Not Recordset.EOF
.Rows = .Rows + 1
For i = 1 To Recordset.Fields.Count - 1
.Col = i
If (.Row Mod 2) = 0 Then
.CellBackColor = &HF4D3A6
Else
.CellBackColor = vbWhite
End If
vtempdata = Recordset.Fields(i - 1)
Select Case i - 1
Case 2
If vtempdata = 0 Then
.Text = "女"
Else
.Text = "男"
End If
Case 3
If Trim(vtempdata) <> Empty Then
.Text = RecordSetFindItem(rctDepartList, "Depart_ID", vtempdata, 1)
End If
Case 4
If Trim(vtempdata) <> Empty Then
.Text = RecordSetFindItem(rctJobList, "Job_ID", vtempdata, 1)
End If
Case 5
If Trim(vtempdata) <> Empty Then
.Text = RecordSetFindItem(rctTitelList, "Titel_ID", vtempdata, 1)
End If
Case 6
If Trim(vtempdata) <> Empty Then
.Text = RecordSetFindItem(rctEdulevel, "E_ID", vtempdata, 1)
End If
Case 7
If Trim(vtempdata) <> Empty Then
.Text = RecordSetFindItem(rctPlitics, "P_ID", vtempdata, 1)
End If
Case 8
If Trim(vtempdata) <> Empty Then
.Text = RecordSetFindItem(rctMarriageStatus, "MS_ID", vtempdata, 1)
End If
Case Else
If Trim(vtempdata) <> Empty Then
.Text = Trim(vtempdata)
End If
End Select
Next i
.Row = .Row + 1
Recordset.MoveNext
Wend
' .Row = 1 '自动的选择第一行
' .Col = 0
' .RowSel = 1
' .ColSel = .Cols - 1
End With
End If
End Sub
Private Sub flexEmployees_DblClick()
If frmEmployees.Caption <> "员工查询" Then
Call tblEmployees_ButtonClick(tblEmployees.Buttons("modify"))
End If
End Sub
Private Sub flexEmployees_SelChange()
Call GetFlexGridFirstColValue(flexEmployees, strEmpFirstFieldValue) '从表格中提取员工工作证号
If strEmpFirstFieldValue <> Empty Then
If Not (rctEmployees.EOF And rctEmployees.BOF) Then
rctEmployees.MoveFirst
rctEmployees.Find ("Emp_ID = " & "'" & Trim(strEmpFirstFieldValue) & "'") '实时的移动记录
End If
End If
End Sub
Private Sub Form_Load()
Call IniGrid(flexEmployees)
Call ShowData(rctEmployees, flexEmployees)
Call frmLeavel.InitreDepart(trwDepart)
End Sub
Private Sub tblEmployees_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "add"
'rctEmployees.AddNew
If flexEmployees.Rows > 2 Then
flexEmployees.Row = flexEmployees.Rows - 1
flexEmployees.Col = 0
flexEmployees.RowSel = flexEmployees.Rows - 1
flexEmployees.ColSel = flexEmployees.Cols - 1
If flexEmployees.Rows > 15 Then
flexEmployees.TopRow = flexEmployees.Rows - 15
End If
End If
frmEmpAdd.Caption = "新增记录"
frmEmpAdd.cmdPrevious.Visible = False
frmEmpAdd.cmdNext.Visible = False
frmEmpAdd.cmdAdd.Visible = False
frmEmpAdd.Show vbModal
Case "delete"
If strEmpFirstFieldValue <> Empty Then
If MsgBox("您确定要删除此条记录吗?", vbQuestion + vbYesNo, "删除记录") = vbYes Then
If frmUnit.RecordDelete(rctEmployees, adAffectCurrent) = True Then
frmEmployees.flexEmployees.Redraw = False
Call IniGrid(flexEmployees)
Call ShowData(rctEmployees, flexEmployees)
frmEmployees.flexEmployees.Redraw = True
End If
End If
End If
Case "modify"
If strEmpFirstFieldValue <> Empty Then
frmEmpAdd.Caption = "修改记录"
Call frmEmpAdd.IniFromAdd(rctEmployees)
frmEmpAdd.cmdAdd.Visible = False
frmEmpAdd.cmdCancel.Visible = False
frmEmpAdd.Show vbModal
End If
Case "exit"
Unload Me
End Select
End Sub
Private Sub treDepart_BeforeLabelEdit(Cancel As Integer)
End Sub
Private Sub tlbExit_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
Case "exit"
Unload Me
Case "help"
End Select
End Sub
Private Sub tlbPrint_ButtonClick(ByVal Button As MSComctlLib.Button)
If ExcuteSql(rctQueryEmployeesWithID, "select * from QueryEmployeesWithID") = True Then
rctQueryEmployeesWithID.Filter = rctEmployees.Filter
Set drptEmployees.DataSource = rctQueryEmployeesWithID
End If
If rctQueryEmployeesWithID.RecordCount <= 0 Then
MsgBox "没有合适的记录", vbInformation + vbOKOnly, "打印信息"
Exit Sub
End If
Select Case Button.Key
Case "Preview"
drptEmployees.Show vbModal
Case "print"
On Error GoTo Error_on_print
drptEmployees.PrintReport False '不显示窗口
Exit Sub
Error_on_print:
MsgBox "错误代码:" & Err.Number & _
"错误描述:" & Err.Description, vbCritical + vbOKOnly, "打印错误"
End Select
End Sub
Private Sub tlbPrint_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu)
Select Case ButtonMenu.Key
Case "singQuery"
frmEmpQuery.Show vbModal, Me
Case "multi"
End Select
End Sub
Private Sub tmrSta_Timer()
staEmployees.Panels("recordcount").Text = rctEmployees.RecordCount
End Sub
Private Sub trwDepart_NodeClick(ByVal Node As MSComctlLib.Node)
Dim DepartId As String
Dim strFilter As String
If Node.Key <> "full" Then
DepartId = Mid(Node.Key, 2, Len(Node.Key) - 1)
strFilter = "Depart_ID =" & "'" & DepartId & "'"
rctEmployees.Filter = strFilter
flexEmployees.Redraw = False
Call IniGrid(flexEmployees)
Call ShowData(rctEmployees, flexEmployees)
flexEmployees.Redraw = True
Else
rctEmployees.Filter = ""
flexEmployees.Redraw = False
Call IniGrid(flexEmployees)
Call ShowData(rctEmployees, flexEmployees)
flexEmployees.Redraw = True
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -