VB6 - 如何使用MSFlexGrid进行多级排序?

时间:2009-03-24 17:50:36

标签: sorting gridview vb6 msflexgrid

我目前有一个VB6程序,它必须从excel工作表中读取数据并将其吐出到MSFlexGrid中。

下面是读入的Excel工作表数据。数据填入表格左半部分的出现列。


(来源:dipzo.com

然后,VB6应用程序将此数据读入多维数组,然后将其输入MSFlexGrid对象。 以下是执行此操作的代码:

Private Sub GridSort(temp() As String)
fgData.Rows = UBound(temp)
x = 0
 Do While x < fgData.Rows
    fgData.Row = x
    fgData.Col = 0
    fgData.Text = temp(x, 0)
    fgData.Col = 1
    fgData.Text = temp(x, 1)
    x = x + 1
  Loop
  fgData.ColSel = 1
  fgData.Sort = flexSortGenericDescending
  x = 0
  Do While x < fgData.Rows
    fgData.Row = x
    fgData.Col = 0
    temp(x, 0) = fgData.Text
    fgData.Col = 1
    temp(x, 1) = fgData.Text
    x = x + 1
  Loop

End Sub

现在这在一定程度上有效。它按出现次数和输出对数据进行排序:


(来源:dipzo.com

但是,您可以看到它搞砸了第一列的顺序。我希望数据首先按出现次数进行排序,但是对于具有相同出现次数的数据,我希望它们按操作排序。有没有人知道实现这个目标的方法?

1 个答案:

答案 0 :(得分:1)

MSFlexGrid通过按列从左到右排序并始终按相同顺序(降序/升序)对多列数据进行排序。因此,您可以交换“出现”和“操作”列来实现您的目标。

Elsewhise,我发现了here一个很好的MSFlexGrid函数集合,还有一个用于多列排序的条目。查找条目“排序多列”。没有测试,但你可以尝试一下。

相关问题