以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] BOM展开增加说明  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=137448)

--  作者:sanny
--  发布时间:2019/7/6 10:26:00
--  [求助] BOM展开增加说明

请版主帮忙指点一下:

 

如图1,Orderlist 表中没有日期的时候就出现了错误,可不可以空白也可以进行。

如图2,  表物料需求中增加了个列名 “层次”,如何自动填写这些固定内容,并用字体颜色区分。谢谢。

 

 


--  作者:sanny
--  发布时间:2019/7/6 10:26:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bom.foxdb


图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:捕获2.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/7/6 10:58:00
--  
DataTables("物料需求").datarows.clear
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)
    If ary(1) > ""
        dr("Date") = cdate(ary(1))
    End If
    dr("批号") = ary(2)
    Dim qty As Integer = DataTables("OrderList").Compute("sum(Qty)","PartNo=\'" & ary(0) & "\' And " & IIf(ary(1) > "","ETD=\'" & ary(1) & "\'","ETD is null") & " and 批号 =\'" & ary(2) & "\'")
    dr("Demand") = qty
    
    
    Functions.Execute("sumChild",ary(0),qty, ary(0), dr("Date"),ary(2))
    
Next


--  作者:sanny
--  发布时间:2019/7/6 11:18:00
--  

感谢蓝老师了。

 

表物料需求中增加了个列名 “层次”,如何自动填写BOM,第一层,第二层以及没有无BOM 这些内容。帮忙再指点一下,感谢。

 


--  作者:有点蓝
--  发布时间:2019/7/6 11:46:00
--  
递归函数添加多一个整数参数,每递归一次就+1传入,不就有层次了
--  作者:sanny
--  发布时间:2019/7/6 12:46:00
--  

老师,这个不了解,有点难度

 

第一层里分 BOM 和无BOM

第二层

第三层

可能还有第三,四层

这些都是变动的

麻请麻烦帮忙一下如何增加。十分感谢。

 


--  作者:有点蓝
--  发布时间:2019/7/6 13:50:00
--  
……
 Dim qty As Integer = DataTables("OrderList").Compute("sum(Qty)","PartNo=\'" & ary(0) & "\' And " & IIf(ary(1) > "","ETD=\'" & ary(1) & "\'","ETD is null") & " and 批号 =\'" & ary(2) & "\'")
    dr("Demand") = qty
    
    
    Functions.Execute("sumChild",ary(0),qty, ary(0), dr("Date"),ary(2),1)
    
Next

函数
dim idx as integer = args(5)
msgbox(idx)
……
    ndr("批号") = args(4)
    ndr("Demand") = dr("FQty") * qty
    Functions.Execute("sumChild",dr("PN"),ndr("Demand"), args(2), args(3), args(4),idx+1)
……

--  作者:sanny
--  发布时间:2019/7/6 14:29:00
--  

感谢蓝老师的指点。结果如图。头层里分 BOM 和无BOM,没有做到,也再次麻烦老师指点一下。谢谢。

 

 

Dim pn As String = args(0)
Dim qty As String = args(1)
Dim idx As Integer = args(5)

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
    ndr("层次") = "第" & idx & "层"

 
    Functions.Execute("sumChild",dr("PN"),ndr("Demand"), args(2), args(3), args(4),idx+1)
Next


--  作者:sanny
--  发布时间:2019/7/6 14:30:00
--  

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/7/6 14:48:00
--  
头层直接在按钮里赋值啊