以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]销售  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=122869)

--  作者:江南小镇
--  发布时间:2018/8/3 11:59:00
--  [求助]销售

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



Select Case e.DataCol.name
    Case "商品编号", "数量"
        If e.DataRow("数量") IsNot Nothing Then
            Dim r As DataRow = e.DataRow
            Dim sum As Double = DataTables("进").compute("sum(库存)", "商品编号 = \'" & e.DataRow("商品编号") & "\' And 库存状态 = \'可出库\'")
            If sum < r("数量") Then
                msgbox("库存不够")
            Else
                Dim count As Integer = 0
                Dim cb As Double = 0
                Dim drs As List(Of DataRow) = DataTables("进").Select("商品编号 = \'" & e.DataRow("商品编号") & "\' And 库存状态 = \'可出库\'", "日期, _Identify")
                Dim s As String = ""
Dim K As String = ""

                For i As Integer = 0 To drs.count - 1
                    Dim dr As DataRow = drs(i)
                    count += dr("库存")
                    Dim sy As Integer = count - r("数量")
                    s &= dr("进货单号") & ","
                    K &= dr("库存") & ","
                    
                    If sy >= 0 Then
                        dr("出库") = dr("数量") - sy
                        cb += dr("单价") * dr("出库")
                        dr("库存") = sy
                        r("进货单号") = s.trim(",")
                        r("库存") = K.trim(",")
                        r("成本") = cb
                        Exit For
                    Else
                        dr("出库") = dr("数量")
                        dr("库存") = 0
                        cb += dr("单价") * dr("出库")
                    End If
                Next
            End If
        End If
End Select

--  作者:有点甜
--  发布时间:2018/8/3 12:27:00
--  
上传实例测试,说明具体什么问题。
--  作者:江南小镇
--  发布时间:2018/8/3 12:37:00
--  

老师好,销售表重置商品编号为连续出库,成本列数据不显示。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存.table


--  作者:有点甜
--  发布时间:2018/8/3 15:41:00
--  

代码没问题。

 

1、你进货的两个日期是 2018-07-03 2017-07-09,请注意年份不同;

 

2、你第二行的进货,没有单价,导致计算值为0。


--  作者:江南小镇
--  发布时间:2018/8/4 13:08:00
--  
老师,我说的是重置商品编号列后库存数量不正确

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

--  作者:有点蓝
--  发布时间:2018/8/4 14:05:00
--  
怎么样才是正确的?库存计算逻辑是什么?
--  作者:江南小镇
--  发布时间:2018/8/4 17:19:00
--  
以下是引用江南小镇在2018/8/4 13:08:00的发言:
老师,我说的是重置商品编号列后库存数量不正确

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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存.table


--  作者:有点蓝
--  发布时间:2018/8/4 17:23:00
--  
怎么样才是正确的?库存计算逻辑是什么?什么值才是正确的?
--  作者:江南小镇
--  发布时间:2018/8/4 23:45:00
--  
以下是引用江南小镇在2018/8/4 17:19:00的发言:

 下载信息  [文件大小:336.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:进销存.table

老师,在按菜单重置按钮时项目销表(重置商品编号列)库存列不应该发生变化。(重置商品编号后库存数量不正确)


--  作者:有点甜
--  发布时间:2018/8/5 21:42:00
--  
以下是引用江南小镇在2018/8/4 23:45:00的发言:

老师,在按菜单重置按钮时项目销表(重置商品编号列)库存列不应该发生变化。(重置商品编号后库存数量不正确)

 

判断是不是重置列,这样判断

 

If e.newvalue <> e.oldvalue Then \'不是重置列

 

End If