Page 1 of 1

XBROWSE Busqueda incremental en dialog

Posted: Sat Nov 09, 2019 8:44 am
by jvtecheto
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

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

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

oBrw:bseek :={|| SeekAlias(cAlias,oBrw,4 )}
 
Pero luego dentro de la funcion que tengo que hacer quitar el

Code: Select all

(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.

Re: XBROWSE Busqueda incremental en dialog

Posted: Sat Nov 09, 2019 1:15 pm
by cmsoft
Prueba si te sirve asi:

Code: Select all

REDEFINE GET oBrw:oSeek VAR oBrw:cSeek ID 101 OF oDlg PICTURE "@!"

Re: XBROWSE Busqueda incremental en dialog

Posted: Sat Nov 09, 2019 6:46 pm
by jvtecheto
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.

Re: XBROWSE Busqueda incremental en dialog

Posted: Mon Nov 11, 2019 3:54 am
by cmsoft

Code: Select all

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