FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Búsqueda Incremental en Combobox
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Búsqueda Incremental en Combobox
Posted: Mon Jul 25, 2016 02:24 PM

Amigos:
estuve buscando y leyendo para poder hacer una búsqueda incremental en un Combo.
Aparentemente es factible, pero no encuentro la forma de hacerlo. Leí muchos posts
antes de mandar esta consulta y no hay forma que lo haga funcionar...
Si alguien tiene algún ejemplo se los agradezco...
Gracias
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Búsqueda Incremental en Combobox
Posted: Mon Jul 25, 2016 06:19 PM

A los maestros...
Solo saber si se puede hacer o no... :oops:
Gracias...

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Búsqueda Incremental en Combobox
Posted: Mon Jul 25, 2016 08:06 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Búsqueda Incremental en Combobox
Posted: Mon Jul 25, 2016 11:02 PM

Joao, esos ejemplos los ví.
Son ejemplos con COMBOS ON EDIT, no hay forma de los usar los otros combos?
Saludos

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Búsqueda Incremental en Combobox
Posted: Tue Jul 26, 2016 01:07 PM
Que tal asi?

Code (fw): Select all Collapse
#include 'fivewin.ch'
#include 'ord.ch'
#include 'xbrowse.ch'
#include 'hbcompat.ch'

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oBrw, oFont, nWild := 2
   local cList, aFlds, aHdrs
   local nChoice, uDataSource

   SET DATE ITALIAN
   SET CENTURY ON
   RDDSETDEFAULT( "DBFCDX" )

   cList := "First,Last,Street,State,HireDate"

   nChoice     := ALERT( "Choose Data Souce", { "DBF", "ADO", "ARRAY" } )
   uDataSource := OpenData( nChoice, cList )

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12

   DEFINE DIALOG oDlg SIZE 750,300 PIXEL FONT oFont ;
      TITLE "XBrowse Incremental Filters"

   aFlds := aHdrs := HB_ATokens( cList, ',' )
   if nChoice == 3
      aFlds := Array( Len( aFlds ) )
      AEval( aFlds, { |u,i| aFlds[ i ] := i } )
   endif

   @ 30,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
      COLUMNS aFlds HEADERS aHdrs ;
      DATASOURCE uDataSource AUTOSORT CELL LINES NOBORDER

   WITH OBJECT oBrw
      :lIncrFilter   := .t.
      :lSeekWild     := ( nWild == 2 )
      :cFilterFld    := "FIRST"
      :nStretchCol   := STRETCHCOL_WIDEST
   END

   oBrw:aCols[5]:bLClickHeader := { || oBrw:Seek( "" ), oBrw:cFilterFld := "Street", oBrw:Refresh() }

//   oCol:bLClickHeader = { | nMRow, nMCol, nFlags, Self | If( ::nHeadBmpNo == 2, ::nHeadBmpNo := 1, ::nHeadBmpNo := 2 ), ::Refresh() }

   @ 10, 10 COMBOBOX oBrw:cFilterFld ;
      ITEMS aHdrs ;
      ON CHANGE ( oBrw:Seek( "" ), oBrw:SetFocus() ) ;
      SIZE 50,400 PIXEL OF oDlg

   @ 10, 70 COMBOBOX nWild ITEMS { "Starting With", "Containing" } ;
      ON CHANGE ( oBrw:lSeekWild := ( nWild == 2 ), ;
                  oBrw:Seek( If( oBrw:lSeekWild, oBrw:cSeek, "" ) ), ;
                  oBrw:SetFocus() ) ;
      SIZE 70,400 PIXEL OF oDlg

   @ 11,160 SAY oBrw:oSeek PROMPT oBrw:cSeek SIZE 200,10 PIXEL ;
      OF oDlg COLOR CLR_BLACK,CLR_YELLOW PICTURE '@!'

   oBrw:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:SetFocus(), .f. )

   RELEASE FONT oFont

return nil

//----------------------------------------------------------------------------//

static function OpenData( nSource, cList )

   local oCn, uSource

   SWITCH nSource
   CASE 1
   CASE 3
      USE CUSTOMER SHARED NEW ALIAS CUST
      SET ORDER TO TAG FIRST
      GO TOP
      if nSource == 3
         uSource  := CUST->( FW_DbfToArray( cList ) )
         CLOSE CUST
      else
         uSource  := "CUST"
      endif
      EXIT
   CASE 2
      oCn   := FW_OpenAdoConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ;
                                      cFilePath( GetModuleFileName() ) + ;
                                      "xbrtest.mdb;User Id=admin;Password=;" )
      if oCn != nil
         uSource  := FW_OpenRecordSet( oCn, "CUSTOMER" )
      endif
      EXIT
   DEFAULT
      QUIT
   END

return uSource

//----------------------------------------------------------------------------//


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Búsqueda Incremental en Combobox
Posted: Tue Jul 26, 2016 01:23 PM
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oDlg, oCbx, cSearch := Space( 100 ), aItems := { "africa", "america", "asia", "europe", "oceania" }

   DEFINE DIALOG oDlg SIZE 400, 300

   @ 2.4, 1.2 COMBOBOX oCbx VAR cSearch ITEMS aItems OF oDlg SIZE 180, 150

   oCbx:lIncSearch = .T.

   ACTIVATE DIALOG oDlg CENTERED

return nil


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Búsqueda Incremental en Combobox
Posted: Tue Jul 26, 2016 02:36 PM

Gracias! Mucho material! Vamos a ver que sacamos en limpio!
Grande Joao! O máis grande do mundo!
Abrazo!

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Búsqueda Incremental en Combobox
Posted: Mon Aug 01, 2016 04:10 PM

Prueba asi

REDEFINE COMBOBOX oCbx2  VAR oUni_Produ  ITEMS aUnidad  ID 103 OF oDlg  UPDATE;
    STYLE CBS_DROPDOWN

  oCbx2:oGet:bKeyChar = { | nKey | oCbx2:GetKeyChar( nKey ) }      //Busca en COMBOBOX

Saludos

Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Búsqueda Incremental en Combobox
Posted: Fri Aug 05, 2016 12:25 PM

Hola amigo...
busca la primer letra... pero no busca un texto...
A no ser que esté haciendo algo mal yo...
Saludos

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar

Continue the discussion