Page 1 of 1

Usuarios ansiosos !!

Posted: Wed May 16, 2018 10:58 pm
by edufloriv
Saludos amigos,

¡¡ Me han tocado unos usuarios ansiosos !! - Tengo asignada la tecla F3 para grabar una operación, pero estos usuarios cuando la pulsan para grabar (en esta caso la proforma) la pulsan repetidas veces de forma muy rápida (no usan mouse) y me estuvieron generando doble grabado. Como puedo limpiar el buffer del teclado para que ignore las pulsaciones extras al final del proceso.

A continuación el fragmento de código que graba la operación:

Code: Select all

*>----------------------------------------------------------------------<*
*>----------------------------------------------------------------------<*
*>----------------------------------------------------------------------<*

PROC VentasGrabar

LOCAL cNewProforma

FOR nLap = 1 TO 1000000
NEXT
IF FILE(PRF_GRABA)
   RETURN
ENDIF
Win_Ventas.VentasBarra.Enabled := .F.
DO EVENTS
MEMOWRIT( PRF_GRABA , 'Grabando' )

IF CheckLiceOk()
   IF VentasHayItems()
      IF VentasControl()
         IF LENNOSPC(Win_Ventas.TxtClieDes.Value) = 0
            VentaFijaCliente()
         ENDIF
         cNewProforma := GrabaProforma()
         IF VAL(cNewProforma) > 0
            IF LEN(VH_DATCON) > 0
               RegControlProf( cNewProforma ) // VentControl.prg
            ENDIF
            VentProforma( VAL(cNewProforma) )
            VentasIniciar()
         ENDIF
      ENDIF
   ELSE
      MsgExclamation('No hay artículos para grabar')
   ENDIF
ENDIF

Win_Ventas.VentasBarra.Enabled := .T.
DO EVENTS
DELETE FILE (PRF_GRABA)
CLEAR TYPEAHEAD  // <-- Aqui trato de limpiar pero no resulta, igual almacena las pulsaciones.

RETURN
Agradeceré su ayuda.


Saludos cordiales,

Re: Usuarios ansiosos !!

Posted: Thu May 17, 2018 8:22 am
by BeGeS
Intenta probar con esto (yo no lo he probado :roll: ).

Code: Select all

WHILE ! IGNORAF1()==0 ; END

// --- Mientras se pulse F1 devuelve 1, y con otra tecla devuelve 0 ---
FUNCTION IGNORAF1()
LOCAL VKPULSA:=HMG_GETLASTVIRTUALKEYDOWN()

   IF VKPULSA<>VK_F1
	 RETURN 0
   ENDIF

RETURN 1

Re: Usuarios ansiosos !!

Posted: Fri May 18, 2018 2:06 am
by martingz
edufloriv
prueba deshabilitando la tecla , terminas de grabar y la vuelves a habilitar, me funciono para esos usuarios desesperados, no muy elegante pero efectiva
estoy buscando lo del borrado del buffer por alguna parte vi algo