En la versión de mi xbrowse no tengo implentado los métodos para trabajar con recordsets, por lo tanto he tenido que generarlos siguiendo muchos ejemplos que se dan en el foro.
Es así que implementé la búsqueda incremental. En el blog de Biel encontré lo que buscaba, lo probé y funcionó bien, excepto por el problema que muchos tuvieron: y es que al ir digitando una letra desaparecen los headers, footers y la barra lateral izquierda del xbrowse, que sólo aparecen nuevamente al ir al inicio o al final.
En muchos posts relacionados a este caso se da la solución comentando :
- Code: Select all Expand view RUN
//::lRefreshOnlyData := .t.
en el método seek(). Este método no trabaja con recordsets por lo que no me sirve. Entonces qué puedo hacer para solucionarlo?
Este es parte del código
- Code: Select all Expand view RUN
oBrw:bSeek := { | c | Busca(c,oRs,oBrw) }
oBrw:oSeek := oSay
Y esta es la funcion que busca
- Code: Select all Expand view RUN
Function Busca(c,oRs,oBrw)
local nlen:=Len(c)
local ncol:=oBrw:nColSel
local cField:=oBrw:acols[ncol]:cheader
static nLenAnt
default nLenAnt:=0
If len(c)>1
if(nLenAnt>nLen,oRs:MoveFirst(),)
oRs:Find(cField+space(1)+"LIKE '"+c+"*'",,1)
else
oRs:MoveFirst()
If !Empty(c)
oRs:Find(cField+space(1)+"LIKE '"+c+"*'",,1)
ENDIF
endif
return !(oRs:Eof .or. oRs:Bof)
Dónde colocaré el código que regenere lo borrado?
Gracias Anticipadas
Marcelo Jingo