VB6 - Как сделать многоуровневую сортировку с MSFlexGrid?

В настоящее время у меня есть программа VB6, которая существенно считывает данные с листа Excel и выплевывает их в MSFlexGrid.

Ниже приведены данные листа Excel, которые считываются. Данные заполняются в столбце вхождения для левой половины таблицы.

http://www.dipzo.com/initial.PNG

Приложение 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

Теперь это работает в определенной степени. Он сортирует данные по событиям и выводам так:

http://www.dipzo.com/end.PNG

Тем не менее, вы можете видеть, что он испортил порядок первого столбца. Сначала я хочу, чтобы данные сортировались по вхождениям, но для данных с таким же количеством вхождений я хочу, чтобы они сортировались по операциям. Кто-нибудь знает способ сделать это?

1 ответ

MSFlexGrid сортирует данные по нескольким столбцам путем сортировки столбцов слева направо и всегда в одном и том же порядке (по убыванию / возрастанию). Таким образом, вы можете поменять местами столбцы "вхождение" и "операция" для достижения своей цели.

Кроме того, я нашел здесь хорошую коллекцию функций MSFlexGrid, а также есть одна запись для сортировки по нескольким столбцам. Ищите запись "Сортировка нескольких столбцов". Не проверял, но вы могли бы попробовать.

Другие вопросы по тегам