gostaria da ajuda de voces para resolver esse pequeno problema: o fonte/rotina abaixo funciona perfeitamente para busca tecla por tecla quando o campo é numerico, ex. busca de um codigo de cliente. Automaticamente ela mostra o codigo que voce vai digitando de um cliente, ou conta, ou lançamento, etc, a busca é automatica também.
Tentei modifica-la para busca de texto (Ex. nome do cliente) e não estou tendo exito, gostaria do apoio dos nossos amigos do forum na tentativa de sanar mais esses problema do Dbedit.
Segue Fonte / Rotina:
Código: Selecionar todos
DECLARE array_nf[1]
array_nf[1] :='TRANS(numlcto,"9999999")+"³ "+TRANS(contalcto,"99")+" ³ "+DTOC(dtemlcto)+"³ "+DTOC(dtmvlcto)+"³ "+TRANS(ABS(valorlcto),"@E 9,999,999.99")+"³"+desctp+"³ "+tipo+"³"+ticado'
KEYBOARD CHR(32)
letra := 0
letra1:= ""
letra2:= ""
DBGOBOTTOM()
INKEY(0)
DBEDIT(05,1,18,77,array_nf,"colu",,"","")
DBGOBOTTOM()
DESKTOP()
RSTENV(TEL_EST)
RETURN(.T.)
*-----------------
FUNCTION colu
*-----------------
* Localizando por lan‡amento quando for digitado um numero...
tecla=LASTKEY()
IF tecla >= 48 .AND. tecla <= 57
IF LEN(LTRIM(STR(letra))) < 6
letra=VAL(CHR(tecla))
letra1=STR(letra)
letra2=letra2+letra1
letra=VAL(letra2)
ENDIF
ffseek := letra
SET SOFTSEEK ON
SET ORDER TO 2
DBSEEK(ffseek)
SET SOFTSEEK OFF
KEYBOARD CHR(176)
INKEY(0)
ELSEIF tecla <> 176
letra := 0
letra1:= ""
letra2:= ""
ENDIF
IF letra=0
@24,35 SAY PADC("BUSCAR: "+"_",30," ") COLOR("GR+/BG")
ELSE
@24,35 SAY PADC("BUSCAR: "+LTRIM(STR(letra))+"_",30," ") COLOR("GR+/BG")
ENDIF
Abraços
Erasmo.
