O yo no entiendo bien,o TSBrowse no está diseñado para funcionar con filtros, aunque sin con scopes sobre indices. Después de trabajar un poco logré que me funcionara bien, haciendo los siguientes cambios:
Agregar
DATA bFilter
METHOD SetbFilter(bFilter);
INLINE (::cAlias)->(dbSetFilter(::bFilter:=bFilter)),;
if(::lPainted,::ResetBarPos(.T.),nil),;
::Default(),;
::GoTop(),;
::Refresh()
Sustituir
DATA nLen
por
METHOD nLen
Local nLen, nRec
IF ::lIsDbf
nRec:=(::cAlias)->(RecNo())
IF !Empty(::bFilter)
COUNT FOR (::cAlias)->(Eval(::bFilter)) TO nLen
ELSE
nLen:=::RecCount()
ENDIF
(::cAlias)->(dbGoto(nRec))
ELSE
nLen:=Len(::aArray)
ENDIF
RETURN nLen
Espero sea útil para alguien y agradeceré las sugerencias
César E. Lozada