FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Búsqueda incremental en xHarbour
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Búsqueda incremental en xHarbour
Posted: Wed Oct 25, 2006 07:36 PM
En Clipper+Fivewin el siguiente código funciona correctamente, es decir cada vez que se introduce una letra en el GET el Listbox se mueve hasta el registro que contiene esas letras, sin embargo con FWH el Listbox no se mueve conforme se van introduciendo letras, solamente cuando se pulsa la tecla retroceso después de introdocir una cadena. Por favor, pueden echarle un vistazo al código ?, tal vez sea necesaria alguna optimización para xHarbour pero no encuentro que puede ser:

 REDEFINE GET oGet VAR cText ID 801 PICTURE "@!" OF oDlg;
     ON CHANGE ( Self:Assign(),;
     Locator(""+SubStr(cText,1,Self:nPos-1)+Upper(Chr( nKey )),oLbx,cUsaBase) )


*********#######*****************
FUNCTION LOCATOR(cKey,oB,cUsaBase)
*********#######*****************
// oB = TWBrowse Object, cKey = Contenido del Get
local nSeekrec
//
nSeekrec:=(cUsaBase)->(Recno())
IF GetASyncKey( VK_BACK )
cKey := SubStr(cKey,1,Len(cKey)-1)
EndIF

(cUsaBase)->(DbSeek(cKey,.T.))
If !Found()
GO nSeekrec
EndIF
//
oB:Refresh()
//
RETURN( NIL )
//
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Búsqueda incremental en xHarbour
Posted: Wed Oct 25, 2006 10:39 PM

Manuel,

Aqui tienes un ejemplo completo:

http://fivetechsoft.com/forums/viewtopi ... ncremental

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Búsqueda incremental en xHarbour
Posted: Thu Oct 26, 2006 05:23 AM

que tal manuel,
yo uso la busqueda incremental en la msgbar con la twbrowse tee paso un ejemplo de su uso, espero te sirva:

LOCAL cDefaulMsg:=""
DEFINE DIALOG oDls bla bla bla...
REDEFINE LISTBOX oBrs ;
FIELDS (oDCli)->Nombre, (oDCli)->Codigo bla bla bla ....

oBrs:bSeek := {|lRet| oBrs:DbfSeek(.T.) }
oBrs:bUpdateBuffer:= {|| UpdateBuffer( oDls:oMsgBar, ;
cDefaultMsg, oBrs:cBuffer ) }

  ACTIVATE DIALOG oDls CENTERED;
       ON INIT MsgBarra(oDls,cDefaultMsg)

STAT FUNCTION MsgBarra(oDls,cDefaultMsg)
SET MESSAGE OF oDls TO cDefaultMsg NOINSET
RETURN Nil

FUNCTION UpdateBuffer( oMsgBar, cDefaultMsg, cBuffer )
local nClrText:= oMsgBar:nClrText
local cMsg, oFont

DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0,-10 BOLD

if Len( cBuffer ) > 0
   cMsg:= "Buscando: " + upper(cBuffer)
   oMsgBar:nClrText:= CLR_BLUE
   oMsgBar:SetFont(oFont)
else
   cMsg:= cDefaultMsg
endif
oMsgBar:SetMsg( PadR( cMsg ,200) )
oMsgBar:nClrText:= nClrText
oFont:End()

return Nil

Salu2
Paco

____________________

Paco
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Búsqueda incremental en xHarbour
Posted: Thu Oct 26, 2006 11:30 AM

Gracias Antonio y Francisco. Lo pruebo.

Un saludo,
Manuel

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC

Continue the discussion