FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xBrowse - búsqueda incremental
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
xBrowse - búsqueda incremental
Posted: Fri Jan 25, 2013 01:43 PM
Estimados:
Algo hago mal y no puedo encontrarle la vuelta
Pretendo buscar en una DBF que la abro mediante tDBF (de M. Exposito)
Cuando tecleo, no se mueve el cursor, como tampoco muestra lo que escribo en el SAY puesto al efecto
Code (fw): Select all Collapse
   REDEFINE XBROWSE oBrw ID 301 OF oDlg ;
            ALIAS hS3:oDbPrv:cAlias ;
            COLUMNS "FPrv01", "FPrv02" AUTOSORT

   // Columnas
   WITH OBJECT oBrw:oCol( "FPrv01" )
      :cHeader:= "CodProv"
   END
   WITH OBJECT oBrw:oCol( "FPrv02" )
      :cHeader:= "Descripcion"
      :nWidth := 210
   END

   WITH OBJECT oBrw
      :l2007          := TRUE
      :lAllowColHiding:= FALSE     // Anular menu pop

      :lSeekWild      := TRUE
   END

   REDEFINE SAY oBrw:oSeek PROMPT oBrw:cSeek ID 10 OF oDlg COLOR CLR_RED UPDATE

falta algo?, que esta mal?

muchas gracias
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: xBrowse - búsqueda incremental
Posted: Fri Jan 25, 2013 03:56 PM
Hola Mario, lo hago asi en la version 1204:
Code (fw): Select all Collapse
   WITH OBJECT oBrw
      :nMarqueeStyle    := MARQSTYLE_HIGHLROW  //_HIGHLROWMS
      :nColDividerStyle:=LINESTYLE_LIGHTGRAY
      :nRowDividerStyle:=LINESTYLE_LIGHTGRAY
      :bClrSel       := {|| { nRGB(  0,  0,255), aGradBarSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus := { || { CLR_BLACK, aGradBarSelFocus } }     // para barra de linea selecc cuando el control tiene el foco
      :lKinetic      := .f.
      :lContrastClr  := .f.  //para que no cambie color de texto automaticamente segun intensidad del fondo

      :bGotFocus:= {|| dbSelectArea("Clientes") }

      :Codigo:cSortOrder   := "CLIENTES"   //los indices
      :nombre:cSortOrder   := "NOMBCLTE" 
      :apellido:cSortOrder := "APELCLTE" 
      :cedulaide:cSortOrder:= "CEDULIDE" 
   END

   REDEFINE SAY oTextBusc PROMPT cTextBusc ID 4003 OF oDlg UPDATE
   oTextBusc:cTooltip:= {"Click sobre cabecera de columna para busqueda respectiva","BUSQUEDA INCREMENTAL          "}

   oBrw:bSeek := {|c| Clientes->( DbSeek(UPPER(c),.t.) ) }
   oBrw:oSeek := oTextBusc

Espero te sirva de guia.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - búsqueda incremental
Posted: Fri Jan 25, 2013 11:32 PM

Francisco
La metodología funciona, muchas gracias!
Lo que me confunde es que en los samples (pocos), no usan :bSeek

Saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - búsqueda incremental
Posted: Mon Jan 28, 2013 03:27 PM
Continúo con este tema ya que si bien he solucionado la búsqueda incremental con lo sugerido por Horacio, luego. mirando el sample: xbincflt.prg, y luego de muchas pruebas, finalmente, consigo la búsqueda con el siguiente código:
Code (fw): Select all Collapse
   REDEFINE XBROWSE oBrw ID 301 OF oDlg ;
            COLUMNS {"FPrv01", "FPrv02"} ;
            HEADERS {"CodPrv", "Descripcion" } ;
            ALIAS hS3:oDbPrv:cAlias  AUTOSORT


   
   WITH OBJECT oBrw
      :lSeekWild     := .f.     // Con este en falso HACE la búsqueda incremental

      :bKeyDown:= {|nK| if( nK==VK_RETURN, ( hS3:oDbPrv:Load(), oSProv:VarPut( hS3:oDbPrv:FPRV02 ), oSProv:Refresh(), ;
                                             oBrw:End(), oDlg:End() ), ) }
   END

   WITH OBJECT oBrw:oCol( "CodPrv" )
      :bLDClickData:= {|| Eval( oBrw:bKeyDown, VK_RETURN ) }
   END
   WITH OBJECT oBrw:oCol( "Descripcion" )
      :nWidth := 220

      :bLDClickData:= {|| Eval( oBrw:bKeyDown, VK_RETURN ) }
   END

Ahora bien; me pareció buena idea, por lo visto en el sample, usar el Filtro; entonces mi código quedaría:
Code (fw): Select all Collapse
  WITH OBJECT oBrw
      :lIncrFilter   := TRUE     // Con ese en verdadero, y lSekkWild = .T., busca POR CONTENIDO
      :lSeekWild     := .T.     // Con este en falso HACE la búsqueda incremental
      :cFilterFld    := "FPRV02"
      :Seek( "" )    //oBrw:cSeek

      :bKeyDown:= {|nK| if( nK==VK_RETURN, ( hS3:oDbPrv:Load(), oSProv:VarPut( hS3:oDbPrv:FPRV02 ), oSProv:Refresh(), ;
                                             oBrw:End(), oDlg:End() ), ) }
   END

   WITH OBJECT oBrw:oCol( "CodPrv" )
      :bLDClickData:= {|| Eval( oBrw:bKeyDown, VK_RETURN ) }
   END
   WITH OBJECT oBrw:oCol( "Descripcion" )
      :nWidth := 220

      :bLDClickData:= {|| Eval( oBrw:bKeyDown, VK_RETURN ) }
   END

   REDEFINE SAY oBrw:oSeek PROMPT Upper( oBrw:cSeek ) ID 10 OF oDlg COLOR CLR_RED UPDATE

En este caso el filtro por "Contenido" se produce...peeeeroooo, si deseo un filtro por "Que comience con", lo que entiendo sería poniendo :lSeekWild:= .f., entonces NO HACE NADA.
Pero, evidentemente algo esta mal en mi codigo, ya que si al sample lo reemplazo para que abra mi DBF, todo lo hace OK!
En que difiere respecto al sample?. En que uso ADS y abro las DBFs con TDBF (aunque para el manejo del xBrowse, solo le estoy dando foco al ls DBF en cuestion)

Espero opiniones, gracias
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - búsqueda incremental
Posted: Mon Feb 04, 2013 01:12 PM

Sin solución para esto?

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: xBrowse - búsqueda incremental
Posted: Mon Feb 04, 2013 02:47 PM

Mario,

Deberías por favor proporcionar un ejemplo autocontenido para que el equipo de Fivetech lo mire.

Siempre que he tenido un problema les facilito el ejemplo para que lo puedan reproducir ;).

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - búsqueda incremental
Posted: Mon Feb 04, 2013 08:55 PM

Lucas, gracias por la recomendación. Lo estoy preparando

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion