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


  共有3146人关注过本帖树形打印复制链接

主题:流水账

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


加好友 发短信
等级:三尾狐 帖子:658 积分:7932 威望: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 13:58:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.zip


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


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

谢谢老师  我对比了一下 这段代码 跟我之前的 貌似一样的  修改日期后 还是不对哦

 


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/7/24 15:42:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 15:44:00 [只看该作者]

Case "科目","增","减","日期"

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


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

谢谢老师 这列是加上了 但是  日期改变后 还是错的

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 16:53:00 [只看该作者]


[此贴子已经被作者于2020/7/24 16:53:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 17:01:00 [只看该作者]

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 Is Nothing  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
    Case "日期"
        If e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Dim dr As DataRow
            Dim mr As DataRow = e.DataRow
            Dim drs As List(of DataRow)
            Dim d As Date = e.OldValue
            If e.OldValue > e.NewValue Then d = e.NewValue
            dr = e.DataTable.Find("[日期] < #" & d & "# And [科目] = '" & mr("科目") & "'", "日期 desc , 制单时间 desc ")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[科目] = '" & mr("科目") & "'", "[日期], 制单时间")
                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
[此贴子已经被作者于2020/7/24 17:02:12编辑过]

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


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

谢谢老师  安装您的方法  但是在替换科目的时候还是会错的哦  这两个银行应该都要重新计算的吧

图片点击可在新窗口打开查看此主题相关图片如下:ty.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/7/24 17:39:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 17:43:00 [只看该作者]

知道就自己改改咯,和原来的用法差不多的

 回到顶部