📄 employeelist.frm
字号:
Else
blnIsnotEmpty = False
End If
End With
With frmMain
.mnuEditEdit.Caption = "修改(&E)"
.mnuEditNew.Caption = "新增(&N)"
.mnuEditDel.Caption = "删除(&D)"
.mnuEditCopy.Enabled = blnIsnotEmpty
.mnuEditEdit.Enabled = blnIsnotEmpty And IsHaveRight
.mnuEditNew.Enabled = True And IsHaveRight
.mnuEditDel.Enabled = blnIsnotEmpty And IsHaveRight
.mnuEditUse.Enabled = blnIsnotEmpty
.mnuEditInActive.Checked = False
.mnuEditInActive.Visible = False
If sstDepEmp.Tab = 0 Or sstDepEmp.Tab = 1 Then
.mnuEditInActive.Enabled = blnIsnotEmpty And IsHaveRight
.mnuEditShowAll.Checked = chkShowAll.Value
.mnuEditShowAll.Enabled = True
.mnuEditNotepad.Enabled = blnIsnotEmpty
Else
.mnuEditInActive.Enabled = False And IsHaveRight
.mnuEditShowAll.Checked = chkShowAll.Value
.mnuEditShowAll.Enabled = False
.mnuEditNotepad.Enabled = False
End If
.mnuEditSearch.Enabled = True
.mnuEditColumn.Enabled = True
.mnuEditFilter.Enabled = True
.mnuFilePrint.Enabled = True
.mnuFilePrintSetup.Enabled = True
.mnuReportQuick.Enabled = blnIsnotEmpty
.mnuToolRefresh.Enabled = True
End With
If mclsList(sstDepEmp.Tab).FlexGrid.ColSel = 0 Then '无当前选定行
blnFindNoChange = mclsList(sstDepEmp.Tab).FindNoChange
mclsList(sstDepEmp.Tab).FindNoChange = True
txtfind.Text = ""
mclsList(sstDepEmp.Tab).FindNoChange = blnFindNoChange
cmdAgain.Enabled = False
End If
frmMain.SetToolBar
End Sub
'重画Form
Private Sub RedrawForm()
On Error Resume Next
With sstDepEmp
.Left = ListFormLeft
.width = Me.ScaleWidth - ListFormLeft - ListFormRight
.Height = Me.ScaleHeight - ssTabUpAreaHeight - ListDownAreaHeight
End With
'重画MS FlexGrid 控件
With mclsList(sstDepEmp.Tab).FlexGrid
.Left = ListGridLeft
.width = sstDepEmp.width - ListGridLeft - ListGridRight
' If sstDepEmp.Tab = 2 Then
' .Height = sstDepEmp.Height - sstDepEmp.TabHeight - ListGridTop - ListGridBottom - 250
' chkNewRate.Left = ListGridLeft
' chkNewRate.top = .Left + .Height + 350
' lblRange.top = chkNewRate.top + 15
' txtAmount.top = chkNewRate.top - 10
' txtRate.top = txtAmount.top
' Else
.Height = sstDepEmp.Height - sstDepEmp.TabHeight - ListGridTop - ListGridBottom
' End If
End With
'重画其余控件
txtfind.width = Me.ScaleWidth - txtfind.Left - ListFormBottom - cmdAgain.width - 15
cmdAgain.Left = txtfind.Left + txtfind.width
cmdDepEmp(0).top = Me.ScaleHeight - cmdDepEmp(0).Height - ListFormBottom
cmdDepEmp(1).top = cmdDepEmp(0).top
chkShowAll.top = cmdDepEmp(0).top
chkShowAll.Left = Me.ScaleWidth - chkShowAll.width - ListFormBottom
End Sub
'Private Sub chkNewRate_Click()
' If chkNewRate.Value = 0 Then
' txtRate.Enabled = False
' txtRate.BackColor = sstDepEmp.BackColor
' txtAmount.BackColor = sstDepEmp.BackColor
' txtRate.Text = 0
' txtAmount.Enabled = False
' txtAmount.Text = 0
' Else
' txtRate.Enabled = True
' txtRate.BackColor = msgPersonTax.BackColor
' txtAmount.BackColor = msgPersonTax.BackColor
' txtRate.Text = 3
' txtAmount.Enabled = True
' txtAmount.Text = 1000
' End If
'End Sub
'命令控件数组
Private Sub cmdDepEmp_Click(Index As Integer)
Dim PosX, PosY As Integer
PosX = cmdDepEmp(Index).Left
PosY = cmdDepEmp(Index).top + cmdDepEmp(Index).Height
With frmMain
Select Case Index
Case 0
MakeListEditMenu
PopupMenu .mnuListEdit, , PosX, PosY
Case 1
MakeListReportMenu (getDepEmp())
PopupMenu .mnuListReport, , PosX, PosY
End Select
End With
End Sub
'取部门职员
Private Function getDepEmp() As String
Dim strDepEmp As String
Dim i As Integer
Select Case sstDepEmp.Tab
Case 0
If msgDepartment.Row > 0 And msgDepartment.ColSel > 0 Then
With msgDepartment
' .Redraw = False
For i = 1 To .Cols - 1
If .TextMatrix(0, i) = "部门名称" Or .TextMatrix(0, i) = "部门名称↑" Or .TextMatrix(0, i) = "部门名称↓" Then
strDepEmp = .TextMatrix(.Row, i)
Exit For
End If
Next
' .Redraw = True
End With
Else
strDepEmp = ""
End If
Case 1
If msgEmployee.Row > 0 And msgEmployee.ColSel > 0 Then
With msgEmployee
' .Redraw = False
For i = 1 To .Cols - 1
If .TextMatrix(0, i) = "职员姓名" Or .TextMatrix(0, i) = "职员姓名↑" Or .TextMatrix(0, i) = "职员姓名↓" Then
strDepEmp = .TextMatrix(.Row, i)
Exit For
End If
Next
' .Redraw = True
End With
Else
strDepEmp = ""
End If
Case 2
If msgPersonTax.Row > 0 And msgPersonTax.ColSel > 0 Then
With msgPersonTax
' .Redraw = False
For i = 1 To .Cols - 1
If .TextMatrix(0, i) = "个人所得税级次" Or .TextMatrix(0, i) = "个人所得税级次↑" Or .TextMatrix(0, i) = "个人所得税级次↓" Then
strDepEmp = .TextMatrix(.Row, i)
Exit For
End If
Next
' .Redraw = True
End With
Else
strDepEmp = ""
End If
Case 3
If msgTaxType.Row > 0 And msgTaxType.ColSel > 0 Then
With msgTaxType
' .Redraw = False
For i = 1 To .Cols - 1
If .TextMatrix(0, i) = "扣税标准名称" Or .TextMatrix(0, i) = "扣税标准名称↑" Or .TextMatrix(0, i) = "扣税标准名称↓" Then
strDepEmp = .TextMatrix(.Row, i)
Exit For
End If
Next
' .Redraw = True
End With
Else
strDepEmp = ""
End If
End Select
getDepEmp = strDepEmp
End Function
Private Sub Form_Deactivate()
frmMain.SetEditUnEnabled
End Sub
'
'窗体 Form 控件
'
Private Sub Form_Load()
Dim i As Integer
Dim intSortCol As Integer
On Error GoTo ErrHandle
' Me.Hide
' Me.Left = -30000
MsgForm.PleaseWait
Me.HelpContextID = 30008
'部门职员列表窗体初始化
Debug.Print "Load Start: ", Timer
intViewID(0) = 9
intViewID(1) = 10
intViewID(2) = 60
intViewID(3) = 753
For i = 0 To 3
Set mclsList(i) = New list
Set mclsList(i).FindKind = cboFindKind
'Set mclsList(i).Again = cmdAgain
Set mclsList(i).Find = txtfind
Next
Set mclsList(0).FlexGrid = msgDepartment
Set mclsList(1).FlexGrid = msgEmployee
Set mclsList(2).FlexGrid = msgPersonTax
Set mclsList(3).FlexGrid = msgTaxType
Set mclsMainControl = gclsSys.MainControls.Add(Me)
'设置钩子对象
Set mclsSubClass = New SubClass32.SubClass
mclsSubClass.Messages(WM_PAINT) = True
mclsSubClass.Messages(WM_LBUTTONUP) = True
mclsSubClass.Messages(WM_LBUTTONDOWN) = True
mclsSubClass.Messages(WM_MOUSEMOVE) = True
Set mclsSubClassform = New SubClass32.SubClass
mclsSubClassform.hwnd = Me.hwnd
mclsSubClassform.Messages(WM_GETMINMAXINFO) = True
' If sstDepEmp.Tab = 0 Then
' sstDepEmp_Click 0
' Else
' sstDepEmp.Tab = 0
' 'sstDepEmp_Click sstDepEmp.Tab
' End If
Debug.Print "Load End: ", Timer
Unload MsgForm
Exit Sub
Dim edtErrReturn As ErrDealType
ErrHandle:
edtErrReturn = Errors.ErrorsDeal
If edtErrReturn = edtResume Then
Resume
Else
On Error Resume Next
Unload MsgForm
Unload Me
End If
End Sub
'右键菜单
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton And frmMain.ActiveForm Is Me Then
MakeListEditMenu
PopupMenu frmMain.mnuListEdit
End If
End Sub
Private Sub Form_Paint()
DrawInSertLine Me.hwnd, ListFormLeft, 500, Me.width - 2 * (ListFormLeft + ListFormRight), 500
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = vbKeyEscape Then
Unload Me
ElseIf KeyAscii = vbKeyReturn Then
BKKEY Me.ActiveControl.hwnd, vbKeyTab
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Select Case True
Case mIsShowCard(0)
MsgBox "请先关闭部门卡片!", vbExclamation, Me.Caption
Cancel = True
' frmDepartmentListCard.Show
' frmDepartmentListCard.ZOrder 0
Case mIsShowCard(1)
MsgBox "请先关闭职员卡片!", vbExclamation, Me.Caption
Cancel = True
' frmEmployeeListCard.Show
' frmEmployeeListCard.ZOrder 0
Case mIsShowCard(2)
MsgBox "请先关闭个人所得税率卡片!", vbExclamation
Cancel = True
' frmPersonTaxListCard.Show
' frmPersonTaxListCard.ZOrder 0
Case mIsShowCard(3)
MsgBox "请先关闭扣税标准卡片!", vbExclamation
Cancel = True
' frmTaxTypeListcard.Show
' frmTax.ZOrder 0
End Select
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim intCount As Integer
On Error Resume Next
' If chkNewRate.Value = 1 Then SaveNewRate
' If mIsShowCard(0) Then Unload frmDepartmentListCard
' If mIsShowCard(1) Then Unload frmEmployeeListCard
'' If mIsShowCard(2) Then Unload frmPersonTaxListCard
' If mIsShowCard(3) Then Unload frmTaxTypeListcard
For intCount = 0 To sstDepEmp.Tabs - 1
If blnIsLoad(intCount) Then
mclsList(intCount).SaveListSet
End If
blnIsLoad(intCount) = False
Set mclsList(intCount) = Nothing
Next
Set mclsSubClass = Nothing
Set mclsSubClassform = Nothing
' blnIsLoad(0) = False
gclsSys.MainControls.Remove Me
Set mclsMainControl = Nothing
End Sub
Private Sub Form_Resize()
On Error Resume Next
If Me.WindowState = 1 Then Exit Sub
If Me.Left + Me.width < 0 Or Me.Left > Screen.width Then
Me.Left = 300
End If
RedrawForm
End Sub
Private Sub Form_Activate()
SetHelpID 30008
mclsMainControl_ChildActive '响应消息
gclsSys.CurrFormName = Me.hwnd
' If mclsList(sstDepEmp.Tab).FlexGrid.Enabled Then mclsList(sstDepEmp.Tab).FlexGrid.SetFocus
mclsList(sstDepEmp.Tab).FlexGrid.Redraw = True
UpdateMenuStatus
If (Me.Left + Me.width < 0 Or Me.Left > Screen.width) Then Me.Left = 300
If Me.WindowState = 1 Then Me.WindowState = 0
End Sub
'
'显示全部记录/未停用记录 CheckBox 控件
'
Private Sub chkShowAll_Click()
If mblnCheckNoChange Then Exit Sub
With sstDepEmp
mclsList(.Tab).FlexGrid.Redraw = False
mclsList(.Tab).DoShowAll chkShowAll.Value
'cboFindKind_Click
UpdateMenuStatus
mclsList(.Tab).FlexGrid.Redraw = True
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -