Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting VB6-如何使用MSFlexGrid进行多级排序?_Sorting_Gridview_Vb6_Msflexgrid - Fatal编程技术网

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

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程序,它可以从excel工作表中读取数据,并将其输出到MSFlexGrid中

下面是读取的excel工作表数据。数据填充到表的左半部分的发生列中


(来源:)

然后,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函数集合,还有一个用于多列排序的条目。查找条目“排序多个列”。没有测试,但你可以试试