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 RUN
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 RUN
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 RUN
oBrw:bseek :={|| SeekAlias(cAlias,oBrw,4 )}
Pero luego dentro de la funcion que tengo que hacer quitar el
- Code: Select all Expand view RUN
(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.