以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  同一表中按条件查找并获取数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138687)

--  作者:wangj6666
--  发布时间:2019/8/3 11:02:00
--  同一表中按条件查找并获取数据
各位专家好!
      我在专业报表中使用New SQLGroupTableBuilder("各工序加工张数统计","生产加工登记表")建立了一个各工序加工张数统计的表:
代码如下:
Dim b As New SQLGroupTableBuilder("各工序加工张数统计","生产加工登记表")
b.C
b.Groups.AddDef("加工时间", DateGroupEnum.Year, "年")
b.Groups.AddDef("加工时间", "月")
b.Groups.Adddef("工资成本归属部门")
b.Groups.Adddef("工序名称")
b.Groups.Adddef("产品名称及令号")
b.Totals.Addexp("加工量次数","加工数量*加工道数")
b.Totals.Addexp("计件工资总额","加工数量*本单计件单价*加工道数")
b.Totals.Addexp("染色出鼓张数","iif(工序名称 = \'染色出鼓\',加工数量,0)")
b.Build()
DataTables("各工序加工张数统计").DataCols.Add("所属生产线",Gettype(String),"IIF([产品名称及令号] is null,\'\',IIF([产品名称及令号] Like \'%xmg%\' or [产品名称及令号] Like \'%lsx%\'or [产品名称及令号] Like \'%鞋面革%\',\'鞋面革\',))")
DataTables("各工序加工张数统计").DataCols.Add("层别",Gettype(String),"IIF([产品名称及令号] is null,\'\',IIF([产品名称及令号] Like \'%打样%\'or [产品名称及令号] Like \'%样品%\',\'打样\'))")
DataTables("各工序加工张数统计").DataCols.Add("加工张数",Gettype(Double),"")
MainTable = Tables("各工序加工张数统计")
生产的统计表如下:

图片点击可在新窗口打开查看此主题相关图片如下:{0d250b0a-4b52-49f1-b051-a5f10d72ba33}_20190803105324.jpg
图片点击可在新窗口打开查看
其实我是想让加工张数得出这个规则的数据的,那就是:在加工工序不是”染色出鼓“的工序的行如果在加工工序是”染色出鼓“的所有行中找到与之相同的产品名称及令号,就等于加工工序为”染色出鼓“的”染色出鼓张数“,否则就还是等于0。请问要如何添加代码呢?谢谢!

--  作者:有点蓝
--  发布时间:2019/8/3 11:46:00
--  
for each dr as datarow in dataTables("各工序加工张数统计").select("工序名称 <> \'染色出鼓\'")
dim dr2 as datarow = dataTables("各工序加工张数统计").find("工序名称 = \'染色出鼓\' and 产品名称及令号=\'" &dr("产品名称及令号") & "\'")
if dr2 isnot nothing then
dr("加工张数") = dr2("染色出鼓张数") 
end if
next

--  作者:wangj6666
--  发布时间:2019/8/3 12:21:00
--  
请问将这段代码加在我先前代码的什么位置呢?谢谢!
--  作者:有点蓝
--  发布时间:2019/8/3 14:13:00
--  
最后