以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  筛选  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106609)

--  作者:longyanlin
--  发布时间:2017/9/12 15:40:00
--  筛选

老师,我做了个“生产订单”表和一个“订单明细”表,当“生产订单”表里面产品编号发生变化时,“订单明细”表里自动从“产品BOM表”里提取数据,当“产品BOM表”里面多增加一列“类型”,其中内容为“客户名称”和”通用”,如何使下以下代码变成:

当“生产订单”表里面产品编号发生变化时,“订单明细”表里面自动提取出“产品BOM表”里面的茶品编号编号相同的“类型=通用+类型=前表客户名称”的内容

If e.DataCol.Name = "产品编号" Then
    DataTables("订单明细").DeleteFor("生产单号 = \'" & e.DataRow("生产单号").Replace("\'", "\'\'") & "\'")
    For Each dr As DataRow In DataTables("产品BOM表").Select("产品编号 = \'" & e.NewValue.Replace("\'", "\'\'") & "\'")
        Dim nr As Row = Tables("订单明细").Addnew
        nr("生产单号") = e.DataRow("生产单号")
        nr("编码") = dr("编码")
        nr("名称") = dr("名称")
        nr("规格") = dr("规格")
        nr("系数") = dr("系数")
        nr("单位") = dr("单位")
        nr("属性") = dr("属性")
       nr("类别") = dr("类别")
    Next
End If


--  作者:有点甜
--  发布时间:2017/9/12 15:57:00
--  
For Each dr As DataRow In DataTables("产品BOM表").Select("产品编号 = \'" & e.NewValue.Replace("\'", "\'\'") & "\' and 类型=\'" & e.datarow("某列") & "\'")
--  作者:longyanlin
--  发布时间:2017/9/12 16:31:00
--  

For Each dr As DataRow In DataTables("产品BOM表").Select("产品编号 = \'" & e.NewValue.Replace("\'", "\'\'") & "\' and 类型=\'" & e.DataRow("客户名称") & "\'")

这样的话只能是提取“类型”列里面客户名称与“生产订单”表客户名称相等的行,但是还是不能实现同时提取“产品BOM表”里面的类型=通用的行啊,也就是说“类型”=通用 是公用的,不管是怎样提取,类型=通用的都需要,类型=XX客户才是需要提取的


--  作者:有点甜
--  发布时间:2017/9/12 17:30:00
--  
产品Bom表,类型列存放什么数据,要怎么匹配?举例说明。
--  作者:longyanlin
--  发布时间:2017/9/12 18:07:00
--  

产品BOM表类“类型”里面除了字符“通用”外,其它都是客户的名称,如下

通用

深圳日起亚

浙江哈尔斯

江苏金樽

深圳比亚迪

浙江三顾

 其主要目的是因为BOM里面的产品名称太多,像有些产品是通用的,只是每个客户的包装要求不同而已,那么就把BOM表里面的内容做成一样,同时把几个客户的特殊要求都做进去,这样的话,生产订单里面出现不同的客户,那么订单明细里面的物料就会出现BOM表里面通用的内容和客户指定要求的内容,谢谢老师!

[此贴子已经被作者于2017/9/12 18:10:36编辑过]

--  作者:有点甜
--  发布时间:2017/9/12 18:17:00
--  
For Each dr As DataRow In DataTables("产品BOM表").Select("产品编号 = \'" & e.NewValue.Replace("\'", "\'\'") & "\' and (类型=\'" & e.DataRow("客户名称") & "\' or 类型 = \'通用\')")