现使用代码:
Dim Filter As String = "[生产批次] = '" & e.DataRow("生产批次") & "' and [加工工序] = '" & e.DataRow("加工工序") & "' and [加工次数] = '" & e.DataRow("加工次数") & "' and [使用设备] = '" & e.DataRow("使用设备")& "' and [配刀单号] = '" & e.DataRow("配刀单号")& "'and [扫描日期] < ='" & e.DataRow("还刀日期")& "'and [扫描日期] >= '" & e.DataRow("实际领刀日期") & "'"
e.DataRow("加工数量") = DataTables("工序跟踪表").SQLCompute("Sum(合格品)", Filter)
Dim sql1 As String = "Sel ect * from 工序跟踪表 as a1 where exists(s elect * from 计划领用刀具 as b1 where " & Forms("刀具归还确认").controls("计划明细").Table.DataTable.LoadFilter & " And a1.生产批次 = b1.生产批次 And a1.加工次数 = b1.加工次数 And a1.配刀单号 = b1.配刀单号 And a1.使用设备 = b1.使用设备 And a1.加工工序 = b1.加工工序)"
Dim b1 As New GroupTableBuilder("统计表", sql1, "条码扫描系统数据库")
b1.Groups.AddDef("扫描日期", DateGroupEnum.Minute)
b1.Groups.AddDef("生产批次") '根据产品分组
b1.Groups.AddDef("加工次数") '根据产品分组
b1.Groups.AddDef("使用设备") '根据产品分组
b1.Groups.AddDef("配刀单号") '根据产品分组
b1.Groups.AddDef("加工工序") '根据产品分组
b1.Totals.AddDef("合格品") '添加数量列用于统计
Dim dt1 As DataTable = b1.Build(True)
Dim dr2 As DataRow
For Each dr3 As Row In Tables("刀具归还确认_计划明细").Rows
dr2 = dt1.find("生产批次 = '" & dr3("生产批次") & "' and 加工工序 = '" & dr3("加工工序") & "' and 加工次数 = '" & dr3("加工次数") & "' and 使用设备 = '" & dr3("使用设备") & "' and 配刀单号 = '" & dr3("配刀单号") & "'")
If dr2 IsNot Nothing And dr3("加工数量") = Nothing Then
dr3("加工数量") = dr2("合格品")
End If
Next