Foxtable(狐表)用户栏目专家坐堂 → 流水账加入按年的为计算的代码


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

主题:流水账加入按年的为计算的代码

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


加好友 发短信
等级:婴狐 帖子:13 积分:230 威望:0 精华:0 注册:2021/1/20 18:28:00
流水账加入按年的为计算的代码  发帖心情 Post By:2023/1/13 10:21:00 [只看该作者]

Select Case e.DataCol.Name
    Case "产品","入库","出库"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [产品] = '" & e.DataRow("产品") & "'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品] = '" & dr("产品") & "'"
            Dim Val1 As Double = e.DataTable.Compute("Sum(入库)",Filter)
            Dim Val2 As Double = e.DataTable.Compute("Sum(出库)",Filter)
            dr("库存") = Val1 - Val2
        Next
        If e.DataCol.Name = "产品" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[_SortKey] > " & e.DataRow("_SortKey") & " And [产品] = '" & e.OldValue & "'"
            drs = e.DataTable.Select(Filter)
            For Each dr As DataRow In drs
                Filter = "[_SortKey] <= " & dr("_SortKey") & " And [产品] = '" & dr("产品") & "'"
                Dim Val1 As Double = e.DataTable.Compute("Sum(入库)",Filter)
                Dim Val2 As Double = e.DataTable.Compute("Sum(出库)",Filter)
                dr("库存") = Val1 - Val2
            Next
        End If
End Select

老师,我要加一个按年度来做库存计算节点,比如2022年的库存截止2022年结束,2023年对应的库存重新开始流水记算,代码需要怎么加?

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/13 10:34:00 [只看该作者]

增加一个年份列,然后增加一个年份条件即可,比如
Filter = "[_SortKey] >= " & e.DataRow("_SortKey") & " And [产品] = '" & e.DataRow("产品") & "' and 年份=" & e.DataRow("年份")

建议增加一个同结构的表。每年1月1日对上一年做个年结,然后把今年以前的数据全部移到这个表里。原表永远只保留今年的数据

 回到顶部