FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Busqueda incremental en wbrowse de arreglo
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Busqueda incremental en wbrowse de arreglo
Posted: Tue Mar 18, 2008 04:28 AM

Pues eso....

A ver si alguien me tira la toalla...

Para hacer esto en dbf esta bien, pero en arreglos, no se. Sobre todo, una vez encontrado el elemento, para refrescar el browse hago:

oBrw:UpStable()
oBrw:Refresh()

Pero en este caso, es diferente la cosa, pues ::Upstable() arroja un error si es un arreglo.

AYUDA !

Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Busqueda incremental en wbrowse de arreglo
Posted: Tue Mar 18, 2008 08:43 AM

Julio,

A que te refieres con un browse de arreglo ?

A usar un array en vez de una DBF ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Busqueda incremental en wbrowse de arreglo
Posted: Tue Mar 18, 2008 01:13 PM

Julio :

nLenStr := Len( cXStr )
nEle := Ascan( TuArreglo,{ | aEle | SubStr( aEle[2], 1, nLenStr ) == cXStr } )
If nEle > 0
pSM := nEle
tulistbox:REFRESH()
ENDIF

// aEle[2] lo ajustas dependiendo en que dimension quieras buscar

En si, lo que hay que hacer, es ya encontrado el "registro", asignar al puntero de tu arreglo, el indice donde fue encontrado y refrescar.

Saludos

FWH 10.6 + xHarbour + Borland 582
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Busqueda incremental en wbrowse de arreglo
Posted: Wed Mar 19, 2008 12:44 AM

Eso, eso Antonio.... un browse de array, no de DBF

Raymundo, ¿Pudieras orientarme con un poco mas de código de como "mover" el puntero del browse a ese valor encontrado?

Supondo que la variable "cXStr" es la que contiene el valor a buscar.... no?

Gracias anticipadas !

Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Busqueda incremental en wbrowse de arreglo
Posted: Wed Mar 19, 2008 01:20 AM
Julio :


Aqui tienes un ejemplo :


// Estas las manejo como Static
aSrcMar := { {"","",""} }
pSM := 1


REDEFINE LISTBOX lbSrcMar ;
	FIELDS aSrcMar[pSM,1] ;
	HEAD "NOMBRE" ;
	ID 103 ;
	FONT oBrwFnt ;	
	OF oFldSrc:aDialogs[1]

	lbSrcMar:SetArray( aSrcMar )
	lbSrcMar:nLineStyle  := 2
	lbSrcMar:lDrawFocusRect := .F.
	lbSrcMar:nClrLine    := CLR_WHITE
	lbSrcMar:BGOTOP     := { || pSM :=1}
  	lbSrcMar:BGOBOTTOM  := { || pSM := eval( lbSrcMar:bLogicLen ) }
  	lbSrcMar:BSKIP      := { | nwant, nold | nold := pSM , pSM += nwant,;
		pSM := max( 1, min( pSM, eval( lbSrcMar:bLogicLen ) ) ), pSM - nOld }
	lbSrcMar:BLOGICLEN  := { || Len( aSrcMar ) }
	lbSrcMar:nClrPane   := { || IIF( pSM%2 == 0, CLR_A, CLR_B ) }
	lbSrcMar:bKeyDown   := { | nKey | SRCMARKEY( nKey ) }


Static Function SRCMARKEY( nKey )
cStr2Seek += Upper( Chr( nKey ) )
nLenStr := Len( cStr2Seek )
nEle := Ascan( aSrcMar, { |aEle| SubStr( aEle[1], 1, nLenStr ) == cStr2Seek } )
IF nEle > 0
	pSM := nEle
	lbSrcMar:REFRESH()
ENDIF
Return NIL



Este codigo esta trabajando OK, solo ponle los ajustes que requieras.


Saludos
FWH 10.6 + xHarbour + Borland 582
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Busqueda incremental en wbrowse de arreglo
Posted: Wed Mar 19, 2008 02:09 AM

Gracias amigo,

Lo pruebo y cualquier cosa te "grito" popr aqui !

Abrazos,

Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1

Continue the discussion