2009-03-24 6 views
1

현재 엑셀 워크 시트의 필수 데이터를 읽고 MSFlexGrid에 내뱉는 VB6 프로그램이 있습니다.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

그러나, 당신이 첫 번째 열의 순서를 엉망으로 볼 수 있습니다. 데이터를 먼저 occurences로 정렬하길 원하지만 동일한 양의 데이터가있는 경우 작업별로 정렬해야합니다. 아무도 이것을 성취 할 수있는 방법을 알고 있습니까?

답변

1

MSFlexGrid는 열을 왼쪽에서 오른쪽으로 정렬하고 항상 같은 순서 (내림차순/오름차순)로 정렬하여 여러 열의 데이터를 정렬합니다. 따라서 목표를 달성하기 위해 열의 "발생"과 ​​"작업"을 바꿀 수 있습니다.

Elsewhise, 나는 here 멋진 MSFlexGrid 컬렉션을 발견했으며 다중 열 정렬을 위해 하나의 항목도 있습니다. "여러 열 정렬"항목을 찾습니다. 그것을 테스트하지 않았지만 시도해볼 수 있습니다.