以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 数据汇总 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127371)
|
-- 作者:有点甜
-- 发布时间:2018/11/12 18:03:00
--
加入msgbox测试是否弹出,你要学会自己调试代码啊。
Dim dic As new Dictionary(of String,Integer) DataTables("BOM分析表_需求明细").DataRows.Clear() For Each dr1 As DataRow In DataTables("生产在制品").DataRows msgbox(1) For Each dr2 As DataRow In DataTables("BOM基础数据").Select("[成品编码] = \'" & dr1("成品编码") & "\'") msgbox(2) Dim nm As String = dr1("生产批次") & "|" & dr2("材料编码") Dim vl As Integer = dr1("计划数量") * dr2("单车用量") If dic.ContainsKey(nm) = False dic.Add(nm,vl) Else dic(nm) = dic(nm)+ vl End If Next Next msgbox(dic.Count) For Each key As String In dic.keys msgbox("a") Dim dr As DataRow = DataTables("BOM分析表_需求明细").AddNew() Dim cr As Row = Tables("生产在制品").Current dr("材料编码") = key.split("|")(1) dr("需求数量") = dic(key) dr("生产批次") = key.split("|")(0) dr("毛坯产地") = cr("毛坯产地") dr("下达日期") = cr("下达日期") Next
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 20:09:00
--
说明DataTables("生产在制品")没有数据
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 20:27:00
--
那要先加载需要计算的数据啊,都没有数据,这段代码肯定没有任何用处
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 20:54:00
--
代码需要实现什么功能?
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 21:06:00
--
你把"生产在制品"需要计算的数据加载出来不就行了
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 21:41:00
--
计算是针对整个表所有数据?那么加载全部数据计算,和从后台取所有数据都没有区别的。
如果这样说明您的业务逻辑本身就是错误的,不可能需要计算整个表的数据。那么根据什么条件加载什么数据进行计算,自己先考虑清楚
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 21:54:00
--
那就加载制品表中的订单状态为“进行中”数据啊
|
-- 作者:有点蓝
-- 发布时间:2018/11/12 22:22:00
--
Dim dic As new Dictionary(of String,Integer) DataTables("BOM分析表_需求明细").DataRows.Clear() For Each dr1 As DataRow In DataTables("生产在制品").sqlselect("订单状态=\'进行中\'") For Each dr2 As DataRow In DataTables("BOM基础数据").Select("[成品编码] = \'" & dr1("成品编码") & "\'") Dim nm As String = dr1("生产批次") & "|" & dr2("材料编码")……
|
-- 作者:有点甜
-- 发布时间:2018/11/13 14:51:00
--
比如
Dim dic As new Dictionary(of String,Integer) DataTables("生产计划下达_BOM分析表").DataRows.Clear() For Each dr1 As DataRow In DataTables("生产计划下达_生产在制").DataRows For Each dr2 As DataRow In DataTables("BOM基础数据").SQLSelect("[成品编码] = \'" & dr1("成品编码") & "\'") Dim nm As String = dr1("生产批次") & "|" & dr2("材料编码") & "|" & dr2("材料描述") Dim vl As Integer = dr1("计划数量") * dr2("用量") If dic.ContainsKey(nm) = False dic.Add(nm,vl) Else dic(nm) = dic(nm)+ vl End If Next Next For Each key As String In dic.keys Dim dr As DataRow = DataTables("生产计划下达_BOM分析表").AddNew() Dim cr As Row = Tables("生产计划下达_生产在制").Current dr("材料编码") = key.split("|")(1) dr("材料描述") = key.split("|")(2) dr("生产批次") = key.split("|")(0) dr("需求数量") = dic(key) dr("毛坯产地") = cr("毛坯产地") dr("成品编码") = cr("成品编码") dr("成品描述") = cr("成品描述") dr("下达日期") = cr("下达日期") Next
|