use SomeTable dime ti[1] ? GetTagInfo(@ti) *-------------------------------------------------------------------------- function GetTagInfo(ti, WorkAreaOrAlias) if( empty(WorkAreaOrAlias) ) WorkAreaOrAlias = select(0) endif local i i = 1 if( !empty(cdx(1, WorkAreaOrAlias)) ) for i = 1 to tagcount(cdx(1, WorkAreaOrAlias), WorkAreaOrAlias) dime ti[i, 6] ti[i, 1] = tag(cdx(1, WorkAreaOrAlias), i, WorkAreaOrAlias) ti[i, 2] = iif(Primary(i, WorkAreaOrAlias), ; 'P', ; iif(Candidate(i, WorkAreaOrAlias), ; 'C', ; iif(Unique(i, WorkAreaOrAlias), ; 'U', ; 'R' ; ) ; ) ; ) ti[i, 3] = sys(14, i, WorkAreaOrAlias) ti[i, 4] = sys(2021, i, WorkAreaOrAlias) ti[i, 5] = iif( !descending(i, WorkAreaOrAlias), 'ASCENDING', 'DESCENDING') ti[i, 6] = idxcollate(i, WorkAreaOrAlias) endfor endif return (i-1) endfunc *---------------------------------------------------------------------------(3) analyze the cdx file with fopen()