Foxtable(狐表)用户栏目专家坐堂 → 流水账数字不准----开发版


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

主题:流水账数字不准----开发版

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


加好友 发短信
等级:童狐 帖子:274 积分:2451 威望:0 精华:1 注册:2010/9/14 13:18:00
流水账数字不准----开发版  发帖心情 Post By:2014/8/18 12:38:00 [显示全部帖子]

仅对表中已有数据进行流水账,为什么库存数字不准呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水账.zip

[此贴子已经被作者于2014-8-18 12:38:06编辑过]

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


加好友 发短信
等级:童狐 帖子:274 积分:2451 威望:0 精华:1 注册:2010/9/14 13:18:00
  发帖心情 Post By:2014/8/18 13:38:00 [显示全部帖子]

别沉下去了,着急啊!

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


加好友 发短信
等级:童狐 帖子:274 积分:2451 威望:0 精华:1 注册:2010/9/14 13:18:00
  发帖心情 Post By:2014/8/18 14:27:00 [显示全部帖子]

表中的数据被锁定,不变化的情况下.产生流水


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


加好友 发短信
等级:童狐 帖子:274 积分:2451 威望:0 精华:1 注册:2010/9/14 13:18:00
  发帖心情 Post By:2014/8/18 15:33: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("[_SortKey] < " & mr("_SortKey") & "  And [名称] = '" & mr("名称") & "' And [型号] = '" & mr("型号") & "' and 状态 = '" & mr("状态") & "'")
        If dr Is Nothing Then
            mr("库存数量") = mr("入库") - mr("出库")+ mr("退货")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [名称] = '" & mr("名称") & "' And [型号] = '" & mr("型号") & "'  and 状态 = '" & mr("状态") & "'")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("库存数量") = drs(i-1)("库存数量") + drs(i)("入库") - drs(i)("出库")+ drs(i)("退货")
        Next
        If e.DataCol.Name = "名称" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [名称] = '" & mr("名称") & "' And [型号] = '" & mr("型号") & "'  and 状态 = '" & mr("状态") & "'")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[名称] = '" & mr("名称") & "'And [型号] = '" & e.DataRow("型号") & "'and 状态 = '" & e.DataRow("状态") & "'" )
                If dr IsNot Nothing Then
                    dr("库存数量") = dr("入库") - dr("出库") +dr("退货")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [名称] = '" & mr("名称") & "' And [型号] = '" & mr("型号") & "'  and 状态 = '" & mr("状态") & "'")
                For i As Integer = 1 To drs.Count - 1
                   drs(i)("库存数量") = drs(i-1)("库存数量") + drs(i)("入库") - drs(i)("出库")+ drs(i)("退货")
                Next
            End If
        End If
End Select

 

各种型号,各种状态的最后一条记录不准确.


改用以下方法后,仅表中最后一条记录的库存不准,有什么办法吗?

Select Case e.DataCol.Name
    Case "名称","型号","状态","入库","出库","退货"
        Dim s As Double
        Dim dr,r As DataRow
        Dim drs As List(of DataRow)
        For Each r In e.DataTable.dataRows
            s = 0
            drs = e.DataTable.Select("[名称] = '" & r("名称") & "' And [型号] = '" & r("型号") & "' And [状态] = '" & r("状态") & "'")
            For Each dr In drs
                s+ = dr("入库")-dr("出库")+dr("退货")
                dr("库存数量") = s
            Next
        Next
End Select




以上代码都在 DataColChanged




 

[此贴子已经被作者于2014-8-18 15:36:54编辑过]

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


加好友 发短信
等级:童狐 帖子:274 积分:2451 威望:0 精华:1 注册:2010/9/14 13:18:00
  发帖心情 Post By:2014/8/18 17:50:00 [显示全部帖子]

最后一条记录还是数字不准确.


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


加好友 发短信
等级:童狐 帖子:274 积分:2451 威望:0 精华:1 注册:2010/9/14 13:18:00
  发帖心情 Post By:2014/8/18 20:13:00 [显示全部帖子]

最后一条记录没有参与计算,只有修改数字后才能执行计算,记录是通过外部表sql查询后填充过来的。

 回到顶部