Dim Nas As New List(Of String)
Dim l As Integer
‘将实时工序计算表里的bs列不重复值长度为18的放在集合里
For Each bbm As String In DataTables("实时工序计算表").GetValues("bs")
l = bbm.Length
判断bsl列的长度
If l = 18 Then
nas.Add(bbm)
End if
Next
Dim j As Integer
Dim dzl, gxhs, zzl As Double
’遍历集合里的每一项
For Each na As String In Nas
‘计算实时工序计算表里bs重复的条数m
Dim m As Integer = DataTables("实时工序计算表").Compute("count(bs)", "bs='" & na & "'")
’如果是多条,就把这个相同bs的m条的重量相加的和为:zzl
If m > 1 Then
zzl = DataTables("实时工序计算表").Compute("sum(重量)", "bs='" & na & "'")
End If
'下面取相同bs的单行工序耗时和重量取值,用重量比例加权重量,然后将m条数据逐条填入实际耗时列里,
For j = 1 To m
Dim dr As DataRow = DataTables("实时工序计算表").find("bs='" & na & "'")
If dr IsNot Nothing Then
gxhs = dr("工序耗时") ’取第一行的工序耗时和重量
dzl = dr("重量")
’当前行的重量dzl,占总重量zzl的比例乘以当前行的工序耗时gxhs等于当前行的实际耗时。
dr("实际耗时") = dzl * gxhs / zzl
End If
Next
Next