Usuarios ansiosos !!

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
edufloriv
Posts: 237
Joined: Thu Nov 08, 2012 3:42 am
DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
Location: PERU

Usuarios ansiosos !!

Post 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,

Eduardo Flores Rivas


LIMA - PERU
User avatar
BeGeS
Posts: 125
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain

Re: Usuarios ansiosos !!

Post 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
I get by with a little help from my friends
martingz
Posts: 394
Joined: Wed Nov 18, 2009 11:14 pm
Location: Mexico

Re: Usuarios ansiosos !!

Post 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
Post Reply