在vb6.0中
mshflexgrid控件里有N条纪录,RT:序号 料号 数量 组
1 123455 1.2000 01
2 343587 1.0003 0
3 222222 2.2000 0
4 343585 1.0003 05
5 351351 2.0000 0
6 687486 3.0000 07
7 988754 4.0000 02
8 474845 2.2222 08
9 444845 2.2222 07
....
全部的料号都不相同的,只想通过这个控件显示出来的"组的值"进行相同合并,
(忽略组的值是0的,是0的不理会因为要保留)然后相同组值的数量相加,然后料号显示最大数量的一条。另一条则不要请问如何处理? 多谢!上次多谢Tiger_Zhao的回答,下面的代码只能在组的值不是0并且排序的情况下才可以,还有我还需要合并后显示最大数量的那条纪录?!
With MSHFlexGrid1
.Sort = 9
i = .FixedRows
While i < .Rows - 1
If Val(.TextMatrix(i, 3)) = Val(.TextMatrix(i + 1, 3)) Then
.TextMatrix(i + 1, 2) = Val(.TextMatrix(i, 2)) + Val(.TextMatrix(i + 1, 2))
.RemoveItem i
Else
i = i + 1
End If
Wend
End With请高手和Tiger_Zhao帮下我
mshflexgrid控件里有N条纪录,RT:序号 料号 数量 组
1 123455 1.2000 01
2 343587 1.0003 0
3 222222 2.2000 0
4 343585 1.0003 05
5 351351 2.0000 0
6 687486 3.0000 07
7 988754 4.0000 02
8 474845 2.2222 08
9 444845 2.2222 07
....
全部的料号都不相同的,只想通过这个控件显示出来的"组的值"进行相同合并,
(忽略组的值是0的,是0的不理会因为要保留)然后相同组值的数量相加,然后料号显示最大数量的一条。另一条则不要请问如何处理? 多谢!上次多谢Tiger_Zhao的回答,下面的代码只能在组的值不是0并且排序的情况下才可以,还有我还需要合并后显示最大数量的那条纪录?!
With MSHFlexGrid1
.Sort = 9
i = .FixedRows
While i < .Rows - 1
If Val(.TextMatrix(i, 3)) = Val(.TextMatrix(i + 1, 3)) Then
.TextMatrix(i + 1, 2) = Val(.TextMatrix(i, 2)) + Val(.TextMatrix(i + 1, 2))
.RemoveItem i
Else
i = i + 1
End If
Wend
End With请高手和Tiger_Zhao帮下我
With M
For I = 1 To .Rows - 1
If .TextMatrix(I, 3) <> 0 Then
For J = I + 1 To .Rows - 1
If .TextMatrix(J, 3) = .TextMatrix(I, 3) Then
If Val(.TextMatrix(J, 1)) > Val(.TextMatrix(I, 1)) Then .TextMatrix(I, 1) = .TextMatrix(J, 1)
.TextMatrix(I, 2) = Val(.TextMatrix(I, 2)) + Val(.TextMatrix(J, 2))
.TextMatrix(J, 0) = "-1"
End If
Next J
End If
Next I
For I = .Rows - 1 To 1 Step -1
If .TextMatrix(I, 0) = "-1" Then .RemoveItem I
Next I
End With