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
Теперь это работает в определенной степени. Он сортирует данные по событиям и выводам так:
Тем не менее, вы можете видеть, что он испортил порядок первого столбца. Сначала я хочу, чтобы данные сортировались по вхождениям, но для данных с таким же количеством вхождений я хочу, чтобы они сортировались по операциям. Кто-нибудь знает способ сделать это?
1 ответ
MSFlexGrid сортирует данные по нескольким столбцам путем сортировки столбцов слева направо и всегда в одном и том же порядке (по убыванию / возрастанию). Таким образом, вы можете поменять местами столбцы "вхождение" и "операция" для достижения своей цели.
Кроме того, я нашел здесь хорошую коллекцию функций MSFlexGrid, а также есть одна запись для сортировки по нескольким столбцам. Ищите запись "Сортировка нескольких столбцов". Не проверял, но вы могли бы попробовать.