Foxtable(狐表)用户栏目专家坐堂 → 流水账


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

主题:流水账

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


加好友 发短信
等级:三尾狐 帖子:655 积分:7689 威望:0 精华:0 注册:2013/12/11 17:49:00
流水账  发帖心情 Post By:2020/7/24 13:38:00 [只看该作者]

请问怎么设置 日期  科目 增 减 列改变后余额也跟着变  
窗口表
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.table

按 科目 日期 制单时间排序 


Select Case e.DataCol.Name
    Case "科目","增","减"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        
        dr = e.DataTable.Find("[日期] <= #" & mr("日期") & "# And [科目] = '" & mr("科目") & "'", "日期 desc, 制单时间 desc")
        If dr("_Identify") = mr("_Identify") Then
            mr("余额") = mr("增") - mr("减")
            dr = mr
        End If
        
        drs = e.DataTable.Select("[日期] >= #" & dr("日期") & "# And [科目] = '" & dr("科目") & "'", "[日期], 制单时间")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("余额") = drs(i-1)("余额") + drs(i)("增") - drs(i)("减")
        Next
        
        If e.DataCol.Name = "科目" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[日期] <= #" & mr("日期") & "# And [科目] = '" & e.OldValue & "'", "日期 desc , 制单时间 desc ")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[科目] = '" & e.OldValue & "'", "[日期] desc, 制单时间 desc")
                If dr IsNot Nothing Then
                    dr("余额") = dr("增") - dr("减")
                End If
            End If
            
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[日期] >= #" & dr("日期") & "# And [科目] = '" & dr("科目") & "'", "日期, 制单时间")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("余额") = drs(i-1)("余额") + drs(i)("增") - drs(i)("减")
                Next
            End If
        End If
End Select

 回到顶部