FUNCTION LISTSTRU LPARAMETERS lcFile Local lcVar,lcFiletemp,lcSelect,lcOriginal lcSelect=Select() lcFiletemp=SUBSTR(SYS(2015), 3) lcOriginal=ALIAS() IF !VARTYPE(lcFile)='L' IF !FILE(lcFile+'.DBF') =MESSAGEBOX(lcFile+'.DBF does not exist!') RETURN ELSE SELECT 0 USE (lcFile) AGAIN SHARED ENDIF ELSE IF EMPTY(DBF()) =MESSAGEBOX('No file in use!') RETURN ELSE SELECT 0 USE (lcOriginal) AGAIN SHARED ENDIF ENDIF lcVar=JUSTSTEM(DBF()) LIST STRU TO FILE (lcFiletemp) NOCONSOLE USE CREATE CURSOR curstemp (Pos n(5), Dummy1 c(2), Name c(16), Type c(20), Width n(5), Dec n(7), Dummy2 c(5),; Index c(6), Collate c(11),Nullz c(2)) APPEND FROM (lcFiletemp) SDF for pos>0 ERAS (lcFiletemp+'.TXT') GO TOP BROW LAST NOEDIT NOAPPEND NODELETE TITLE 'Structure of '+lcVar ; Fields Pos, Name, Type, Width, Dec:P='@Z 9',Index,Collate,Nulls=IIF( Nullz='No',.F. ,.T. ) IF !EMPTY(lcOriginal) SELECT (lcOriginal) ELSE SELECT (lcSelect) ENDIF USE IN CURSTEMP RETURNNB! I did not include much error handling... :-)