Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表查累计数计算当月数的问题


  共有1965人关注过本帖平板打印复制链接

主题:[求助]跨表查累计数计算当月数的问题

帅哥哟,离线,有人找我吗?
忆似水流年
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:156 积分:1445 威望:0 精华:0 注册:2020/5/21 16:23:00
[求助]跨表查累计数计算当月数的问题  发帖心情 Post By:2020/8/6 22:52:00 [只看该作者]

大哥好 小弟对现实中求当月专项附加扣除数做了一个简化模拟 抄文档改了上半段 下半段抄另外一块文档已经没方向了。。。 还请蓝大出手相助 先谢谢您啦图片点击可在新窗口打开查看

图片点击可在新窗口打开查看图片点击可在新窗口打开查看

寻找 表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

 回到顶部