GML Look-Up Manager (LUM) : Respondiendo a eventos
El GML LUM debe ser llamado cuando un evento list edit o list butón
ocurre ((GOSUB LUM_LOOK_UP). En adición cuando otros eventos ocurren,
el LUM debe ser llamado para determinar cuando ocultar un look-up control GOSUB
LUM_EVENT) que es visible (GML_LUM_FLAG%<>0 ), pero el enfoque ha sido
movido a otra parte. La línea 3650 que sigue en el ejemplo que contiene
el código necesario para accesar a las subrutinas que proveen acceso
al GML LUM para administrar los eventos. Esta línea de código
podría ser insertada en la aplicación inmediatamente seguida de
la línea de código que transfiere el control programa la rutina
que maneja los eventos del grid (3640)
3640 IF EVENT.CODE$="N" THEN IF NOTICE.OBJTYPE%=107
THEN GOSUB GML_M; CONTINUE
3650 IF EVENT.CODE$="N" AND NOTICE.OBJTYPE%>18 AND NOTICE.OBJTYPE%<21
THEN GOSUB LUM_LOOK_UP
ELSE IF EVENT.CODE$<>"m"
AND GML.LUM_FLAG% THEN GOSUB LUM_EVENT
LUM_LOOK_UP Subrutina:
En la subrutina LUM_LOOK_UP , el Id del evento es localizado en GML_LUM.EVENT_ID%
y el contexto del evento es localizado in variables GML_LUM.EVENT_CONTEXT%.
El look-up manager es entonces llamado para ejecutar la llamada al GML para
encontrar el índice del look-up control identificado por el ID evento
y contexto.
7620 LUM_LOOK_UP:
7630 REM +----------------------+
7640 REM ! FIND LOOK-UP INDEX !
7650 REM +----------------------+
7660 GML_LUM.EVENT_ID%=EVENT.ID%
7670 GML_LUM.EVENT_CONTEXT%=EVENT.CONTEXT%
7680 CALL "GML::LUM_FIND"
Si después de la ejecución de la llamada GML, la variable GML_LUM.LU_SET%
contiene un 0 (el control no es un look-up de tipo control) la subrutina termina
bifurcando para el RETURN la línea 8010.
7690 IF GML_LUM.LU_SET%=0 THEN GOTO 8010
En la siguiente porción de la subrutina, la variable de plantilla NOTICE.CODE%
es usada con el verbo SWITCH para determinar como manejar el evento (ver VPRO/5
documentación relacionada al List Button y List Edit Notify Events).
Cuando un evento es generado por un list opened (CASE 1) no necesita acciones,
y la subrutina termina.
7700 SWITCH NOTICE.CODE%
7710 REM +---------------+
7720 REM ! LIST OPENED !
7730 REM +---------------+
7740 CASE 1
7750 BREAK
|