Busqueda
Publicado por GERSON POPOTEUR (4 intervenciones) el 05/09/2007 22:46:27
Hola chicos,
Estoy pasando mis programas clipper a harbour, pero tengo el
sieguiente problema: cuando hago busqueda en la tabla en uso
cuando presiono una tecla el lastkey() me presenta como si hubiese
presionado la tecla dos veces. En el viejo clipper me funciona bien.
Aqui le presento el ejemplo
Gracias por su ayuda.
// MAIN()
PROCEDURE MAIN()
BUSC=''
CLS
USE DATOS\CNTCTA01
set index to datos\cntcta01
SET ORDER TO 1
Arr1:={"NROCTA","DSCCTA",'CTADSC'}
Arr2:={"CUENTA","DESCRIPCION",'CUENTA DESCARGA'}
Arr3:={"@X!","@X!",'@X!'}
DBEDIT(05,1,18,78,ARR1,"UDF_SEEKESPECIAL",ARR3,ARR2,"Í","º","","")
RETURN
************************************
FUNCTION UDF_SEEKESPECIAL(MODULO,POSICION)
************************************
IF LASTKEY() >=32 .AND. LASTKEY()<254
busc=busc+chr(lastkey())
@1,0 SAY BUSC
set softseek on
Seek busC
set softseek off
IF EOF() // .OR. !FOUND()
busc=LEFT(BUSC,LEN(BUSC)-1)
set softseek on
seek upper(BUSC)
set softseek off
ELSE
keyboard chr(22)
end
ENDIF
IF LASTKEY()=27
return(0)
ENDIF
RETURN(1)
Estoy pasando mis programas clipper a harbour, pero tengo el
sieguiente problema: cuando hago busqueda en la tabla en uso
cuando presiono una tecla el lastkey() me presenta como si hubiese
presionado la tecla dos veces. En el viejo clipper me funciona bien.
Aqui le presento el ejemplo
Gracias por su ayuda.
// MAIN()
PROCEDURE MAIN()
BUSC=''
CLS
USE DATOS\CNTCTA01
set index to datos\cntcta01
SET ORDER TO 1
Arr1:={"NROCTA","DSCCTA",'CTADSC'}
Arr2:={"CUENTA","DESCRIPCION",'CUENTA DESCARGA'}
Arr3:={"@X!","@X!",'@X!'}
DBEDIT(05,1,18,78,ARR1,"UDF_SEEKESPECIAL",ARR3,ARR2,"Í","º","","")
RETURN
************************************
FUNCTION UDF_SEEKESPECIAL(MODULO,POSICION)
************************************
IF LASTKEY() >=32 .AND. LASTKEY()<254
busc=busc+chr(lastkey())
@1,0 SAY BUSC
set softseek on
Seek busC
set softseek off
IF EOF() // .OR. !FOUND()
busc=LEFT(BUSC,LEN(BUSC)-1)
set softseek on
seek upper(BUSC)
set softseek off
ELSE
keyboard chr(22)
end
ENDIF
IF LASTKEY()=27
return(0)
ENDIF
RETURN(1)
Valora esta pregunta


0