📄 frmgzxz.frm
字号:
VERSION 5.00
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Begin VB.Form frmGzxz
BorderStyle = 3 'Fixed Dialog
Caption = "选择工资月份"
ClientHeight = 2115
ClientLeft = 45
ClientTop = 330
ClientWidth = 3795
ControlBox = 0 'False
LinkTopic = "Form1"
LockControls = -1 'True
MaxButton = 0 'False
MDIChild = -1 'True
MinButton = 0 'False
ScaleHeight = 2115
ScaleWidth = 3795
ShowInTaskbar = 0 'False
Begin VB.Frame Frame2
Appearance = 0 'Flat
ForeColor = &H80000008&
Height = 1020
Left = 45
TabIndex = 3
Top = 30
Width = 3675
Begin MSComCtl2.DTPicker DTPicker1
Height = 345
Left = 1575
TabIndex = 0
Top = 390
Width = 1380
_ExtentX = 2434
_ExtentY = 609
_Version = 393216
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Format = 61210624
CurrentDate = 38535
End
Begin VB.Label Label1
BackStyle = 0 'Transparent
Caption = "选择月份:"
Height = 300
Left = 645
TabIndex = 4
Top = 465
Width = 1275
End
End
Begin VB.Frame Frame3
Appearance = 0 'Flat
ForeColor = &H80000008&
Height = 1035
Left = 45
TabIndex = 5
Top = 960
Width = 3675
Begin VB.CommandButton Command1
BackColor = &H00C0E0FF&
Caption = "确 定(&Q)"
Height = 420
Left = 450
MaskColor = &H00C0E0FF&
TabIndex = 1
Top = 330
Width = 1260
End
Begin VB.CommandButton Command2
Caption = "退 出(&E)"
Height = 420
Left = 1965
TabIndex = 2
Top = 330
Width = 1260
End
End
End
Attribute VB_Name = "frmGzxz"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim rs3 As New ADODB.Recordset
Dim KHYJZS As Single
Dim YGYJ As Single '佣金
Dim WCQK As Single '当月完成情况
Dim WCQK1 As Single '当月完成情况
Dim WCQK2 As Single '当月完成情况
Dim YGJBGZ As Single '员工的考核基本工资
Dim YGKHBZ As Single '员工的月考核标准
Dim JBGZ1 As Single '第一个月基本工资
Dim JBGZ2 As Single '第二个月基本工资
Dim JBGZ As Single '所得基本工资
Dim BF As Single '补发
Dim SFWC As String '本月是否完成
Dim SFWC1 As Single '第一个月是否完成
Dim SFWC2 As Single '第二个月是否完成
Dim yf As String
Dim i As Long
If rs.State = 1 Then rs.Close
rs.Open "select 工号 from T_工资表 where 月份='" & Format(DTPicker1, "yyyy-mm") & "'", gCnn, adOpenStatic, adLockReadOnly
If rs.RecordCount = 0 Then
If rs1.State = 1 Then rs1.Close
rs1.Open "select 工号,姓名,部门,业务职级 from VIEWYGXX where 员工状态='0' order by 工号", gCnn, adOpenStatic, adLockReadOnly
If rs1.RecordCount > 0 Then
rs1.MoveFirst
For i = 0 To rs1.RecordCount - 1
'此处开始计算基本工资和佣金
'一计算佣金
If rs2.State = 1 Then rs2.Close
rs2.Open "select sum(保险费*业务员佣金*0.01) as yj from viewbxyw where 业务员工号='" & Trim(rs1("工号")) & "' and year(投保日期)='" & Year(DTPicker1) & "' and month(投保日期)='" & Month(DTPicker1) & "'", gCnn, adOpenStatic, adLockReadOnly
YGYJ = IIf(IsNull(rs2(0)), 0, rs2(0))
'二计算基本工资,一年4个季度,每个季度3个月,分别为:1,4,7,10月开始
'先算出佣金折算比例
If rs2.State = 1 Then rs2.Close
rs2.Open "select sum(保险费*业务员佣金*考核佣金折算比例*0.01*0.01) as khyjzs from viewbxyw where 业务员工号='" & Trim(rs1("工号")) & "' and year(投保日期)='" & Year(DTPicker1) & "' and month(投保日期)='" & Month(DTPicker1) & "'", gCnn, adOpenStatic, adLockReadOnly
KHYJZS = IIf(IsNull(rs2(0)), 0, rs2(0))
'分3个月来对比,第一个月的时候
'第一个月的时候,如果完成指标,基本工资为100%,没完成为50%
If Month(DTPicker1) = 1 Or Month(DTPicker1) = 4 Or Month(DTPicker1) = 7 Or Month(DTPicker1) = 10 Then
If rs2.State = 1 Then rs2.Close
rs2.Open "select * from khsz where ywzj='" & Trim(rs1("业务职级")) & "'", gCnn, adOpenStatic, adLockReadOnly
If Not rs2.EOF Then
YGJBGZ = rs2("jbgz")
YGKHBZ = rs2("ykhbz")
End If
If Val(KHYJZS) > Val(YGKHBZ) Or Val(KHYJZS) = Val(YGKHBZ) Then
JBGZ = YGJBGZ
SFWC = 1
Else
JBGZ = Val(YGJBGZ) * 0.5
End If
'第二个月,如果完成,基本工资为100%,还有看是否超额,如果2个月的加起来,超过标准的2倍,那么补发上一个月扣除的,也就是50%,如果未完成,在前一个月的基础上*50%,也就是25%,
ElseIf Month(DTPicker1) = 2 Or Month(DTPicker1) = 5 Or Month(DTPicker1) = 8 Or Month(DTPicker1) = 11 Then
'算第一个月的情况
yf = Format(Year(DTPicker1) & "-" & (Month(DTPicker1) - 1), "yyyy-mm")
If rs2.State = 1 Then rs2.Close
rs2.Open "select 是否完成,完成情况,基本工资 from T_工资表 where 月份='" & yf & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
If Not rs2.EOF Then
SFWC1 = IIf(IsNull(rs2(0)) Or rs2(0) = "", 0, rs2(0))
WCQK1 = IIf(IsNull(rs2(1)) Or rs2(1) = "", 0, rs2(1))
JBGZ1 = IIf(IsNull(rs2(2)) Or rs2(2) = "", 0, rs2(2))
End If
If rs2.State = 1 Then rs2.Close
rs2.Open "select * from khsz where ywzj='" & Trim(rs1("业务职级")) & "'", gCnn, adOpenStatic, adLockReadOnly
If Not rs2.EOF Then
YGJBGZ = rs2("jbgz")
YGKHBZ = rs2("ykhbz")
End If
'如果本月完成了,如果本月完成,上个月也完成,补发为0,如果本月完成,上个月未完成,和上个月的完成情况相加,看是否总数大于2倍基本考核,如果大于或等于,补发上个月扣的也就是50%的基本工资
If Val(KHYJZS) > Val(YGKHBZ) Or Val(KHYJZS) = Val(YGKHBZ) Then
JBGZ = YGJBGZ
SFWC = 1
If SFWC1 = 0 Then
If (KHYJZS + WCQK1) > 2 * YGKHBZ Or (KHYJZS + WCQK1) = 2 * YGKHBZ Then
BF = YGKHBZ * 0.5
Else
BF = 0
End If
End If
Else
If (KHYJZS + WCQK1) > 2 * YGKHBZ Then
JBGZ = YGKHBZ
BF = 0
SFWC = 1
Else
JBGZ = Val(JBGZ1) * 0.5
BF = 0
SFWC = 0
End If
End If
ElseIf Month(DTPicker1) = 3 Or Month(DTPicker1) = 6 Or Month(DTPicker1) = 9 Or Month(DTPicker1) = 12 Then
If rs2.State = 1 Then rs2.Close
'算第一个月的情况
yf = Format(Year(DTPicker1) & "-" & (Month(DTPicker1) - 2), "yyyy-mm")
If rs2.State = 1 Then rs2.Close
rs2.Open "select 是否完成,完成情况,基本工资 from T_工资表 where 月份='" & yf & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
If Not rs2.EOF Then
SFWC1 = IIf(IsNull(rs2(0)) Or rs2(0) = "", 0, rs2(0))
WCQK1 = IIf(IsNull(rs2(1)) Or rs2(1) = "", 0, rs2(1))
JBGZ1 = IIf(IsNull(rs2(2)) Or rs2(2) = "", 0, rs2(2))
End If
'算第二个月的情况
If rs2.State = 1 Then rs2.Close
yf = Format(Year(DTPicker1) & "-" & (Month(DTPicker1) - 1), "yyyy-mm")
rs2.Open "select 是否完成,完成情况,基本工资 from T_工资表 where 月份='" & yf & "' and 工号='" & rs1("工号") & "'", gCnn, adOpenStatic, adLockReadOnly
If Not rs2.EOF Then
SFWC2 = IIf(IsNull(rs2(0)) Or rs2(0) = "", 0, rs2(0))
WCQK2 = IIf(IsNull(rs2(1)) Or rs2(1) = "", 0, rs2(1))
JBGZ2 = IIf(IsNull(rs2(2)) Or rs2(2) = "", 0, rs2(2))
End If
'算出标准工资和标准考核
If rs2.State = 1 Then rs2.Close
rs2.Open "select * from khsz where ywzj='" & Trim(rs1("业务职级")) & "'", gCnn, adOpenStatic, adLockReadOnly
If Not rs2.EOF Then
YGJBGZ = rs2("jbgz")
YGKHBZ = rs2("ykhbz")
End If
'第3个月如果完成了,基本工资为100%,然后3个月的完成情况相加,如果是基本考核标准的3倍或大于,则看头2个月的完成情况,如果未完成,第一个月补发50%,第二个月未完成,补发75%,第3个月如未完成,则看3个月的完成情况相加,达到标准的3倍或大于则发100%
If KHYJZS > YGKHBZ Or KHYJZS = YGKHBZ Then
JBGZ = YGJBGZ
SFWC = 1
If (KHYJZS + WCQK1 + WCQK2) > 3 * YGKHBZ Or (KHYJZS + WCQK1 + WCQK2) = 3 * YGKHBZ Then
If SFWC1 = 0 And SFWC2 = 0 Then
BF = YGJBGZ * 0.5 + YGJBGZ * 0.75
ElseIf SFWC1 = 0 And SFWC2 = 1 Then
BF = YGJBGZ * 0.5
ElseIf SFWC1 = 1 And SFWC2 = 0 Then
BF = YGJBGZ * 0.5
Else
BF = 0
End If
Else
BF = 0
End If
Else
If (KHYJZS + WCQK1 + WCQK2) > 3 * YGKHBZ Or (KHYJZS + WCQK1 + WCQK2) = 3 * YGKHBZ Then
JBGZ = YGJBGZ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -