以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于按批次出库  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134951)

--  作者:l1q2lq
--  发布时间:2019/5/13 18:11:00
--  [求助]关于按批次出库
入库表中某零件有三个批次行a:100个;b:100个;c:100个;
按照批次排列是a-b-c
现需出库280个,出库表中自动按照a:100个;b:100个;c:80个增加三行

这个怎么操作,请老师指导

--  作者:有点甜
--  发布时间:2019/5/13 18:15:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=122869&skin=0

 


--  作者:l1q2lq
--  发布时间:2019/5/13 21:00:00
--  
老师,我看了,其他都没有问题,我希望做到的:出库表中自动按照a:100个;b:100个;c:80个增加三行,需要怎么实现
--  作者:有点蓝
--  发布时间:2019/5/13 21:11:00
--  
请上传具体实例说明
--  作者:l1q2lq
--  发布时间:2019/5/13 21:22:00
--  
例子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



出库表里输入出库数量

出库批次表里自动匹配对应批次,增加多行出库

--  作者:有点蓝
--  发布时间:2019/5/13 22:09:00
--  
出库表Datacolchanged事件

If e.DataCol.Name = "数量" Then
    If e.NewValue > 0 Then
        Dim drs As List(Of DataRow) = DataTables("批次库存").Select("零件号=\'" & e.DataRow("零件号") & "\'","零件批次")
        Dim sl As Integer = e.NewValue
        For Each dr As DataRow In drs
            If sl > 0 Then
                Dim dr2 As DataRow = DataTables("出库批次").AddNew
                dr2("零件号") = dr("零件号")
                dr2("零件批次") = dr("零件批次")
                If dr("当前库存") > sl Then
                    dr2("数量") = sl
                    Return
                Else
                    dr2("数量") = dr("当前库存")
                    sl = sl - dr2("数量")
                End If
            Else
                Return
            End If
        Next
    End If
End If