2009-03-24 6 views
1

Ich habe derzeit ein VB6-Programm, dass essential liest Daten aus einem Excel-Arbeitsblatt und spuckt es in ein MSFlexGrid aus.VB6 - Wie sortiere ich mehrstufig mit MSFlexGrid?

Unten sind die Daten der Excel-Tabelle, die eingelesen werden. Die Daten werden in die Häufigkeitsspalte für die linke Hälfte der Tabelle eingetragen.

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

Die VB6 Anwendung dann diese Daten in eine mehrdimensionale Array gelesen, die dann in einem MSFlexGrid Objekt zugeführt wird. Hier ist der Code zu tun, dass:

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 

Nun ist diese zu einem gewissen Grad funktioniert. Es sortiert die Daten von Vorkommnissen und Ausgänge so:

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

Allerdings können Sie sehen, dass es die Reihenfolge der ersten Spalte vermasselt. Ich möchte, dass die Daten zuerst nach Vorkommen sortiert werden, aber für Daten mit der gleichen Anzahl an Vorkommen möchte ich, dass sie nach Operationen sortiert werden. Kennt jemand einen Weg, dies zu erreichen?

Antwort

1

Das MSFlexGrid sortiert Daten in mehreren Spalten, indem die Spalten von links nach rechts und immer in der gleichen Reihenfolge (absteigend/aufsteigend) sortiert werden. Sie können also die Spalten "Vorkommen" und "Operation" wechseln, um Ihr Ziel zu erreichen.

Elsewhise, ich fand here eine schöne Sammlung von MSFlexGrid-Funktionen und es gibt auch einen Eintrag für Multi-Spalten-Sortierung. Suchen Sie nach dem Eintrag "Mehrere Spalten sortieren". Habe es nicht getestet, aber du könntest es versuchen.