以文本方式查看主题

-  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=151502)

--  作者:江南小镇
--  发布时间:2020/6/25 13:30:00
--  [求助]库存
老师,出库明细表的库存怎样获取,出库明细表有代码。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存.rar


--  作者:inf9
--  发布时间:2020/6/26 11:45:00
--  
帮助里面的<跨表统计的自动更新> http://www.foxtable.com/help/index.htm?page=1472.htm
--  作者:有点蓝
--  发布时间:2020/6/27 9:55:00
--  
使用上有什么问题?按什么规则计算?
--  作者:江南小镇
--  发布时间:2020/6/28 9:32:00
--  
老师好,出库批次号根据入库批次号计算出同一批次号最后的库存。
--  作者:有点蓝
--  发布时间:2020/6/28 9:53:00
--  
我不懂业务,没看懂,就实例的数据,手工填写截图说明。比如出库填写批次,数量50,出库明细和入库明细最后的结果应该是怎么样的?数量填90、120、200,出库明细和入库明细最后的结果又应该是怎么样的?
--  作者:江南小镇
--  发布时间:2020/6/28 13:26:00
--  
老师好

图片点击可在新窗口打开查看此主题相关图片如下:image 5.png
图片点击可在新窗口打开查看
 
--  作者:有点蓝
--  发布时间:2020/6/28 13:43:00
--  
到入库表根据批次把库存取过来不就行了
--  作者:江南小镇
--  发布时间:2020/6/28 21:47:00
--  
老师好

图片点击可在新窗口打开查看此主题相关图片如下:image 1.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存.table

 
--  作者:有点蓝
--  发布时间:2020/6/28 21:58:00
--  
根据什么规则改这个批次号?
--  作者:江南小镇
--  发布时间:2020/6/29 14:47:00
--  
老师,"出库明细"表“出库_数量”列输入数据后“入库批次”列总是把原来的批次号修改成第一批次。标出的代码屏蔽是不自动修改的。


Select Case e.DataCol.name
    Case "商品ID","出库_数量"
        If e.newvalue <> e.oldvalue Then \'不是重置列
            
            If e.DataRow("出库_数量") IsNot Nothing Then
                Dim r As DataRow = e.DataRow
                If e.DataCol.name = "出库_数量" AndAlso e.OldValue<> Nothing Then
                    Dim count As Integer = 0
                    Dim bhs = r("入库批次号").split(",")
                    Dim kcs = r("提取数量").split(",")
                    For i As Integer = 0 To bhs.length-1
                        Dim fdr As DataRow = DataTables("入库明细").find("入库单编号明细 = \'" & bhs(i) & "\'") 
                        If fdr IsNot Nothing Then               
                            fdr("出库") -= kcs(i)                           
                        End If
                    Next                   
                End If
                Dim sum As Double = DataTables("入库明细").compute("sum(库存)", "商品ID = \'" & e.DataRow("商品ID") & "\' 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("商品ID = \'" & e.DataRow("商品ID") & "\' 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("出库_数量")
                        
                        If sy >= 0 Then
                            cb += dr("入库_单价") * (dr("库存")-sy)
                            K &= dr("库存")-sy & ","
                            dr("出库") = dr("入库_数量") - sy
                            s &= dr("入库单编号明细") & ","
                            r("入库批次号") = s.trim(",")   
                            r("提取数量") = K.trim(",")
                            r("成本") = cb
                            Exit For
                        Else
                            s &= dr("入库单编号明细") & ","
                            K &= dr("库存") & ","
                            cb += dr("入库_单价") * dr("库存")
                            dr("出库") = dr("入库_数量")
                            dr("库存") = 0
                        End If
                    Next
                End If
                
            End If
            
        End If
End Selec