Files
DECOMARMOL/PROYECTO/dsdir/dsprmt001.4gl
T
2026-09-22 20:38:51 -04:00

190 lines
4.3 KiB
Plaintext

#######################################################################
# SISTEMA : DOCUMENTACION DE SISTEMA
# PROGRAMA : DSPRMT001.4GL
# OBJETIVO : Mantenimiento de la Maestra de Sistema
# AUTOR : Tadeo A. Ferreras F.
# FECHA : JUNIO 9, 1995
########################################################################
DATABASE rayovac
GLOBALS
"dsprgb000.4gl"
FUNCTION dsprmt001()
OPTIONS
FORM LINE 8,
ERROR LINE 23,
PROMPT LINE 23
OPEN FORM dsfmmt001 FROM "dsfmmt001"
DISPLAY FORM dsfmmt001
CALL pantalla()
DISPLAY "dsprmt001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Maestra de Sistemas" AT 6,30 ATTRIBUTE(BLACK)
MENU "Mant"
COMMAND "Adicionar"
"Presione <ESC> para Grabar <Ctrl-C> Para Cancelar"
LET int_flag = FALSE
CLEAR FORM
CALL dsprad001()
COMMAND "Consulta-Modificar"
"Presione <ESC> para Actualizar <Ctrl-C> Para Cancelar"
LET int_flag = FALSE
CLEAR FORM
CALL dsprmd001()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION dsprad001()
INPUT BY NAME dstb03.*
AFTER FIELD cod_sistema
IF dstb03.cod_sistema IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_sistema
END IF
SELECT a.* INTO dstb03.* FROM dstb00003 a
WHERE a.cod_sistema = dstb03.cod_sistema
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
DISPLAY BY NAME dstb03.*
NEXT FIELD cod_sistema
END IF
AFTER FIELD desc_sistema
IF dstb03.desc_sistema IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD desc_sistema
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
INSERT INTO dstb00003 VALUES(dstb03.*)
UPDATE dstb00003 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @cod_sistema = dstb03.cod_sistema
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION dsprmd001()
CONSTRUCT criterio ON a.cod_sistema,a.desc_sistema
FROM cod_sistema,desc_sistema
IF int_flag THEN
ERROR "(2) OPERACION CANCELADA"
LET int_flag = FALSE
RETURN
END IF
LET selec = "SELECT a.* FROM dstb00003 a WHERE a.status_t IS NULL AND ",
criterio CLIPPED," ORDER BY 1"
PREPARE comando FROM selec
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
FETCH FIRST busca INTO dstb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME dstb03.*
MENU "OPCION"
COMMAND "Siguiente"
FETCH NEXT busca INTO dstb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
DISPLAY BY NAME dstb03.*
COMMAND "Anterior"
FETCH PREVIOUS busca INTO dstb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
DISPLAY BY NAME dstb03.*
COMMAND "Primero"
FETCH FIRST busca INTO dstb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
DISPLAY BY NAME dstb03.*
COMMAND "Ultimo"
FETCH LAST busca INTO dstb03.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
DISPLAY BY NAME dstb03.*
COMMAND "Escoger" "Presione <ESC> Para Actualizar <Ctrl-C> Para Cancelar"
INPUT BY NAME dstb03.desc_sistema WITHOUT DEFAULTS
AFTER FIELD desc_sistema
IF dstb03.desc_sistema IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD desc_sistema
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE dstb00003 SET dstb00003.* = dstb03.*
WHERE @cod_sistema = dstb03.cod_sistema
UPDATE dstb00003 SET (us_mod,fech_mod) = (USER,CURRENT)
WHERE @cod_sistema = dstb03.cod_sistema
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
UPDATE dstb00003 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT)
WHERE @cod_sistema = dstb03.cod_sistema
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION