Foxtable(狐表)用户栏目专家坐堂 → [求助] BOM 展开


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

主题:[求助] BOM 展开

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/23 12:45:00 [显示全部帖子]

请具体说明计算逻辑,以及你最后需要得到的结果

 

 

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/23 16:56:00 [显示全部帖子]

 

不理解你的意思,哪一行的值出错?其值应该是什么,通过什么值计算得到?

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/23 18:04:00 [显示全部帖子]

 

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


 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/24 11:10:00 [显示全部帖子]

跨表查询,找到对应的行,赋值过去,如

 

http://www.foxtable.com/webhelp/topics/0396.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/24 12:35:00 [显示全部帖子]

以下是引用sanny在2019/6/24 12:30:00的发言:

版主,

 

不对的,关键是要进行分配。比如 6.AB_000072_ 库存是6件,在Orderlist中第一笔满足后,第二笔在第一笔的基础上扣减后,再去写入,

有个循环的计算。

 

麻烦帮忙再解答一下,谢谢。

 

做一个字典,记录每一个pn的库存剩余值,从字典里面取出剩余值,然后加减即可。

 

http://www.foxtable.com/webhelp/topics/1945.htm

 

[此贴子已经被作者于2019/6/24 12:35:05编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/24 18:08:00 [显示全部帖子]

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/25 16:21:00 [显示全部帖子]

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/26 9:24:00 [显示全部帖子]

Dim pn As String = args(0)
Dim qty As String = args(1)
Dim dic1 = vars("dic1")
Dim dic2 = vars("dic2")
Dim dic3 = vars("dic3")
Dim dic4 = vars("dic4")
For Each dr As DataRow In  DataTables("BOM").Select("FNumber='" & pn & "'")
    Dim ndr As DataRow = DataTables("物料需求").AddNew
    ndr("PartNo") = dr("PN")
    ndr("Date") = args(3)
    ndr("批号") = args(4)
    ndr("Demand") = dr("FQty") * qty
    Functions.Execute("sumChild",dr("PN"),ndr("Demand"), args(2), args(3), args(4))
    If dic1.ContainsKey(ndr("PartNo")) Then
        If dic1(ndr("PartNo")) >= ndr("Demand") Then
            ndr("Stock") = ndr("Demand")
            dic1(ndr("PartNo")) -= ndr("Stock")
        ElseIf dic1(ndr("PartNo")) > 0 Then
            ndr("Stock") = dic1(ndr("PartNo"))
            dic1(ndr("PartNo")) -= ndr("Stock")
        End If
    End If
   
    If dic2.ContainsKey(ndr("PartNo")) Then
        Dim qty1 = ndr("Demand") - ndr("stock")
        If qty1 > 0 Then
            If dic2(ndr("PartNo")) >= qty1 Then
                ndr("QC") = qty1

                dic2(ndr("PartNo")) -= ndr("QC")
            ElseIf dic2(ndr("PartNo")) > 0 Then
                ndr("QC") = dic2(ndr("PartNo"))
                dic2(ndr("PartNo")) -= ndr("QC")
            End If
        End If
    End If
   
   
    If dic3.ContainsKey(ndr("PartNo")) Then
        Dim qty1 = ndr("Demand") - ndr("stock") - ndr("qc")
        If qty1 > 0 Then
            If dic3(ndr("PartNo")) >= qty1 Then
                ndr("purchasingorder") = qty1
                dic3(ndr("PartNo")) -= ndr("purchasingorder")
            ElseIf dic3(ndr("PartNo")) > 0 Then
                ndr("purchasingorder") = dic3(ndr("PartNo"))
                dic3(ndr("PartNo")) -= ndr("purchasingorder")
            End If
        End If
    End If
   
    ndr("MissingQty") = ndr("Stock")+ndr("QC") -ndr("Demand")
    If dic4.ContainsKey(ndr("PartNo")) = False Then
        dic4.add(ndr("PartNo"), ndr("MissingQty"))
    Else
        dic4(ndr("PartNo")) += ndr("MissingQty")
    End If
    ndr("SumMissing") = dic4(ndr("partno"))
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/28 18:13:00 [显示全部帖子]

Dim pn As String = args(0)
Dim qty As String = args(1)
Dim dic1 = vars("dic1")
Dim dic2 = vars("dic2")
Dim dic3 = vars("dic3")
Dim dic4 = vars("dic4")
For Each dr As DataRow In  DataTables("BOM").Select("FNumber='" & pn & "'")
    Dim ndr As DataRow = DataTables("物料需求").AddNew
    ndr("PartNo") = dr("PN")
    ndr("Date") = args(3)
    ndr("批号") = args(4)
    ndr("Demand") = dr("FQty") * qty
    Dim flag = True
    If args.length < 6 OrElse args(5) = True Then       
        If dic1.ContainsKey(ndr("PartNo")) Then
            If dic1(ndr("PartNo")) >= ndr("Demand") Then
                ndr("Stock") = ndr("Demand")
                dic1(ndr("PartNo")) -= ndr("Stock")
                flag = False
            ElseIf dic1(ndr("PartNo")) > 0 Then
                ndr("Stock") = dic1(ndr("PartNo"))
                dic1(ndr("PartNo")) -= ndr("Stock")
            End If
        End If
    End If
    Functions.Execute("sumChild",dr("PN"),ndr("Demand"), args(2), args(3), args(4), flag)
   
    If dic2.ContainsKey(ndr("PartNo")) Then
       
        Dim qty1 = ndr("Demand") - ndr("stock")
        If qty1 > 0 Then
            If dic2(ndr("PartNo")) >= qty1 Then
                ndr("QC") = qty1
               
               
                dic2(ndr("PartNo")) -= ndr("QC")
            ElseIf dic2(ndr("PartNo")) > 0 Then
                ndr("QC") = dic2(ndr("PartNo"))
                dic2(ndr("PartNo")) -= ndr("QC")
            End If
        End If
    End If
   
   
    If dic3.ContainsKey(ndr("PartNo")) Then
        ' If dic3(ndr("PartNo")) >= ndr("Demand") Then
        '    ndr("purchasingorder") = ndr("Demand")
        Dim qty2 = ndr("Demand") - ndr("stock") - ndr("QC")
        If qty2 > 0 Then
            If dic3(ndr("PartNo")) >= qty2 Then
                ndr("purchasingorder") = qty2
               
               
               
                dic3(ndr("PartNo")) -= ndr("purchasingorder")
            ElseIf dic3(ndr("PartNo")) > 0 Then
                ndr("purchasingorder") = dic3(ndr("PartNo"))
                dic3(ndr("PartNo")) -= ndr("purchasingorder")
            End If
        End If
       
    End If
   
   
    ndr("MissingQty") = ndr("Stock")+ndr("QC") -ndr("Demand")
    If dic4.ContainsKey(ndr("PartNo")) = False Then
        dic4.add(ndr("PartNo"), ndr("MissingQty"))
    Else
        dic4(ndr("PartNo")) += ndr("MissingQty")
    End If
    ndr("SumMissing") = dic4(ndr("partno"))
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/30 12:11:00 [显示全部帖子]

Dim pn As String = args(0)
Dim qty As String = args(1)
Dim dic1 = vars("dic1")
Dim dic2 = vars("dic2")
Dim dic3 = vars("dic3")
Dim dic4 = vars("dic4")
For Each dr As DataRow In  DataTables("BOM").Select("FNumber='" & pn & "'")
    Dim ndr As DataRow = DataTables("物料需求").AddNew
    ndr("PartNo") = dr("PN")
    ndr("Date") = args(3)
    ndr("批号") = args(4)
    ndr("Demand") = dr("FQty") * qty
    Dim flag = True
    If args.length < 6 OrElse args(5) = True Then
        Dim aa As Integer
        If args.length = 7 Then
            aa = args(6)
        End If
        If dic1.ContainsKey(ndr("PartNo")) Then
            If dic1(ndr("PartNo")) >= ndr("Demand")-aa Then
                ndr("Stock") = ndr("Demand")-aa
                dic1(ndr("PartNo")) -= ndr("Stock")
                flag = False
            ElseIf dic1(ndr("PartNo")) > 0 Then
                ndr("Stock") = dic1(ndr("PartNo"))
                dic1(ndr("PartNo")) -= ndr("Stock")
            End If
        End If
    End If
    Functions.Execute("sumChild",dr("PN"),ndr("Demand"), args(2), args(3), args(4), flag, ndr("Stock"))
   
    If dic2.ContainsKey(ndr("PartNo")) Then
       
        Dim qty1 = ndr("Demand") - ndr("stock")
        If qty1 > 0 Then
            If dic2(ndr("PartNo")) >= qty1 Then
                ndr("QC") = qty1
               
               
                dic2(ndr("PartNo")) -= ndr("QC")
            ElseIf dic2(ndr("PartNo")) > 0 Then
                ndr("QC") = dic2(ndr("PartNo"))
                dic2(ndr("PartNo")) -= ndr("QC")
            End If
        End If
    End If
   
   
    If dic3.ContainsKey(ndr("PartNo")) Then
        ' If dic3(ndr("PartNo")) >= ndr("Demand") Then
        '    ndr("purchasingorder") = ndr("Demand")
        Dim qty2 = ndr("Demand") - ndr("stock") - ndr("QC")
        If qty2 > 0 Then
            If dic3(ndr("PartNo")) >= qty2 Then
                ndr("purchasingorder") = qty2
               
               
               
                dic3(ndr("PartNo")) -= ndr("purchasingorder")
            ElseIf dic3(ndr("PartNo")) > 0 Then
                ndr("purchasingorder") = dic3(ndr("PartNo"))
                dic3(ndr("PartNo")) -= ndr("purchasingorder")
            End If
        End If
       
    End If
   
   
    ndr("MissingQty") = ndr("Stock")+ndr("QC") -ndr("Demand")
    If dic4.ContainsKey(ndr("PartNo")) = False Then
        dic4.add(ndr("PartNo"), ndr("MissingQty"))
    Else
        dic4(ndr("PartNo")) += ndr("MissingQty")
    End If
    ndr("SumMissing") = dic4(ndr("partno"))
Next

 回到顶部
总数 15 1 2 下一页