Olá Marco, faz um teste, acho que vai dar certo.
#include "minigui.ch"
Function Main
Priv aRows [20] [3]
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 480 ;
HEIGHT 300 ;
TITLE 'Ordenar Grid' ;
MAIN
aRows [1] := {'Simpson','Homer','555-5555'}
aRows [2] := {'Mulder','Fox','324-6432'}
aRows [3] := {'Smart','Max','432-5892'}
aRows [4] := {'Grillo','Pepe','894-2332'}
aRows [5] := {'Kirk','James','346-9873'}
aRows [6] := {'Barriga','Carlos','394-9654'}
aRows [7] := {'Flanders','Ned','435-3211'}
aRows [8] := {'Smith','John','123-1234'}
aRows [9] := {'Pedemonti','Flavio','000-0000'}
aRows [10] := {'Gomez','Juan','583-4832'}
aRows [11] := {'Fernandez','Raul','321-4332'}
aRows [12] := {'Borges','Javier','326-9430'}
aRows [13] := {'Alvarez','Alberto','543-7898'}
aRows [14] := {'Gonzalez','Ambo','437-8473'}
aRows [15] := {'Batistuta','Gol','485-2843'}
aRows [16] := {'Vinazzi','Amigo','394-5983'}
aRows [17] := {'Pedemonti','Flavio','534-7984'}
aRows [18] := {'Samarbide','Armando','854-7873'}
aRows [19] := {'Pradon','Alejandra','???-????'}
aRows [20] := {'Reyes','Monica','432-5836'}
@ 10,10 GRID Grid_1 ;
WIDTH 445 ;
HEIGHT 240 ;
HEADERS {'Last Name','First Name','Phone'} ;
WIDTHS {140,140,140};
ITEMS aRows ;
VALUE 1 EDIT ;
TOOLTIP 'Editable Grid Control' ;
ON HEADCLICK { {||Ordem(1)} , {||Ordem(2)} , {||Ordem(3)} } ;
JUSTIFY { BROWSE_JTFY_LEFT,BROWSE_JTFY_CENTER, BROWSE_JTFY_CENTER }
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
Func Ordem(nOrd)
aSort(aRows,,,{|x,y| x[nOrd] < y[nOrd]})
DELETE ITEM ALL FROM Grid_1 OF Form_1
FOR i=1 TO LEN(aRows)
Form_1.Grid_1.AddItem ( {aRows[i,1],aRows[i,2],aRows[i,3]} )
NEXT
Form_1.Grid_1.SetFocus
Retu Nil
Abraços,