Amigos, requiero de su ayuda
estoy usando dolphin para visualizar datos en xbrowse, esta es la imagen

necesito hacer busquedas ya sea en el campo "No Cliente" (numerico), "Nombre de cliente" (caracter), "No Cédula" (caracter)
uso esta funcion que encontre en el foro.
este es el codigo de la implementacion el el browse
El caso es que la busqueda funciona bien si:
pero falla y se bloquea el programa si:
por favor cualquier ayuda sera bienvenida.
Aclaro que al inicio uso Set_MyLang( "es_ES" )
salu2
estoy usando dolphin para visualizar datos en xbrowse, esta es la imagen

necesito hacer busquedas ya sea en el campo "No Cliente" (numerico), "Nombre de cliente" (caracter), "No Cédula" (caracter)
uso esta funcion que encontre en el foro.
FUNCTION QSeek( c, oBrw, oSay, cQryWhere )
LOCAL oQry := oBrw:oMySql
LOCAL cSortOrder, nStart
LOCAL uData, nNum, lRet
STATIC aLastRec := {}
nNum := AScan( oBrw:aCols, {| o | !Empty( o:cOrder ) } )
IF nNum < 1
RETURN FALSE
ENDIF
cSortOrder := oBrw:aCols[ nNum ]:cSortOrder
IF Len( c ) == 1
aLastRec := {}
ENDIF
IF Len( aLastRec ) < Len( c )
IF Len( aLastRec ) == 0
nStart := 1
ELSE
nStart := oQry:RecNo()
ENDIF
AAdd( aLastRec, nStart )
ELSE
ASize( aLastRec, Len( c ) - 1 )
IF Len( aLastRec ) == 0
nStart := 1
ELSE
nStart := ATail( aLastRec )
ENDIF
ENDIF
IF HB_IsObject( oSay )
oSay:SetText( Upper( c ) )
ENDIF
lRet := ( oQry:Seek( c, cSortOrder, nStart - 1, oQry:LastRec(), !oQry:FieldType( cSortOrder )=='N', .T. ) != 0 )
RETURN lReteste es el codigo de la implementacion el el browse
...
REDEFINE XBROWSE oBrw ID 101 OF oDlg DATASOURCE oQryClie AUTOSORT ;
ON DBLCLICK Clientes_Editar( FALSE ) FONT oFontD
ADD TO oBrw DATA oQryClie:NUM_CLIE TITLE "Nº Cliente" SIZE 096 PICTURE "@L 999999" CENTER
ADD TO oBrw DATA oQryClie:NOMBRE TITLE "Nombre de cliente" SIZE 250
ADD TO oBrw DATA oQryClie:CEDULA TITLE "Cédula" SIZE 120
ADD TO oBrw DATA oQryClie:CIUDAD TITLE "Ciudad" SIZE 055
ADD TO oBrw DATA oQryClie:RUTA TITLE "Ruta" SIZE 055
ADD TO oBrw DATA oQryClie:ACTIVO TITLE "Act" SIZE 030 CENTER
ADD TO oBrw DATA oQryClie:TIENENOTA TITLE "Nota" SIZE 030 CENTER
WITH OBJECT oBrw
:MyConfig( TRUE )
:aCols[ 01 ]:cSortOrder := "NUM_CLIE"
:aCols[ 02 ]:cSortOrder := "NOMBRE"
:aCols[ 03 ]:cSortOrder := "CEDULA"
:aCols[ 06 ]:SetCheck( { "BMS_BULLETGREEN", "BMS_BULLETPINK" } )
:aCols[ 07 ]:SetCheck( { 0, "BMS_POSTIT" } )
:bKeyDown := {|nKey| Clientes_ProcesaTecla( nKey ) }
:bSeek := {|c| QSeek( Upper( c ), oBrw, oItem ) }
:bOnChanged := {|| IIf( Empty( oBrw:cSeek ), oItem:SetText( oBrw:cSeek ), NIL ) }
:lHScroll := FALSE
:nHeaderHeight := 36
:nFreeze := 7
END
...El caso es que la busqueda funciona bien si:
estando ordenada la columnas caracter busco caracter.
estando ordenada la columna numerico busco numeros.
pero falla y se bloquea el programa si:
estando ordenada la columnas caracter busco numero. (inicio presionando un numero)
estando ordenada la columnas numerica busco caracter. (inicio presionando una letra)
por favor cualquier ayuda sera bienvenida.
Aclaro que al inicio uso Set_MyLang( "es_ES" )
salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)