* Grid.init for each oColumn in this.columns lcField = upper(substr(oColumn.controlsource,; rat(".",oColumn.controlsource)+1)) oColumn.removeobject("header1") oColumn.addobject("myMSelHeader") for jsx = 1 to fcount(this.recordsource) if lcField == field(jsx,this.recordsource) oColumn.myMSelHeader.TagName="TAG"+padl(jsx,2,"0") endif endfor oColumn.myMSelHeader.visible = .t. endfor * Custom header define class myMSelHeader as header TagName = "" procedure click if !empty(this.tagname) set order to tag (this.tagname) else set order to 0 endif nTempCurrec = recno() this.parent.parent.refresh go nTempCurrec endproc enddefineI use this one with on the fly cursors and index them as "TAG"+padl(fieldnum,2,"0").