XBROWSE Busqueda incremental en dialog

XBROWSE Busqueda incremental en dialog

Postby jvtecheto » Sat Nov 09, 2019 8:44 am

Hola amigos:

El XBROWSE la busqueda incremental funciona muy bien pero me gustaria adaptarla a un sencillo dialogo de busqueda que utilizo.

es este.
Code: Select all  Expand view

FUNCTION SeekAlias( cAlias, oBrw, nLen )

   LOCAL oDlg
   LOCAL oNombre
   LOCAL lBusca := .F.
   LOCAL cNombre := Space( 25 )
   LOCAL nActual  := (cAlias)->( RecNo() )
   LOCAL cIndice := (cAlias)->( ordSetFocus() )
   cNombre := "              "
   
   DEFINE DIALOG oDlg RESOURCE "SEEK"

   REDEFINE BITMAP ID 102 OF oDlg RESOURCE "LUPA"
   REDEFINE GET oNombre VAR cNombre ID 101 OF oDlg PICTURE "@!"

   REDEFINE BTNBMP ID 750 RESOURCE "ACCEPT" OF oDlg ACTION ( lBusca := .T., oDlg:END() )
   REDEFINE BTNBMP ID 751 RESOURCE "CANCEL" OF oDlg ACTION oDlg:END()

   ACTIVATE DIALOG oDlg CENTERED
   
   IF lBusca
      // oBrw:Gotop()
      // oBrw:Setfocus()

      IF Type( cNombre ) == "N"
         IF cIndice != "CODIGO"
            (cAlias)->( ordSetFocus( 1 ) )
         ENDIF
         (cAlias)->( dbSeek( PadL( AllTrim( cNombre ), nLen, "0" ) ) )
      ELSE
         IF (cAlias) != "NOMBRE"
            (cAlias)->( ordSetFocus( 2 ) )
         ENDIF

         (cAlias)->( dbSeek( AllTrim( cNombre ) ) )
      ENDIF

      IF ! (cAlias)->( Found() )
         (cAlias)->( dbGoTo( nActual ) )
         STOP( "No encuentro el Registro" )
      ENDIF

   ENDIF

   (cAlias)->( ordSetFocus( cIndice ) )
   // oBrw:UpStable()     // Corrects same page stabilizing Bug
   oBrw:Refresh()     // Repintamos el ListBox

   RETURN NIL

 


Como veis en este dialogo ya paso como parametro el xbrowse , oBrw

seria adaptar el
Code: Select all  Expand view

REDEFINE GET oNombre VAR cNombre ID 101 OF oDlg PICTURE "@!"
 


para que realizara la busqueda., buscando en el foro he visto que habria que pasarle la funcion a

Code: Select all  Expand view

oBrw:bseek :={|| SeekAlias(cAlias,oBrw,4 )}
 


Pero luego dentro de la funcion que tengo que hacer quitar el
Code: Select all  Expand view

(cAlias)->( dbSeek( PadL( AllTrim( cNombre ), nLen, "0" ) ) )
 

Pero que uso en su lugar ...

Espero haberme explicado bien, espero vuestras sugerencias y ayuda.

Un abrazo a todos y gracias.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 592
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: XBROWSE Busqueda incremental en dialog

Postby cmsoft » Sat Nov 09, 2019 1:15 pm

Prueba si te sirve asi:
Code: Select all  Expand view
REDEFINE GET oBrw:oSeek VAR oBrw:cSeek ID 101 OF oDlg PICTURE "@!"
User avatar
cmsoft
 
Posts: 1285
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: XBROWSE Busqueda incremental en dialog

Postby jvtecheto » Sat Nov 09, 2019 6:46 pm

Hola Cesar

gracias por tu ayuda.

No me funciona , al entrar en el GET tecleo un caracter , desaparece el cursor y no se mueve el xbrowse.

Seguimos buscando.

Saludos.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 592
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: XBROWSE Busqueda incremental en dialog

Postby cmsoft » Mon Nov 11, 2019 3:54 am

Code: Select all  Expand view
REDEFINE XBROWSE oBrw DATASOURCE oQry;
              COLUMNS "Codigo","Nombre";
              HEADERS "Codigo","Nombre";
              SIZES 50,350;
              ID 111 OF oDlg AUTOSORT
     REDEFINE SAY oBrw:oSeek PROMPT "" ID 113 OF oDlg
User avatar
cmsoft
 
Posts: 1285
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 23 guests