Sorting VB6-如何使用MSFlexGrid进行多级排序?
我目前有一个VB6程序,它可以从excel工作表中读取数据,并将其输出到MSFlexGrid中 下面是读取的excel工作表数据。数据填充到表的左半部分的发生列中Sorting VB6-如何使用MSFlexGrid进行多级排序?,sorting,gridview,vb6,msflexgrid,Sorting,Gridview,Vb6,Msflexgrid,我目前有一个VB6程序,它可以从excel工作表中读取数据,并将其输出到MSFlexGrid中 下面是读取的excel工作表数据。数据填充到表的左半部分的发生列中 (来源:) 然后,VB6应用程序将该数据读取到多维数组中,然后将该数组馈送到MSFlexGrid对象中。 下面是执行此操作的代码: Private Sub GridSort(temp() As String) fgData.Rows = UBound(temp) x = 0 Do While x < fgData.Rows
(来源:) 然后,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
私有子网格排序(temp()作为字符串)
fgData.Rows=UBound(临时)
x=0
当x
现在这在一定程度上起作用了。它按事件和输出对数据进行排序,如下所示:
(来源:)
但是,您可以看到它打乱了第一列的顺序。我希望数据首先按发生次数排序,但对于发生次数相同的数据,我希望它们按操作排序。有人知道实现这一点的方法吗?MSFlexGrid通过从左到右排序列,并始终以相同的顺序(降序/升序)对多个列中的数据进行排序。因此,您可以交换“发生”和“操作”列以实现您的目标
除此之外,我还发现了一个很好的MSFlexGrid函数集合,还有一个用于多列排序的条目。查找条目“排序多个列”。没有测试它,但您可以尝试一下。MSFlexGrid通过从左到右对列进行排序,并始终按照相同的顺序(降序/升序)对多个列中的数据进行排序。因此,您可以交换“发生”和“操作”列以实现您的目标 除此之外,我还发现了一个很好的MSFlexGrid函数集合,还有一个用于多列排序的条目。查找条目“排序多个列”。没有测试,但你可以试试