xBrowse - búsqueda incremental

xBrowse - búsqueda incremental

Postby MarioG » Fri Jan 25, 2013 1: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: Select all  Expand view  RUN
  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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - búsqueda incremental

Postby FranciscoA » Fri Jan 25, 2013 3:56 pm

Hola Mario, lo hago asi en la version 1204:
Code: Select all  Expand view  RUN
  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
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xBrowse - búsqueda incremental

Postby MarioG » 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - búsqueda incremental

Postby MarioG » Mon Jan 28, 2013 3: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: Select all  Expand view  RUN
  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: Select all  Expand view  RUN
 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - búsqueda incremental

Postby MarioG » Mon Feb 04, 2013 1:12 pm

Sin solución para esto?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - búsqueda incremental

Postby lucasdebeltran » Mon Feb 04, 2013 2: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.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: xBrowse - búsqueda incremental

Postby MarioG » Mon Feb 04, 2013 8:55 pm

Lucas, gracias por la recomendación. Lo estoy preparando
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 21 guests