以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助][推荐]工资中的四金计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147791) |
-- 作者:雪狐3681 -- 发布时间:2020/3/24 11:58:00 -- [求助][推荐]工资中的四金计算 以下内容为程序代码:
1 1 Dim dr As DataRow 2 2 Dim cur As Integer 3 3 Select Case e.DataTable.Name 4 4 Case ”工资表” 5 5 |=:==计算缴金 6 6 If e.DataCol.Name 11 工号” 7 7 1在工资表中找出该工号 8 8 dr = DataTables(”基本情况表“).Find(”工号& e.DataRow(” 工号”)& m) 9 9 If dr IsNot Nothing Then如果找到,则设置各列内容 e.DataRow(”姓名”戶 dr(”姓名”) e.DataRowC\'S放年月")=VYM 10 10 VZSR_QN=dr(”上年缴金总收入“) VZSR_PQN=dr(”前年缴金总收入") Dim zsr As Single 11 11 If VAL(vmonth)>=7 Then 12 12 zsr=VZSR_QN 13 13 Else 14 14 zsr=VZSR_PQN 15 15 End If 16 16 e.DataRow("发公积金”戶 round2((zsr*VR_FGJJ/100)/12,0) WR_FGJJ—收入栏中的公积金提取比率二7 e.DataRow("扣公积金")=round2((zsr*VR_KGJJ/100)/12,0) \'VR_KGJJ 除栏中的公积金提取比率14 17 17 If e-DataRowC\' 发公积金")>VGJJ_SX/2 Then \' VGJLSX—公积金上限 18 18 e.DataRow("发公积金"> round2(VGJJ_SX/2,0) 1 VGJJ_XX--公积金下限 19 19 End If 20 20 If e.DataRow("发公积金")<VGJJ_XX/2 Then ,低于公积 金下限 21 21 e.DataRow(”发公积金”戶 round2(VGJJ_XX/2,0) 22 22 End If 23 23 If e.DataRow(”扣公积金”)vVGJLXX Then ,低于公积金 24 24 下限 25 25 e.DataRowC\'扣公积金”)= VGJJ.XX 26 26 End If 27 27 If VAL(vmonth)>=4 Then ,4月调整养老,失保,医保 28 28 zsr=VZSR_QN 29 29 Else 30 30 zsr=VZSR_PQN 31 31 End If 32 32 e.DataRow("养老保险")=round2((zsr*VR_YLX/100)/12,l) e.DataRow("失业保险")=round2((zsr*VR_SBX/100)/12,l)? 33 33 e.DataRow(”医疗保险”)=round2((zsr*VR_YBX/100)/12,l) Else 34 34 msgbox("无此记录!请先在基本情况表中输入记录”) e-DataRow.Delete 35 35 End If 36 36 End If 37 37 Case ”部门名表” 38 38 End select 39 39 1.2.3逢4月时,工资表中自动调整三险的代码 40 40 我们只需在项目事件的MainTableChanged输入如下代码: 41 41 』二=调整三险 42 42 Dim j As Integer 43 43 Dim jls As Integer 44 44 Dim gh_gz As String 45 45 Dim Result As DialogResult 46 46 IfVM And MainTable.Name="X资表” Then 47 47 Result=MessageBox.Show("调整吗?”,”4月应调整三险:养老,失 保,医保",MessageBoxButtons.YesNo) 48 48 If Result = DialogResult.Yes Then 49 49 j=0 50 50 jls二Tables("工资表").Rows.Count 51 51 CurrentTable.Position=0 ,定位至首记录 52 52 Do While j<=jls 53 53 If Tables("T资表”).Current(“发放年月,,)=VYM Then \' 54 54 只改当月数据 55 55 dr = DataTables(H基本情况表”).Find(”工号=H, & CurrentTable.Current("_T号")& 56 56 If dr IsNot Nothing Then,如果找到,则设置各列内容 VZSR_QN=dif上年缴金总收入“) VZSR_PQN=dr(”前年缴金总收入”) Dim zsr As Single 57 57 If VAL(vmonth)>=4 Then 耳月调整养老,失保, 58 58 59 59 60 60 ZBVZSR_QN 61 61 Else 62 62 zsr=VZSR.PQN 63 63 End If 64 64 CurrentTable.Current(” 养老保险")= 65 65 round2((zsr*VR_YLX/100)/12,l) 66 66 \'VR_YLX—养老保险 67 67 CurrentTable.Current("失业保险")= round2((zsr*VR_SBX/100)/12,l) 68 68 \'VR_SBX—失业保险 69 69 CurrentTable.Current("医疗保险")= round2((zsr*VR_YBX/100)/12,l) 70 70 \'VR_YBX—医疗保险 71 71 End If 72 72 End If j=j+l 73 73 CurrentT able.Position=j 74 74 Loop 75 75 End If 76 76 End If 77 77 |
-- 作者:狐狸爸爸 -- 发布时间:2020/3/24 12:05:00 -- 能这样提问吗? 你把我们想得太厉害了。 |