现在错误提示我:有一个参数没有被指定值.年份和月份都是整数型,在月份处和本期收入处输入数据就会有这个错误提示
If e.DataCol.Name = "姓名" Then '测试没有问题
If e.DataRow.IsNull("姓名") Then
e.DataRow("证照号码") = Nothing
e.DataRow("证照类型") = Nothing
e.DataRow("类型") = Nothing
Else
Dim dr As DataRow = DataTables("人员信息").SQLfind("姓名 = '" & e.DataRow("姓名") & "' ")
If dr IsNot Nothing Then
e.DataRow("证照号码") = dr("证照号码")
e.DataRow("证照类型") = dr("证照类型")
e.DataRow("类型") = dr("类型")
End If
End If
End If
If e.DataCol.Name = "证照号码" Then '测试没有问题
If e.DataRow.IsNull("证照号码") Then
e.DataRow("姓名") = Nothing
e.DataRow("证照类型") = Nothing
e.DataRow("类型") = Nothing
Else
Dim dr As DataRow = DataTables("人员信息").SQLfind("证照号码 = '" & e.DataRow("证照号码") & "' ")
If dr IsNot Nothing Then
e.DataRow("姓名") = dr("姓名")
e.DataRow("证照类型") = dr("证照类型")
e.DataRow("类型") = dr("类型")
End If
End If
End If
If e.DataCol.Name = "证照号码" OrElse e.DataCol.name = "月份" Then '测试没有问题
If DataTables.Contains("个人缴费信息") = False Then
DataTables("个人缴费信息").load()
End If
If e.DataRow.IsNull("证照号码") OrElse e.DataRow.IsNull("月份") Then
e.DataRow("基本养老保险费") = Nothing
e.DataRow("基本医疗保险费") = Nothing
e.DataRow("失业保险费") = Nothing
Else
Dim dr As DataRow = DataTables("个人缴费信息").SQLFind(" 年份 = " & e.DataRow("年份") & "and 月份 = " & e.DataRow("月份") & " And 证照号码 = '" & e.DataRow("证照号码") & "'")
If dr IsNot Nothing Then
e.DataRow("基本养老保险费") = dr("个人月缴纳养老保险费")
e.DataRow("基本医疗保险费") = dr("个人月缴纳医疗保险费")
e.DataRow("失业保险费") = dr("个人月缴纳失业保险费")
End If
End If
End If
'如果发生变化的是所得税列之外的数值型列,才重新计算所得税.
If e.DataCol.Name <> "所得税" AndAlso e.DataCol.IsNumeric Then
If e.DataRow("所得项目") = "正常工资薪金所得" Then
Dim filter As String = "证照号码 = '" & e.DataRow("证照号码") & "'and 月份 <= " & e.DataRow("月份")
Dim v1 As Double = e.DataTable.SQLCompute("sum(本期收入)",filter) '本期收入
Dim v2 As Double = e.DataTable.SQLCompute("sum(社保扣款小计)",filter) '累计社保扣款
Dim v3 As Double = e.DataTable.SQlCompute("sum(住房公积金)",filter) '累计住房公积金
Dim v4 As Double = e.DataTable.SQLCompute("sum(附加扣除小计)",filter) '累计附加扣除
Dim y As Integer = e.DataTable.SQLCompute("count(证照号码)","证照号码 = '" & e.DataRow("证照号码") & "'") '累计附加扣除
Dim v5 As Double = y * 5000 '累计减除费用
Dim v6 As Double = v2+v3+V4 '累计专项扣除
Dim v8 As Double = v1 - v6 - V5 '累计应纳税所得额
If v8 > 0 Then
Dim v9 = iif((v8)>960000,(v8)*0.45-181920,IIF((v8)>660000,(v8)*0.35-85920,IIF((v8)>420000,(v8)*0.30-52920,IIF((v8)>300000,(v8)*0.25-31920,IIF((v8)>144000,(v8)*0.2-16920,IIF((v8)>36000,(v8)*0.1-2520,(v8)*0.03))))))
Dim v10 As Double = e.DataTable.SQLCompute("sum(所得税)","证照号码 = '" & e.DataRow("证照号码") & "'and 月份 < " & e.DataRow("月份")) '累计已交税金
If v9 > v10 Then
e.DataRow("所得税") = v9 - v10
End If
End If
ElseIf e.DataRow("所得项目") = "全年一次性奖金收入" Then
Dim v As Double = e.DataRow("本期收入")
e.DataRow("所得税") = iif((v)>960000,(v)*0.45-181920,IIF((v)>660000,(v)*0.35-85920,IIF((v)>420000,(v)*0.30-52920,IIF((v)>300000,(v)*0.25-31920,IIF((v)>144000,(v)*0.2-16920,IIF((v)>36000,(v)*0.1-2520,(v)*0.03))))))
If e.DataCol.Name = "本期收入" Then
If e.DataRow.IsNull("本期收入") Then
e.DataRow("所得税") = Nothing
End If
End If
End If
End If
[此贴子已经被作者于2019/11/6 11:18:27编辑过]