>>>>Use view myview >>>>for ix=1 to fcount() >>>> cField = field(i) >>>> index on &cField tag (field(ix)) >>>>endfor >>>>>>>>Than set your inGrid cSearchTag(s) accordingly.
** ** InGrid KeySeek method ** LOCAL cHoldAlias, cHoldTag *suspend m.cHoldAlias = ALIAS() cAliasToSearch = substr(this.parent.controlsource,1,at(".",this.parent.controlsource)-1) SELECT (THIS.Parent.Parent.RecordSource) if SEEK(UPPER(THIS.cSearchString),cAliasToSearch,this.cSeekTag) if cAliasToSearch # THIS.Parent.Parent.RecordSource =seek(eval(cAliasToSearch+"."+relation(1)),THIS.Parent.Parent.RecordSource,relation(1)) endif IF THIS.nHoldRecord#RECNO(THIS.Parent.Parent.RecordSource) THIS.lSeekMode=.T. ENDIF ELSE GO THIS.nHoldRecord in (THIS.Parent.Parent.RecordSource) ENDIF if cAliasToSearch = THIS.Parent.Parent.RecordSource and !empty(this.cOrderTag) set order to tag (this.cOrderTag) endif IF THIS.lSearchPreview THIS.Parent.Header1.Caption = THIS.cSearchString ENDIF IF USED(m.cHoldAlias) SELECT (m.cHoldAlias) ENDIFChanging only keyseek method lets the seek be performed based on controlsource and rec pointer moves to related rec in recordsource. But changing the order wouldn't be applicable for the child. So changed the gotfocus this way.
** ** InGrid Gotfocus ** LOCAL cHoldAlias IF THIS.lInGridActive IF THIS.lSeekMode THIS.lSeekMode = .F. ELSE IF THIS.lSearchPreview THIS.cHoldCaption = THIS.Parent.Header1.Caption ENDIF cAliasToSearch = ; substr(this.parent.controlsource,1,at(".",this.parent.controlsource)-1) cCurrAlias = THIS.Parent.Parent.RecordSource if cAliasToSearch # cCurrAlias dimension aControlSources[this.parent.parent.columncount] for ix=1 to alen(aControlSources,1) aControlSources[ix] = this.parent.parent.columns(ix).controlsource this.parent.parent.columns(ix).controlsource = "" endfor this.parent.parent.recordsource = "" mCrec = recno(cAliasToSearch) select (cCurrAlias) mRel = relation(1) set relation to set order to tag (mRel) select (cAliasToSearch) set relation to &mRel into (cCurrAlias) set skip to (cCurrAlias) goto mCRec in (cAliasToSearch) this.parent.parent.recordsource = cAliasToSearch for ix=1 to alen(aControlSources,1) this.parent.parent.columns(ix).controlsource = aControlSources[ix] endfor this.setfocus() endif IF !EMPTY(THIS.cOrderTag) m.cHoldAlias = ALIAS() SELECT (THIS.Parent.Parent.RecordSource) SET ORDER TO THIS.cOrderTag SELECT (m.cHoldAlias) else if !empty(this.cSeekTag) m.cHoldAlias = ALIAS() SELECT (THIS.Parent.Parent.RecordSource) SET ORDER TO tag (THIS.cSeekTag) SELECT (m.cHoldAlias) this.parent.parent.refresh endif ENDIF ENDIF ENDIFThis works as far as I could tested. Hope it helps.