*Form.init With this.myGrid .AddProperty('CurrentOrder',0) Select Recno() as RcNo, 1 as OrderCol ; from (.recordsource) ; order by OrderCol ; into cursor crsOrdering ; readwrite Select crsOrdering Index On RcNo tag rcno Select (.RecordSource) .SetAll("DynamicBackColor", ; "IIF(Seek(Recno(this.recordsource),'crsOrdering','rcno')"+; " and Recno('crsOrdering')%2=0,0xC0C0C0,0xFFFFFF)", "Column") endwith *MyGrid.refresh Local lcOrder, lnOrder With This Select (.RecordSource) lnOrder = Val(Sys(21)) If .CurrentOrder # m.lnOrder lcOrder = Iif(m.lnOrder = 0,'1',Key(m.lnOrder)) Select Recno() As RcNo, &lcOrder As OrderCol ; from (.RecordSource) ; order By OrderCol ; into Cursor crsOrdering ; readwrite Select crsOrdering Index On RcNo Tag RcNo Select (.RecordSource) .CurrentOrder = m.lnOrder Endif Endwith *Sample button click Select myTable Set Order To Tag 'SomeTag' thisform.myGrid.Refresh()Cetin