Hola a kigos:
Usando AdsSetAof() en un xBrowse, los datos que muestra corresponde a lo
solicitado, lo extraño es que el comportamiento de xBrowse es raro. No puedo ir recorriendolo
con la flecha, ya que el xBrowse se saltea algun registro mostrado.
local cTexto:= "Algo a buscar"
DBSelectArea(DBLISTA)
(DBLISTA)->(AdsClearAOF())
(DBLISTA)->(OrdScope(0,))
(DBLISTA)->(OrdScope(1,))
(DBLISTA)->(OrdSetFocus('NOMBRE33')) //Filtro FTS
(DBLISTA)->(DbGoTop())
(DBLISTA)->(AdsSetAof( '"' +cTexto+ '" $ P_NOM') )
Mbrw:Refresh(.t.)
La uso para buscar una o mas palabras en la descripcion de un artículo.
Saludos y Gracias
Ruben Fernandez
AdsSetAof()
- JavierVital
- Posts: 105
- Joined: Thu Feb 26, 2009 4:08 pm
- Contact:
Re: AdsSetAof()
Yo lo hago de esta manera :
la vFil es una cadena que voy tecleando y en el browse se va filtrando
Saludos.
Code: Select all
cFil1 := "'"+AllTrim(vFil)+"' $"+"PROVEDOR->PROVEDOR"
cFil2 := "'"+AllTrim(vFil)+"' $"+"PROVEDOR->NOMBRE"
cFiltro := "{||"+cFil1+" .OR. "+cFil2+"}"
gFiltro := '"'+cFil1+' .OR. '+cFil2+'"'
DbSetfilter(&cFiltro,&gFiltro)
Saludos.
- carlos vargas
- Posts: 1421
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: AdsSetAof()
Luego de definir tu browse
haz un
SetRddAds( oBrowse )
salu2
carlos vargas
haz un
SetRddAds( oBrowse )
salu2
carlos vargas
Code: Select all
PROCEDURE SetRddAds( oBrw, lCell, nFreeze )
LOCAL cAlias := oBrw:cAlias
DEFAULT nFreeze := 0 , ;
lCell := FALSE
AEval( oBrw:aCols, {|oCol| oCol:lAllowSizing := FALSE } )
WITH OBJECT oBrw
:lRecordSelector := TRUE
:nStretchCol := STRETCHCOL_LAST
:nColDividerStyle := LINESTYLE_DARKGRAY
:lColDividerComplete := TRUE
:bClrHeader := { || { CLR_BLUE, CLR_BROWTIT, CLR_BLACK } }
:bClrSelFocus := { || { CLR_WHITE, CLR_CYAN } }
:bClrFooter := { || { CLR_RED, CLR_BROWTIT, CLR_BLACK } }
:bClrSel := { || { CLR_WHITE, CLR_BLACK } }
:l2007 := FALSE
:lAllowColHiding := FALSE
:lAllowColSwapping := FALSE
:lAllowRowSizing := FALSE
:lAllowCopy := FALSE
:lKinetic := FALSE
:lKineticBrw := FALSE
:lHScroll := FALSE
:nHeaderHeight := 25
IF !Empty( cAlias )
::bGoTop := {|| ( cAlias )->( DBGoTop() ) }
::bGoBottom := {|| ( cAlias )->( DBGoBottom() ) }
::bSkip := {| n | IIf( HB_IsNil( n ), n := 1, ), ( cAlias )->( DbSkipper( n ) ) }
::bBof := {|| ( cAlias )->( Bof() ) }
::bEof := {|| ( cAlias )->( Eof() ) }
::bBookMark := {| n | IIf( HB_IsNil(n), ( cAlias )->( RecNo() ), ( cAlias )->( DBGoTo( n ) ) )}
IF "ADS" $ ( cAlias )->( RddName() )
::bKeyCount := {|| ( cAlias )->( AdsKeyCount( , , ADS_RESPECTFILTERS ) ) }
::bKeyNo := {| n | IIf( HB_IsNil( n ), ( cAlias )->( AdsKeyNo( , , ADS_RESPECTFILTERS ) ), ( cAlias )->( OrdKeyGoto( n ) ) ) }
ELSE
::bKeyCount := {|| ( cAlias )->( OrdKeyCount() ) }
::bKeyNo := {|| ( cAlias )->( OrdKeyNo() ) }
ENDIF
ENDIF
IF nFreeze > 0
:nFreeze := nFreeze
ENDIF
IF !lCell
:nMarqueeStyle := MARQSTYLE_HIGHLROW
ELSE
:bClrRowFocus := { || { CLR_BLACK, RGB( 185, 220, 255 ) } }
:nMarqueeStyle := MARQSTYLE_HIGHLCELL
ENDIF
END
RETURN
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
Re: AdsSetAof()
Carlos: Excelente, solo con colocar estas 2 líneas en mi xBrowse quedó funcionando. Ya que las demas definciones las tengo al inicio.
mBrw:bKeyCount := {|| ( DBLISTA )->( AdsKeyCount( , , ADS_RESPECTFILTERS ) ) }
mBrw:bKeyNo := {| n | IIf( HB_IsNil( n ), ( DBLISTA )->( AdsKeyNo( , , ADS_RESPECTFILTERS ) ), ( DBLISTA )->( OrdKeyGoto( n ) ) ) }
Gracias Carlos.
Javier: Muy buena tu función, tomé nota.
Gracias Javier.
Saludos Ruben Fernandez
mBrw:bKeyCount := {|| ( DBLISTA )->( AdsKeyCount( , , ADS_RESPECTFILTERS ) ) }
mBrw:bKeyNo := {| n | IIf( HB_IsNil( n ), ( DBLISTA )->( AdsKeyNo( , , ADS_RESPECTFILTERS ) ), ( DBLISTA )->( OrdKeyGoto( n ) ) ) }
Gracias Carlos.
Javier: Muy buena tu función, tomé nota.
Gracias Javier.
Saludos Ruben Fernandez
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
Re: AdsSetAof()
Hola Rufer
Podrias compartirme tu codigo de este articulo de favor.
gracias de antemano
saludos
Podrias compartirme tu codigo de este articulo de favor.
gracias de antemano
saludos
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: AdsSetAof()
Carlos, Buen dia
Probando tu solución esta muy bien ya no da el salto mal
pero el detalle que tengo 34 usuarios y un catalogo de 8,000 productos
y probando se alenta al hacer la función de buscar algún producto
tecleando varias letras de búsqueda.
En la function de VALIDAKEYARTICULO1
el seek en esta parte de la función se vuelve lento
Tendras alguna solución para esto, o de que forma buscas ?
Probando tu solución esta muy bien ya no da el salto mal
pero el detalle que tengo 34 usuarios y un catalogo de 8,000 productos
y probando se alenta al hacer la función de buscar algún producto
tecleando varias letras de búsqueda.
Code: Select all
oBrow:bKeyCount := {|| ARTICULOS->( AdsKeyCount( , , ADS_RESPECTFILTERS ) ) }
oBrow:bKeyNo := {| n | IIf( HB_IsNil( n ), ARTICULOS->( AdsKeyNo( , , ADS_RESPECTFILTERS ) ), ARTICULOS->( OrdKeyGoto( n ) ) ) }
oBrow:bKeyDown := {|nKey| IIF(nKey=27,oDlg:End(),VALIDAKEYARTICULO1(nKey,oDlg,oBrow))}
Code: Select all
Select ARTICULOS
DbGoTop()
IF !DbSeek(AllTrim(oFil[1,2]))
DbGoTop()
ENDIF
oBrow:Refresh()
Tendras alguna solución para esto, o de que forma buscas ?