I have a similar issue where I allow the user to dblClick on any header in a view based grid to re-order. Since my parametized view is small, indexing is not a problem and faster than requery().
In my header dblclick method:
tagcounter=1
indexexists=.f.
do while !empty(tag(tagcounter)) and !indexexists
if tag(tagcounter)=upper(substr(this.parent.controlsource,;
at('.',this.parent.controlsource)+1))
indexexists=.t.
endif
tagcounter=tagcounter+1
enddo
if !indexexists
index on substr(this.parent.controlsource,;
at('.',this.parent.controlsource)+1);
TAG substr(this.parent.controlsource,;
at('.',this.parent.controlsource)+1)
ELSE
set order to substr(this.parent.controlsource,;
at('.',this.parent.controlsource)+1)
endif
this.parent.parent.refresh