Cristobal.
Muchisimas gracias.
Efectivamente, asi la he finalizado, comparando valores de registro anterior y registro donde se colocó el cursor, y el de menor diferencia lo tomo como el mas aproximado.
Aqui esta la funcioncita, algo "chapiolla", pero me funciona.
if misgets("Buscar valor aproximado","","Introduzca valor",@nVal,"lupa",.t.)
if !(cAlias)->(dbSeek(nVal,.t.))
msginfo("No encontrado valor exacto")
nRec := Recno()
dbskip(-1)
nValAnt := Abs( nVal - field->debe )
dbskip()
nValPos := Abs( nVal - field->debe )
nValAprox := Min(nValAnt,nValPos)
MsgInfo("Valor aproximado es "+Transform(nValAprox,"999,999,999.99"))
if nValAnt < nValPos
dbskip(-1)
endif
oBrw3:Refresh()
MsgInfo("Valor a buscar " + Transform(nVal,"999,999.99") +CRLF+;
"Valor anterior " + Transform(nValAnt,"999,999.99") +CRLF+;
"Valor Posterior " + Transform(nValPos,"999,999.99") +CRLF+;
"Valor Aproximado " + Transform(nValAProx,"999,999.99") )
endif
endif
Saludos, y nuevamente agradezco tu interés.
Francisco
EDITADO...
Francisco J. AlegrÃa P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql