📄 clslistemployee.cls
字号:
Set frmPersonTax = Nothing
Else
ShowMsg 0, "该个人所得税不存在,不能进行修改!", _
vbExclamation + MB_TASKMODAL, "个人所得税率"
mfrmEmployee.ToolRefresh
End If
End If
Case 3
If lngID > 0 Then
If CheckIDUsed("PersonTaxType", "lngPersonTaxTypeID", lngID) Then
frmTax.EditCard lngID, vbModal
Set frmTax = Nothing
Else
ShowMsg 0, "该扣税标准不存在,不能进行修改!", _
vbExclamation + MB_TASKMODAL, "扣税标准卡片"
mfrmEmployee.ToolRefresh
End If
End If
End Select
mfrmEmployee.MousePointer = vbDefault
mfrmEmployee.Enabled = True
End Sub
Private Sub mfrmEmployee_oListInActive()
Dim blnYes As Boolean
Dim strCode As String
Dim lngID As Long
Dim blnRemark As Boolean
lngID = mfrmEmployee.ListID
If lngID = 0 Then Exit Sub
With mfrmEmployee.sstPages
blnRemark = ListIsInActive(.Tab, lngID, strCode)
If IsLevelWCode(Choose(.Tab + 1, "部门编码", "职员编码")) And Trim(strCode) <> "" Then
If blnRemark And IsLowerCode(.Tab, strCode) Then
intResponse = ShowMsg(mfrmEmployee.hwnd, "是否取消所有下级的停用标记", vbYesNo, mfrmEmployee.mTitle)
blnYes = IIf(intResponse = 6, True, False)
End If
End If
If UpdateIsActive(.Tab, strCode, Not blnRemark, blnYes) Then
mfrmEmployee.ToolRefresh
If .Tab = 0 Then gclsSys.SendMessage CStr(mfrmEmployee.hwnd), Message.msgDepartment
If .Tab = 1 Then gclsSys.SendMessage CStr(mfrmEmployee.hwnd), Message.msgEmployee
End If
End With
End Sub
Private Sub mfrmEmployee_ListInActive(blnLevel As Boolean, blnSuceess As Boolean)
Dim blnYes As Boolean
Dim strCode As String
Dim lngID As Long
Dim blnRemark As Boolean
blnLevel = False
blnSuceess = False
lngID = mfrmEmployee.ListID
If lngID = 0 Then Exit Sub
With mfrmEmployee.sstPages
blnRemark = ListIsInActive(.Tab, lngID, strCode)
blnLevel = IsLevelWCode(Choose(.Tab + 1, "部门编码", "职员编码"))
If blnLevel And Trim(strCode) <> "" Then
If blnRemark And IsLowerCode(.Tab, strCode) Then
intResponse = ShowMsg(mfrmEmployee.hwnd, "是否取消所有下级的停用标记", vbYesNo, mfrmEmployee.mTitle)
blnYes = IIf(intResponse = 6, True, False)
End If
End If
If UpdateIsActive(.Tab, strCode, Not blnRemark, blnYes) Then
blnSuceess = True
If blnLevel Then mfrmEmployee.ToolRefresh
If .Tab = 0 Then gclsSys.SendMessage CStr(mfrmEmployee.hwnd), Message.msgDepartment
If .Tab = 1 Then gclsSys.SendMessage CStr(mfrmEmployee.hwnd), Message.msgEmployee
End If
End With
End Sub
Private Sub mfrmEmployee_ListNew()
mfrmEmployee.MousePointer = vbHourglass
Select Case mfrmEmployee.sstPages.Tab
Case 0
frmDepartmentCard.AddCard , vbModal
Set frmDepartmentCard = Nothing
Case 1
frmEmployeeCard.AddCard , vbModal
Set frmEmployeeCard = Nothing
Case 2
frmPersonTax.AddCard vbModal
Set frmPersonTax = Nothing
Case 3
frmTax.AddCard
Set frmTax = Nothing
End Select
mfrmEmployee.MousePointer = vbDefault
End Sub
Private Sub mfrmEmployee_ListShowAll()
With mfrmEmployee
If .chkShowall = 0 Then
Select Case .sstPages.Tab
Case 0
.ShowAll(.sstPages.Tab) = " Department.blnIsInActive=0"
Case 1
.ShowAll(.sstPages.Tab) = " Employee.blnIsInActive=0"
End Select
Else
.ShowAll(.sstPages.Tab) = ""
' Select Case .sstPages.Tab
' Case 0
' .ShowAll(.sstPages.Tab) = ""
' Case 1
' .ShowAll(.sstPages.Tab) = ""
' End Select
End If
.ToolRefresh
End With
End Sub
Private Sub mfrmEmployee_ListUsed()
Dim lngID As Long
lngID = mfrmEmployee.ListID
Select Case mfrmEmployee.sstPages.Tab
Case 0
UseCode Message.msgDepartment, lngID
Case 1
UseCode Message.msgEmployee, lngID
Case 2
UseCode Message.msgPersonTax, lngID
Case 3
UseCode Message.msgTaxType, lngID
End Select
mfrmEmployee.ZOrder 1
End Sub
Private Function UpdateIsActive(ByVal intTab As Integer, ByVal strCode As String, ByVal blnIsInActive As Boolean, ByVal blnYes As Boolean) As Boolean
Dim strSql As String
Dim strSuSql As String
Select Case intTab
Case 0
If blnIsInActive Then
strSql = "UPDATE Department SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strDepartmentCode = '" & strCode & "' Or strDepartmentCode like '" & strCode & "-%'"
Else
If blnYes Then
strSuSql = "UPDATE Department SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strDepartmentCode='" & strCode & "' Or strDepartmentCode like '" & strCode & "-%'"
End If
strSql = "UPDATE Department SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strDepartmentCode in ('" & strCode
Do Until CodePrefix(strCode) = ""
strCode = CodePrefix(strCode)
strSql = strSql & "','" & strCode
Loop
strSql = strSql & "')"
End If
Case 1
strSql = "UPDATE Employee SET blnIsInActive = " & IIf(blnIsInActive, 1, 0) & " WHERE strEmployeeCode = '" & strCode & "'"
End Select
If blnYes Then
If Not gclsBase.ExecSQL(strSuSql) Then
UpdateIsActive = False
Exit Function
End If
End If
UpdateIsActive = gclsBase.ExecSQL(strSql)
End Function
Private Function ListIsInActive(ByVal intTab As Integer, ByVal lngID As Long, strCode As String) As Boolean
Dim recTmp As rdoResultset
Dim strSql As String
Select Case intTab
Case 0
strSql = "Select blnIsInActive,strDepartmentCode as Code from Department Where lngDepartmentID=" & lngID
Case 1
strSql = "Select blnIsInActive,strEmployeeCode as Code from Employee Where lngEmployeeID=" & lngID
End Select
Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If Not recTmp.EOF Then
ListIsInActive = IIf(recTmp!blnIsInActive = 1, True, False)
strCode = recTmp!Code
End If
End Function
Private Function IsLowerCode(ByVal intTab As Integer, ByVal strCode As String) As Boolean
Dim strSql As String
Dim tmp As rdoResultset
Select Case intTab
Case 0
strSql = "select blnIsInActive from Department where blnIsInActive=1 and strDepartmentcode like '" & strCode & "-%'"
End Select
Set tmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
If tmp.RowCount <> 0 Then
IsLowerCode = True
Else
IsLowerCode = False
End If
End Function
Public Function ShowEachList(ByVal lngID As Long, Optional intTab As Integer = 0) As Boolean
strWhere = Choose(intTab + 1, "Department.lngDepartmentID=", "Employee.lngEmployeeID=", "PersonTax.lngPersonTaxID=", "PersonTaxType.lngPersonTaxTypeID=") & lngID
ShowEachList = mfrmEmployee.Showlist(lngID, intTab, strWhere)
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -