Asort(myarray) && Sort on 1st col axsort(@myarray,1,5,1) && Sort on 5th desc - keep previous sort axsort(@myarray,5,2) && Sort on 2nd - keep previous sort ****************** *!* Author:Cbasoz *!* function axSort *!* Extended array sort *!* taSortArray - Array to sort passed by ref *!* tnKeepColumn - Column number that's already sorted on *!* tnSortColumn - Column to sort *!* tnDirection - Omitted or 0 ascending, else descending ****************** Function axsort Lparameters taSortArray, tnKeepColumn, tnSortColumn, tnDirection tnDirection = iif(empty(m.tnDirection),0,1) lnRows = alen(m.taSortArray,1) lnRows2Sort=0 lnSortStart = m.tnSortColumn luElem = taSortArray[1,m.tnKeepcolumn] For ix=1 to m.lnRows If taSortArray[m.ix,m.tnKeepcolumn] # luElem Asort(m.taSortArray,m.lnSortStart, m.lnRows2Sort, m.tnDirection) lnSortStart = (m.ix-1)*alen(m.taSortArray,2)+m.tnSortColumn lnRows2Sort = 1 luElem = taSortArray[m.ix,m.tnKeepcolumn] Else lnRows2Sort = m.lnRows2Sort+1 Endif EndforCetin