2009-03-24 6 views
1

В настоящее время у меня есть программа VB6, которая существенно считывает данные с листа Excel и выплевывает его в MSFlexGrid.VB6 - Как сделать многоуровневую сортировку с 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 сортирует данные в нескольких столбцах, сортируя столбцы слева направо и всегда в одном порядке (по убыванию/по возрастанию). Таким образом, вы можете поменять местами столбцы «происхождение» и «операция», чтобы достичь своей цели.

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

Смежные вопросы