Foxtable(狐表)用户栏目专家坐堂 → [求助] 负库存问题


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

主题:[求助] 负库存问题

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


加好友 发短信
等级:三尾狐 帖子:799 积分:5921 威望:0 精华:0 注册:2018/11/3 8:24:00
[求助] 负库存问题  发帖心情 Post By:2019/8/7 23:50:00 [只看该作者]

老师你好,

 

请问一下,项目支持负库存中的代码跟项目Test中的代码是一样的。

 

可是项目test中库存表中有负库存,执行代码后怎么负库存在物料需求表列stock中没有显示出来。 项目支持负库存中有负库存显示了,是用的相同代码。可以帮忙解答一下吗? 谢谢。


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


加好友 发短信
等级:三尾狐 帖子:799 积分:5921 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2019/8/7 23:53:00 [只看该作者]

如附件


图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:支持负库存.foxdb

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

[此贴子已经被作者于2019/8/7 23:55:53编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/8 10:14:00 [只看该作者]

没看懂。正确的数据应该是怎么样的?

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


加好友 发短信
等级:三尾狐 帖子:799 积分:5921 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2019/8/8 11:53:00 [只看该作者]

老师如图, 圈出来的应该要显示出来,可以没有,实例也附上了。
图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar


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


加好友 发短信
等级:三尾狐 帖子:799 积分:5921 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2019/8/8 11:54:00 [只看该作者]

奇怪的是,这个项目中的代码是一样,却显示出来了。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:支持负库存.foxdb


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/8 14:40:00 [只看该作者]

5楼的项目一样有问题,父层一样无法计算,4楼项目是单件出货,其实也就相当是父层了。

其次4楼项目qty列根本就没有数据

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/8 14:42:00 [只看该作者]

不知道负库存的计算逻辑是怎么样的,随便蒙一下,细节自己理解更改

DataTables("物料需求").datarows.clear
Dim dic1 As new Dictionary(of String, Double)
For Each dr As DataRow In DataTables("库存表").Select("part is not null")
    dic1.add(dr("part"), dr("qty"))
Next
vars("dic1") = dic1

Dim dic2 As new Dictionary(of String, Double)
For Each dr As DataRow In DataTables("待检产品").Select("part is not null")
    dic2.add(dr("part"), dr("qty"))
Next
vars("dic2") = dic2

Dim dic3 As new Dictionary(of String, Double)
For Each dr As DataRow In DataTables("采购订单").Select("part is not null")
    dic3.add(dr("part"), dr("qty"))
Next
vars("dic3") = dic3

Dim dic4 As new Dictionary(of String, Double)
vars("dic4") = dic4
For Each Ary As String() In DataTables("OrderList").GetValues("PartNo|ETD|批号","PartNo is not null")
    Dim dr As DataRow = DataTables("物料需求").AddNew
    dr("PartNo") = ary(0)
    dr("ETD") = ary(1)
    dr("批号") = ary(2)
    Dim qty As Decimal = DataTables("OrderList").Compute("sum(Qty)","PartNo='" & ary(0) & "' And ETD='" & ary(1) & "' and 批号 ='" & ary(2) & "'")
    dr("Demand") = qty
    
    Dim flag As Boolean = True
    If dic1.ContainsKey(dr("PartNo")) Then
        If dic1(dr("PartNo")) >= qty Then
            dr("Stock") = qty
            dic1(dr("PartNo")) -= dr("Stock")
            flag = False
        Else
            If dic1(dr("PartNo")) < 0 Then
                If dic1(dr("PartNo"))*-1 > qty
                    dr("Stock") = -1 * qty
                    dic1(dr("PartNo")) += qty
                Else
                    dr("Stock") = dic1(dr("PartNo"))
                    dic1(dr("PartNo")) = 0
                End If
            Else
                dr("Stock") = dic1(dr("PartNo"))
                dic1(dr("PartNo")) -= dr("Stock")
            End If
            
        End If
    End If
    If dic2.ContainsKey(dr("PartNo")) Then
        
        Dim qty1 = dr("Demand") - dr("stock")
        If qty1 > 0 Then
            If dic2(dr("PartNo")) >= qty1 Then
                dr("QC") = qty1
                
                
                dic2(dr("PartNo")) -= dr("QC")
            ElseIf dic2(dr("PartNo")) > 0 Then
                dr("QC") = dic2(dr("PartNo"))
                dic2(dr("PartNo")) -= dr("QC")
            End If
        End If
    End If
    
    Dim drr As DataRow = DataTables("BOM").find("Fnumber =" &"'"& dr("PartNo")&"'")
    If drr IsNot Nothing
        dr("层次") = "父层"
    Else
        dr("层次") = "单件出货"
        
    End If
    Functions.Execute("sumChild",ary(0),qty, ary(0), ary(1),ary(2), flag, dr("Stock"),dr("QC"),1,dr("Stock")+dr("QC")-qty)
    
    If dic3.ContainsKey(dr("PartNo")) Then
        If dic3(dr("PartNo")) >= qty Then
            dr("purchasingorder") = qty
            dic3(dr("PartNo")) -= dr("purchasingorder")
        ElseIf dic3(dr("PartNo")) > 0 Then
            dr("purchasingorder") = dic3(dr("PartNo"))
            dic3(dr("PartNo")) -= dr("purchasingorder")
        End If
    End If
    If flag = True Then
        dr("MissingQty") = dr("Stock")+dr("QC") -dr("Demand")
    Else
        dr("MissingQty") = Nothing
    End If
    If dic4.ContainsKey(dr("PartNo")) = False Then
        dic4.add(dr("PartNo"), dr("MissingQty"))
    Else
        dic4(dr("PartNo")) += dr("MissingQty")
    End If
    dr("SumMissing") = dic4(dr("partno"))
Next

msgbox("Updated !!!")

 回到顶部