Carlos:
Me es un poco dif铆cil postear todo el c贸digo porque est谩 bastante imbricado en el programa, pero no tiene ning煤n misterio. En resumen es as铆:
.... etc
oBrw := TcBrowse():New(...) // El browse de clientes. Tiene seis columnas.
Redefine Get cBuscar Of Self Valid ::Filtrar(cBuscar, oBrw) // Un campo get para buscar el cliente. Lo busca al pulsar intro
.... etc
//--------------------------------------------------------------------
Method Filtrar(cBuscar, oBrw) // Presentar todos los clientes que CONTENGAN el string cBuscar y refrescar el Browse oBrw
Select CLIENTES
cFiltro := "'"+Alltrim(Upper(cBuscar)) + "' $ Upper(NOMBRE)"
bFiltro := cToBlock(cFiltro)
DbSetFilter(bFiltro, cFiltro)
CLIENTES->(dbGoTop())
oBrw:GoTop()
oBrw:Refresh()
Return .T.
No utilizo Data Dictionary ni ninguna otra caracter铆stica avanzada de ADS. Tan solo lo he instalado en el PC que tiene los datos y he copiado las tres DLLs a las carpetas de programa en todos los ordenadores.
Efectivamente, al pulsar Intro el primer registro filtrado aparece inmediatamente en la primera l铆nea del Browse. El resto de l铆neas se mantienen como antes, o sea, sin filtrar. Al cabo de los 15 segundos, se refresca el Browse: Desaparecen de golpe las lineas no relevantes y aparecen de golpe los -por ejemplo- cuatro o cinco registros restantes que s铆 cumplen la condici贸n de filtro.
Antes de comprar la versi贸n comercial de ADS s贸lo quiero saber si este comportamiento es normal para la versi贸n de prueba y la de pago es m谩s r谩pida o si es que estoy haciendo algo mal.
Gracias por vuestro tiempo
Rafael