hola:
si lo que necesitas es una busqueda sensitiva, yo lo hago lo siguiente...
primero que nada es indexar el campo normalmente...
use clientes alias clie new
index on clie->nombre tag 1 to "nombre.cdx"
yo utilizo un browse incrustado en un dialogo x
SELECT CLIE ; SET ORDER TO 1 ; DBGOTOP()
REDEFINE BROWSE oBrw CELLED ALIAS "CLIE" COLOR GetSysColor(8), GetSysColor(5) ID 100 CURSOR oPun OF oDlg
ADD COLUMN TO oBrw HEADER "CODE" DATA FieldWBlock( "CODE" , Select() ) SIZE 30 PIXELS 3DLOOK TRUE,TRUE,FALSE
ADD COLUMN TO oBrw HEADER "NOMBRE" DATA FieldWBlock( "NOMBRE" , Select() ) SIZE 340 PIXELS 3DLOOK TRUE,TRUE,FALSE
oBrw:nHeightHead += 9
oBrw:nHeightFoot += 9
oBrw:nHeightCell += 2.5
oBrw:nLineStyle := LINES_3D
oBrw:bKeyDown := {|nKey| iif(nKey > 32, Busca3(CHR(nKey),oBrw), MsgBeep() )} // Aqui está el truco
....
....
....
STATIC FUNCTION Busca3( nKey, oBrw )
LOCAL cVar
// esto es para buscar utilizando el keyPAD numerico
IF CHR(nKey) = "a" ; cVar := "1"+SPACE(29)
ELSEIF CHR(nKey) = "b" ; cVar := "2"+SPACE(29)
ELSEIF CHR(nKey) = "c" ; cVar := "3"+SPACE(29)
ELSEIF CHR(nKey) = "d" ; cVar := "4"+SPACE(29)
ELSEIF CHR(nKey) = "e" ; cVar := "5"+SPACE(29)
ELSEIF CHR(nKey) = "f" ; cVar := "6"+SPACE(29)
ELSEIF CHR(nKey) = "g" ; cVar := "7"+SPACE(29)
ELSEIF CHR(nKey) = "h" ; cVar := "8"+SPACE(29)
ELSEIF CHR(nKey) = "i" ; cVar := "9"+SPACE(29)
ELSEIF CHR(nKey) = "`" ; cVar := "0"+SPACE(29)
ELSEIF CHR(nKey) = "b" ; cVar := "2"+SPACE(29)
ELSEIF CHR(nKey) = "n" ; cVar := "."+SPACE(29)
ELSEIF CHR(nKey) = "o" ; cVar := "/"+SPACE(29)
ELSEIF CHR(nKey) = "j" ; cVar := "*"+SPACE(29)
ELSEIF CHR(nKey) = "m" ; cVar := "-"+SPACE(29)
ELSEIF CHR(nKey) = "k" ; cVar := "+"+SPACE(29)
ELSE ; cVar := CHR(nKey)+SPACE(29)
ENDIF
MsgGet("Busqueda Sencitiva...","Buscar por Nombre...", @cVar,,47 )
SELECT CLIE ; SET ORDER TO 1 ; SEEK ALLTRIM(cVar) SOFTSEEK
oBrw:UpStable()
oBrw:Refresh(.t.)
RETURN NIL
El resultado es cuando presiono una letra, el browse se mueve en pantalla segun la coincidencia que encuentre...
espero que sea lo que estas buscando