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

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

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

image
(источник: 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

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

image
(источник: dipzo.com )

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

1 Ответ

1 голос
/ 24 марта 2009

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

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

...