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

问题描述 投票:1回答:1

我目前有一个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

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

sorting gridview vb6 msflexgrid
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.