?Set_Order(cTag, cAlias) PROCEDURE Set_Order *call like Set_Order(cTag[, cAlias]) LPARAMETERS; tcTag,; tcAlias LOCAL; lnOldSelect,; llReturn lnOldSelect = SELECT() IF EMPTY(m.tcAlias) tcAlias = ALIAS() ELSE Select (m.tcAlias) ENDIF IF !EMPTY(TAGNO(m.tcTag,CDX(1,m.tcAlias))) *only if tag exists If Sys(22,SELECT(m.tcAlias)) == UPPER(m.lcTag) && current index tag If Descending(TAGNO(m.tcTag,CDX(1,m.tcAlias)),m.tcAlias) Set Order To (m.tcTag) In (m.tcAlias) Ascending Else Set Order To (m.tcTag) In (m.tcAlias) Descending Endif Else Set Order To (m.tcTag) In (m.tcAlias) Endif llReturn = .T. Endif SELECT (m.lnOldSelect) RETURN m.llReturn endproc