在vb6.0中
mshflexgrid控件里有N条纪录,RT:序号   料号       数量       组
1      123455     1.2000     01
2      343585     1.0003     05
3      351351     2.0000     06
4      687486     3.0000     07
5      988754     4.0000     07
6      874845     2.2222     09
....
全部的料号都不相同的,只想通过这个控件显示出来的"组的值"进行相同合并,并把数量相加,然后料号显示最大数量的一条。另一条则不要请问如何处理? 多谢!

解决方案 »

  1.   

    这个在grid里处理麻烦,在sql上处理好了吧。小F?
      

  2.   


    数据从哪里来的?如果是来自数据库表,一条 SQL 语句就可以拿下。否则,需要写一段代码来算。
      

  3.   

    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
      

  4.   


    数据是从另一个系统出来的,所以无法实现SQL的操作.
      

  5.   

    1)将数据按照 [组],[料号] 排序
    2)逐行循环:
     如果下一行的[组]与本行相同,将本行的[数量]加到下一行中,删除本行。
    Option ExplicitPrivate Sub Command1_Click()
        Dim i As Long
        With MSHFlexGrid1
            .Sort = 9 ' flexSortCustom
            
            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
    End SubPrivate Sub Form_Load()
        Dim aValues
        Dim i As Long
        
        aValues = Array("序号", "料号", "数量", "组", _
                        1, 123455, 1.2, 1, _
                        2, 343585, 1.0003, 5, _
                        3, 351351, 2#, 6, _
                        4, 687486, 3#, 7, _
                        5, 988754, 4#, 7, _
                        6, 874845, 2.2222, 9)
        With MSHFlexGrid1
            .FixedCols = 0
            .Cols = 4
            .Rows = 7
            
            For i = 0 To UBound(aValues)
                .TextArray(i) = aValues(i)
            Next
        End With
    End SubPrivate Sub MSHFlexGrid1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer)
        Dim cmp1 As Integer
        Dim cmp2 As Integer
        
        With MSHFlexGrid1
            cmp1 = Sgn(Val(.TextMatrix(Row1, 3)) - Val(.TextMatrix(Row2, 3)))
            cmp2 = Sgn(Val(.TextMatrix(Row1, 1)) - Val(.TextMatrix(Row2, 1)))
        End With
        Cmp = Sgn(cmp1 * 10 + cmp2)
    End Sub
      

  6.   

    Tiger_Zhao. 你帮我解决烦题了,感谢!