大哥好 小弟对现实中求当月专项附加扣除数做了一个简化模拟 抄文档改了上半段 下半段抄另外一块文档已经没方向了。。。 还请蓝大出手相助 先谢谢您啦
寻找 表C(“累计金额”),条件:表C(“单位”、“日期”、“姓名”)= 表B当前行(“单位”、“日期”、“姓名”)
当表B(“单位”+“姓名”)第一次出现时,时表B(当月金额)= 表C(累计金额)(注找不到时表C(累计金额)算作0)。
当表B(“单位”+“姓名”)不是第一次出现时,表B(当月金额)= 表C(累计金额)- 表b(当月金额合计数,条件:单位等于当前行单位、且姓名等于当前行姓名)(注找不到时表C(累计金额)算作0)
Select Case e.DataCol.Name
Case "单位","日期","姓名","当月金额"
Dim mr As DataRow = e.DataRow
Dim dr1 As DataRow
dr1 = DataTables("表C").Find("[单位] = '" & mr("单位") & "' And [日期] = #" & mr("日期") & "# And [姓名] = '" & mr("姓名") & "'")
Dim dr2 As DataRow
dr2 = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [单位] = '" & mr("单位") & "' And [姓名] = '" & mr("姓名") & "'", "[_SortKey] Desc")
If dr2 Is Nothing Then
If dr1 Is Nothing Then
mr("当月金额") = Nothing
Else
mr("当月金额") = dr1("累计金额")
End If
dr2 = mr
End If
Dim drs As List(of DataRow)
Dim Filter As String
drs = e.DataTable.Select("[_SortKey] >= " & dr2("_SortKey") & " And [单位] = '" & dr2("单位") & "' And [姓名] = '" & dr2("姓名") & "'", "[_SortKey]")
For Each dr3 As DataRow In drs
Dim Val1 As Double = e.DataTable.Compute("Sum(当月金额)"," [单位] = '" & dr3("单位") & "' And [姓名] = '" & dr3("姓名") & "'")
mr("当月金额") = dr1("累计金额") - Val1
Next
End Select