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


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

主题:[求助] BOM 展开

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/7/1 11:58: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 = args(5)
    If args.length < 6 OrElse args(5) = True Then
        Dim aa As Integer
        If args.length = 7 Then
            aa = args(6) * dr("FQty")
        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
   
    If args(5) = True Then
        ndr("MissingQty") = ndr("Stock")+ndr("QC") -ndr("Demand")
    Else
        ndr("MissingQty") = Nothing
    End If
    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

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


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

谢谢老师。

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


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

甜老师,不好意思了。这个红色的总计,应该是 0,因为它的父层 -6, 子层用6补齐后,所以是0,对不对 ?

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


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


[此贴子已经被作者于2019/10/7 10:57:06编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/7/1 12:46: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 = args(5)
    If args.length < 6 OrElse args(5) = True Then
        Dim aa As Integer
        If args.length = 7 Then
            aa = args(6) * dr("FQty")
        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
   
    If args(5) = True Then
        ndr("MissingQty") =  ndr("Stock")+ndr("QC") -ndr("Demand")+args(6)*dr("FQty")
    Else
        ndr("MissingQty") = Nothing
    End If
    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

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


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

 

[此贴子已经被作者于2019/10/7 10:57:17编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/7/2 9:14: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 = args(5)
    If args.length < 6 OrElse args(5) = True Then
        Dim aa As Integer
        If args.length = 7 Then
            aa = args(6) * dr("FQty")
        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 flag = True Then
        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
    End If
   
    If flag = True Then
       
        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
    End If
    If args(5) = True Then
        ndr("MissingQty") =  ndr("Stock")+ndr("QC") -ndr("Demand")+args(6)*dr("FQty")
    Else
        ndr("MissingQty") = Nothing
    End If
    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

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


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

谢谢甜老师, 以下是什么意思,可以说明一下,学习 了。谢谢。

 

If args.length < 6 OrElse args(5) = True Then
        Dim aa As Integer
        If args.length = 7 Then
            aa = args(6) * dr("FQty")
        End If


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


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

If args.length < 6 OrElse args(5) = True Then ‘如果函数传入的参数个数 <6 或者 第6个参数的值等于true
        Dim aa As Integer
        If args.length = 7 Then ‘如果函数传入了7个参数
            aa = args(6) * dr("FQty") ‘aa变量的值等于第7个参数的值 乘于dr("FQty")
        End If

 回到顶部
总数 49 上一页 1 2 3 4 5