FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Busqueda en browse
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Busqueda en browse
Posted: Mon Aug 19, 2013 11:28 PM

Una duda con el codigo siguiente, porfa una ayuda.

@ 02,16 GET oBUSCAR VAR xBuscar;
ON CHANGE {|nKey|oBUSCAR:Assign(),BuscaDato(oBUSCAR,aVent,substr(xBuscar,1,oBUSCAR:nPos-1)+upper(chr(nKey)))};
PIXEL COLOR COLOR_AZUL,COLOR_SAMARILLO OF oDlg

se supone que debe en cada teclazo ir a la funcion "BuscaDato" para buscar y nada.

Gracias.

static function BuscaDato(oBUSCAR,aVent,cKey)
local nSeekRec:=recno(),lDesp:=.t.,nSeekNvo,nOrdAnt

MsgAlert(nKey)

if GetAsyncKey(VK_BACK)
cKey:=substr(cKey,1,len(cKey)-1)
endif
cKey:=left(cKey,len(cKey)-1)
nOrdAnt:=OrdSetFocus(aBUSCAR[1])
dbseek(cKey,.t.)
nSeekNvo:=recno()
if eof().or.!OrdKeyVal()=cKey
dbgoto(nSeekRec)
lDesp:=.f.
endif
if lDesp
if !nSeekRec==nSeekNvo
if FORMATO_VENT=='V'
oBROWSE:SetFocus()
oBROWSE:oVScroll:SetPos(recno())
oBROWSE:Refresh(.f.)
SysRefresh()
else
DespVent(aVent)
endif
endif
endif
OrdSetFocus(nOrdAnt)
oBUSCAR:SetFocus()
return NIL

Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Busqueda en browse
Posted: Tue Aug 20, 2013 02:26 AM
Noé,
Yo lo hago así, talvez te sirva de guia:

Code (fw): Select all Collapse
   REDEFINE XBROWSE oBrw ID 118 OF oDlg ;
            COLUMNS "BuqueNum","Descrip"; 
            ALIAS "BUQUES"  FOOTERS LINES CELL

   AEval( oBrw:aCols, { |o| o:nEditType := 0 ,;   //No editables
                            o:nHeadStrAlign := 2 } )  //texto encab/col centrado

   WITH OBJECT oBrw
      :BuqueNum:cSortOrder   := "BUQUENUM"    //indice
      :Descrip:cSortOrder   := "BUQUEDES"         //indice
   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| BUQUES->( DbSeek(UPPER(c),.t.) ) }
   oBrw:oSeek := oTextBusc

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Busqueda en browse
Posted: Tue Aug 20, 2013 08:44 AM

Hola,

Este es un código más simple aún:

WITH OBJECT oBrw

  :nMarqueeStyle := 4
  :lIncrFilter   := .t.
  :lSeekWild     := .t. //( nWild == 2 )
  :cFilterFld    := "titulo"    // nombre del campo por el que queremos buscar
  :nStretchCol   := STRETCHCOL_WIDEST

  :CreateFromCode()

END

/
@ 10,10 COMBOBOX nOpt PROMPTS { "Starting With", "Containing" } ;
SIZE 60,44 PIXEL OF oDlg ;
ON CHANGE ( oBrw:lSeekWild := ( nOpt == 2 ), ;
oBrw:Seek( If( oBrw:lSeekWild, oBrw:cSeek, "" ) ),;
oBrw:Refresh(), oBrw:SetFocus() )
/

@ 10, 80 SAY oBrw:oSeek PROMPT oBrw:cSeek SIZE 120,10 PIXEL OF oDlg ;
COLOR CLR_RED,CLR_YELLOW

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: Busqueda en browse
Posted: Tue Aug 20, 2013 12:57 PM

Noe:
Tu busqueda es en xBrowse o wBrowse?
En este último caso tengo una clase desarrollada, con otro colega, hace bastante tiempo
Que quizás este en las contribuciones: TSeekInc

Saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion