在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帮下我

解决方案 »

  1.   

    Dim I As Integer, J As Integer
    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