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


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

主题:流水账

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 13:58:00 [显示全部帖子]

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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 15:44:00 [显示全部帖子]

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

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 16:53:00 [显示全部帖子]


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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 17:43:00 [显示全部帖子]

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

 回到顶部