Ao clicar no Header da coluna faço a ordenação do vetor ascendente/descendente : função OrdenaArray()
Definição do array
oBrowse1:freeze := 1
oBrowse1:aArray := {}
oBrowse1:HighlightStyle := 1
oBrowse1:sepColor := 16711680
oBrowse1:tcolorSel := Hwg_Rgb(0, 0, 0)
oBrowse1:bcolorSel := 16776960
oBrowse1:headColor := 16711680
oBrowse1:lAdjRight := .F.
oBrowse1:AddColumn( HColumn():New('Código', hwg_ColumnArBlock() ,'C', 6, 2 ,.F.,0,,'@R 99.99',,,,,{|| OrdenaArray(1) },,,,))
oBrowse1:AddColumn( HColumn():New('Ativo', hwg_ColumnArBlock() ,'C', 5, 0 ,.F.,1,1,,,,,,{|| OrdenaArray(2) },,,,))
oBrowse1:AddColumn( HColumn():New('Sigla', hwg_ColumnArBlock() ,'C', 20, 0 ,.F.,0,,,,,,,{|| OrdenaArray(3) },,,,))
oBrowse1:AddColumn( HColumn():New('Descrição', hwg_ColumnArBlock() ,'C', 50, 0 ,.F.,0,,,,,,,{|| OrdenaArray(4) },,,,))
oBrowse1:AddColumn( HColumn():New('Responsável', hwg_ColumnArBlock() ,'C', 40, 0 ,.F.,0,,,,,,,{|| OrdenaArray(5) },,,,))
oBrowse1:AddColumn( HColumn():New('Cargo', hwg_ColumnArBlock() ,'C', 60, 0 ,.F.,0,,,,,,,{|| OrdenaArray(6) },,,,))
oBrowse1:AddColumn( HColumn():New('Recebe Circular?', hwg_ColumnArBlock() ,'C',16, 0 ,.F.,1,1,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Rec. Circ. Mensal?', hwg_ColumnArBlock() ,'C',20, 0 ,.F.,1,1,,,,,,,,,,))
Função Ordena Array
FUNCTION OrdenaArray( nPos )
THREAD STATIC lDescend := .F.
nColBrow := nPos
IF ! lDescend
aSort( ThisForm:oBrowse1:aArray ,,, {|x,y| y[nColBrow] > x[nColBrow] } )
lDescend := .T.
ELSE
aSort( ThisForm:oBrowse1:aArray ,,, {|x,y| x[nColBrow] > y[nColBrow] } )
lDescend := .F.
ENDIF
ThisForm:oBrowse1:Refresh()
RETURN Nil