Foxtable(狐表)用户栏目专家坐堂 → [求助]先进的先出


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

主题:[求助]先进的先出

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]先进的先出  发帖心情 Post By:2016/6/24 15:48:00 [只看该作者]

在库存明细里面都是按照序列号来进行管理的。

每个序列号都有自己的在库生命周期,单位是天。

出库的原则是先进先出。

比如现有一个订单号为123的订单需要发货100台。在库存明细里面有50台在库时间是2天的,100台在库时间是1天的。

也就是说在库时间为2天的50台必须出掉,同时在在库时间为1天的100台里面随便出50台出就行。

不能为了方便直接把在库时间为1天的100台出掉。

 

这个怎么写呢?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/24 15:56:00 [只看该作者]

 思路:统计出库总数,比如已出库1234,现在要出库100。循环入库每一行,累加每一行的值,直到大于1234,然后接着循环,减去100的值

 

 参考

 

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

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/24 15:56:00 [只看该作者]

 不会做请上传实例。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/6/24 16:10:00 [只看该作者]

思路我还是不懂,能再说明白一下么。

比如我现在已经找出来可以满足发货要求的行,然后在这些行里面挑出先进的先出。没搞懂。

Dim drs As List(of DataRow) = DataTables("库存明细表").SQLSelect("订单号 = '" & Vars("xsddh") & "' and 状态 = '入库完成'")
Dim sum As Integer
sum = DataTables("库存明细表").SQLCompute("Sum(数量)","订单号 = '" & Vars("xsddh") & "' and 状态 = '入库完成'")
If sum > vars("发货数量") Then

End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/24 16:14:00 [只看该作者]

 看2、3楼。不会做,单独做个例子发上来。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/6/24 16:38:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

 

例子简单。

问题说一下。在销售出库单双击发货单号,会打开配货整理窗体,里面绑定了配货明细表。

现在每扫一个SN,就需要到库存明细里面找符合要求的,物料编码相等,订单号相等,然后按照先进先出的原则出库。当出库总数量和预发货数量相等,销售发货单的配货状态就变为true。再扫到序列号都不能出库,


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/24 17:05:00 [只看该作者]

直接新增行测试。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (1).foxdb


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/6/24 17:12:00 [只看该作者]

一定要升级到最新版本才能打开吗?我的是老ft版本,还没敢升级。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/24 17:14:00 [只看该作者]

 安装最新版,然后拷贝最新的文件出来,重新安装你的旧版本。

 

 要打开新版,就先启动那个拷贝出来的文件夹exe


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/6/25 12:12:00 [只看该作者]

Select Case e.DataCol.name
    Case "订单号", "物料编码"
        If e.DataRow.IsNull("订单号") = False AndAlso e.DataRow.IsNull("物料编码") = False Then
            Dim fdr As DataRow = DataTables("库存明细表").find("订单号='" & e.DataRow("订单号") & "' and 物料编码='" & e.DataRow("物料编码") & "' and 状态='入库完成'", "在库生命周期 desc")
            If fdr IsNot Nothing Then
                e.DataRow("sn") = fdr("sn")
                fdr("状态") = "出库"

                Dim count As Integer = e.DataTable.Compute("count(sn)","订单号='" & e.DataRow("订单号") & "' and 物料编码='" & e.DataRow("物料编码") & "'")
                Dim dr As DataRow = DataTables("销售出库单").find("订单号='" & e.DataRow("订单号") & "' and 物料编码='" & e.DataRow("物料编码") & "'")
                If dr IsNot Nothing Then
                    If count >= dr("预发货数量") Then
                        dr("配货状态") = True
                    End If
                End If
            End If
        End If
End Select

单从看代码,我觉得有问题。你是先得到物料编码和订单号,然后得到SN。

正常情况SN不是得到的,是扫描枪扫出来的,根据SN在库存明细管理表里得到物料编码和订单号,然后与销售出库单比较,是否一致。如果一致,那么先进先出。


 回到顶部
总数 47 1 2 3 4 5 下一页