以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  BOM引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132770)

--  作者:有点甜
--  发布时间:2019/3/29 14:45:00
--  

合成条件那里,修改成符合你规则的条件。

 

 For Each dr2 As DataRow In DataTables("BOM基础数据").SQLSelect("[成品编码] = \'" & dr1("成品编码") & "\' And [加工工序] = \'" & dr1("加工工序") & "\' And [加工内容] = \'" & dr1("加工内容") & "\'  and [使用设备] = \'" & dr1("排产设备") & "\' and 材料类型 = \'刀具类\' and 使用状态 = \'使用中\'")

 

如果不会做,上传具体实例,说明操作步骤以及你需要达到的效果


--  作者:有点甜
--  发布时间:2019/3/29 16:14:00
--  

Dim dic As new Dictionary(of String,Integer)
DataTables("生产计划下达_刀具明细").DataRows.Clear()
For Each dr1 As DataRow In DataTables("生产计划下达_生产排产分配表").DataRows
    For Each dr2 As DataRow In DataTables("BOM基础数据").SQLSelect("[成品编码] = \'" & dr1("成品编码") & "\' And [加工工序] = \'" & dr1("加工工序") & "\' And [加工内容] = \'" & dr1("加工内容") & "\'  and [使用设备] = \'" & dr1("使用设备") & "\' and 材料类型 = \'刀具类\' and 使用状态 = \'使用中\'")
        Dim nm As String = dr1("生产批次") & "|" & dr2("使用设备") & "|" & dr2("加工工序") & "|" & dr2("刀柄型号") & "|" & dr2("加工内容") & "|" & dr2("材料编码") & "|" & dr2("材料描述")
        Dim vl As Integer = dr2("用量")
        If dic.ContainsKey(nm) = False
            dic.Add(nm,vl)
        Else
            dic(nm) = dic(nm)
        End If
    Next
    For Each key As String In dic.keys
        Dim dr As DataRow = DataTables("生产计划下达_刀具明细").AddNew()
        Dim cr As DataRow = dr1
        dr("使用设备") = key.split("|")(1)
        dr("加工工序") = key.split("|")(2)
        dr("刀柄型号") = key.split("|")(3)
        dr("加工内容") = key.split("|")(4)
        dr("生产批次") = key.split("|")(0)
        dr("材料编码") = key.split("|")(5)
        dr("材料描述") = key.split("|")(6)
        dr("计划需求") = dic(key)
        dr("毛坯产地") = cr("毛坯产地")
        dr("成品编码") = cr("成品编码")
        dr("成品描述") = cr("成品描述")
        \'dr("下达日期") = cr("下达日期")
        \'dr("线别") = cr("线别")
        \'dr("实际需求") = 1
    Next
Next

 


--  作者:有点甜
--  发布时间:2019/4/1 12:49:00
--  

条件修改成你自己的条件啊,如果条件不重复,就会重复添加啊。

 

    For Each dr2 As DataRow In DataTables("BOM基础数据").SQLSelect("[成品编码] = \'" & dr1("成品编码") & "\' And [加工工序] = \'" & dr1("加工工序") & "\' And [加工内容] = \'" & dr1("加工内容") & "\'  and [使用设备] = \'" & dr1("使用设备") & "\' and 材料类型 = \'刀具类\' and 使用状态 = \'使用中\'")
        Dim nm As String = dr1("生产批次") & "|" & dr2("使用设备") & "|" & dr2("加工工序") & "|" & dr2("刀柄型号") & "|" & dr2("加工内容") & "|" & dr2("材料编码") & "|" & dr2("材料描述")


--  作者:有点色
--  发布时间:2019/4/1 14:51:00
--  

Dim dic As new Dictionary(of String,Integer)
DataTables("生产计划下达_刀具明细").DataRows.Clear()
For Each dr1 As DataRow In DataTables("生产计划下达_生产排产分配表").DataRows
    For Each dr2 As DataRow In DataTables("BOM基础数据").sqlSelect("[成品编码] = \'" & dr1("成品编码") & "\' And [加工工序] = \'" & dr1("加工工序") & "\' And [加工内容] = \'" & dr1("加工内容") & "\'  and [使用设备] = \'" & dr1("使用设备") & "\' and 材料类型 = \'刀具类\' and 使用状态 = \'使用中\'")
        Dim nm As String = dr1("生产批次") & "|" & dr2("使用设备") & "|" & dr2("加工工序") & "|" & dr2("刀柄型号") & "|" & dr2("加工内容") & "|" & dr2("材料编码") & "|" & dr2("材料描述") & "|" & dr1("毛坯产地")  & "|" & dr1("成品编码") & "|" & dr1("成品描述")
        Dim vl As Integer = dr2("用量")
        output.show(dic.keys.count)
        If dic.ContainsKey(nm) = False
            dic.Add(nm,vl)
        Else
            dic(nm) = dic(nm) + 1
        End If
    Next
Next
For Each key As String In dic.keys
    Dim dr As DataRow = DataTables("生产计划下达_刀具明细").AddNew()
    Dim ary = key.split("|")
    dr("使用设备") = ary(1)
    dr("加工工序") = ary(2)
    dr("刀柄型号") = ary(3)
    dr("加工内容") = ary(4)
    dr("生产批次") = ary(0)
    dr("材料编码") = ary(5)
    dr("材料描述") = ary(6)
    dr("计划需求") = dic(key)
    dr("毛坯产地") = ary(7)
    dr("成品编码") = ary(8)
    dr("成品描述") = ary(9)
Next


--  作者:有点甜
--  发布时间:2019/4/1 15:20:00
--  

 

请就例子具体说明操作步骤。输入什么,最后得到什么操作结果。

 

 


--  作者:有点甜
--  发布时间:2019/4/1 15:30:00
--  

请就具体的例子输入数据后测试啊。

 

你给的例子没有数据啊。输入你给的值没有任何效果啊。

 

请上传具体可以测试的例子,说明怎么操作以后,最后得到怎样的效果啊


--  作者:有点甜
--  发布时间:2019/4/1 17:02:00
--  
请上传正确可以测试的实例啊。你上传的例子没有你截图的那些数据啊。
--  作者:有点甜
--  发布时间:2019/4/1 17:11:00
--  

没有数据啊,去看你上传的文件的mdb数据库。那里没有数据啊。

 

而且,你希望得到怎样的效果?逻辑是什么?


--  作者:有点蓝
--  发布时间:2019/4/1 20:43:00
--  
那就直接查表赋值就可以了,干嘛画蛇添足搞个字典呢
--  作者:有点蓝
--  发布时间:2019/4/1 20:45:00
--  
Dim dic As new Dictionary(of String,Integer)
DataTables("生产计划下达_刀具明细").DataRows.Clear()
For Each dr1 As DataRow In DataTables("生产计划下达_生产排产分配表").DataRows
    For Each dr2 As DataRow In DataTables("BOM基础数据").Select("[成品编码] = \'" & dr1("成品编码") & "\' And [加工工序] = \'" & dr1("加工工序") & "\' And [加工内容] = \'" & dr1("加工内容") & "\'  and [使用设备] = \'" & dr1("使用设备") & "\' and 材料类型 = \'刀具类\' and 使用状态 = \'使用中\'")
        Dim dr As DataRow = DataTables("生产计划下达_刀具明细").AddNew()
        dr("使用设备") = dr2("使用设备")
        dr("加工工序") = dr2("加工工序")
        dr("刀柄型号") = dr2("刀柄型号")
        ……
    Next
Next

[此贴子已经被作者于2019/4/1 20:45:29编辑过]