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


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

主题:[求助] BOM 展开

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


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

 

[此贴子已经被作者于2019/6/26 19:44:13编辑过]

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


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

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 


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


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

版主,

 

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

有个循环的计算。

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

 

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

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


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

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


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


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

 

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

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


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

参考内部函数的用法,先判断字典是否包含指定的PartNo值再使用

If dic1.ContainsKey(dr("PartNo")) Then
If dic1(dr("PartNo")) >= qty Then
        dr("Stock") = qty
        dic1(dr("PartNo")) -= dr("Stock")
    ElseIf dic1(dr("PartNo")) >= 0 Then
        dr("Stock") = dic1(dr("PartNo")) 
        dic1(dr("PartNo")) -= dr("Stock")
    End If
end if

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


加好友 发短信
等级:三尾狐 帖子:795 积分:5880 威望:0 精华:0 注册:2018/11/3 8:24:00
  发帖心情 Post By:2019/6/24 21:42: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")
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
        If dic2(ndr("PartNo")) >= ndr("Demand") Then
            ndr("QC") = ndr("Demand")
            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


    If dic3.ContainsKey(ndr("PartNo")) Then
        If dic3(ndr("PartNo")) >= ndr("Demand") Then
            ndr("purchasingorder") = ndr("Demand")
            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

Next

 

按钮代码如下:

 

 

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 


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("Date") = ary(1)
    dr("批号") = ary(2)
    Dim qty As Integer = DataTables("OrderList").Compute("sum(Qty)","PartNo='" & ary(0) & "' And ETD='" & ary(1) & "' and 批号 ='" & ary(2) & "'")
    dr("Demand") = qty
    Functions.Execute("sumChild",ary(0),qty, ary(0), ary(1),ary(2))
    If dic1(dr("PartNo")) >= qty Then
        dr("Stock") = qty
        dic1(dr("PartNo")) -= dr("Stock")
    ElseIf dic1(dr("PartNo")) >= 0 Then
        dr("Stock") = dic1(dr("PartNo"))
        dic1(dr("PartNo")) -= dr("Stock")
    End If

    If dic2(dr("PartNo")) >= qty Then 
        dr("QC") = qty 
        dic2(dr("PartNo")) -= dr("QC") 
    ElseIf dic2(dr("PartNo")) >= 0 Then 
        dr("QC") = dic2(dr("PartNo"))  
        dic2(dr("PartNo")) -= dr("QC") 
    End If 


    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 

Next

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:颜色进度管理.foxdb


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