I once created a simple utility to browse a table where the fields were sorted alphabetically. You can easily change the code to work as you need. I am about to go to bed, if not I could have done it for you.
[pre]*Brw.prg
Lparameters llReverse, lcMore
Local laDummy[1], ;
lcFieldList As String, ;
lnMaxFields As Number, ;
lnX As Number
If Empty(Dbf())
Return
Endif
If Pcount()<2 Or Vartype(lcMore)#'C'
lcMore=''
Endif
lnMaxFields = Afields(laDummy)
If llReverse
Asort(laDummy, 1, 0, 1, 1)
Else
Asort(laDummy, 1, 0, 0, 1)
Endif
lcFieldList = ''
For lnX = 1 To lnMaxFields
lcFieldList = lcFieldList + laDummy(lnX, 1) + ','
Endfor
lcFieldList = Left(lcFieldList, Len(lcFieldList) - 1) + ' ' + lcMore
Browse Normal Fields &lcFieldList[/pre]