Files
MBS/PROYECTO/cgdir/cgprmt002.4gl
T

162 lines
4.5 KiB
Plaintext

{
------------------------------------------------------------------------------
PROGRAMA : CGPRMT002
OBJETIVO : Mantenimiento de los tipos de transacciones
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Septiembre 28, 1993.
------------------------------------------------------------------------------
}
GLOBALS
"cgprgb000.4gl"
FUNCTION cgprmt002()
OPTIONS
FORM LINE 9,
ERROR LINE 24,
COMMENT LINE 23
CALL pantalla()
OPEN FORM cgfmmt002 FROM "cgfmmt002"
DISPLAY FORM cgfmmt002
CLEAR FORM
MENU "OPCION"
COMMAND "Adicionar" "<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET int_flag = false
CALL cgpcad02()
COMMAND "Consultar-modificar"
"<Esc> Busca informacion <Supr> Cancela Operacion"
CALL cgpcmod02()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION cgpcad02()
# Captura de informacion
INITIALIZE p_tipos.* TO NULL
INPUT BY NAME p_tipos.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER FIELD tipo
DISPLAY BY NAME p_tipos.*
IF p_tipos.tipo is not null THEN
SELECT * INTO p_tipos.* FROM cgtb00003
WHERE tipo = p_tipos.tipo and
status_t is null
# Chequeo del registro si esta eliminado
IF p_tipos.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD tipo
END IF
# Chequeo si el registro existe, si existe desplega las informaciones
IF status != notfound THEN
LET numero_msg = 12
CALL msg(numero_msg)
DISPLAY BY NAME p_tipos.*
INITIALIZE p_tipos.* TO NULL
NEXT FIELD tipo
END IF
DISPLAY BY NAME p_tipos.descripcion
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
INSERT INTO cgtb00003 values
(p_tipos.tipo,p_tipos.clave,p_tipos.descripcion,
null,user,current,null,null)
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
INITIALIZE p_tipos.* TO NULL
CLEAR FORM
NEXT FIELD tipo
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION cgpcmod02()
# Captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON cgtb00003.*
LET selec2 = "SELECT * FROM cgtb00003 WHERE ",criterio clipped,
"ORDER BY 1"
PREPARE comando FROM selec2
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
FETCH FIRST busca INTO p_tipos.*
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME p_tipos.*
MENU "OPCION"
COMMAND "Siguiente"
FETCH NEXT busca INTO p_tipos.*
IF status = notfound THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tipos.*
COMMAND "Anterior"
FETCH PREVIOUS busca INTO p_tipos.*
IF status = notfound THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME p_tipos.*
COMMAND "Primero"
FETCH FIRST busca INTO p_tipos.*
LET numero_msg = 5
CALL msg(numero_msg)
DISPLAY BY NAME p_tipos.*
COMMAND "Ultimo"
FETCH FIRST busca INTO p_tipos.*
LET numero_msg = 4
CALL msg(numero_msg)
DISPLAY BY NAME p_tipos.*
COMMAND "Escoger"
INPUT BY NAME p_tipos.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
BEFORE FIELD tipo
NEXT FIELD clave
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
UPDATE cgtb00003 set descripcion = p_tipos.descripcion,
clave = p_tipos.clave
WHERE tipo = p_tipos.tipo
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
COMMAND KEY("L") "eLiminar"
UPDATE cgtb00003 set status_t = "E"
WHERE tipo = p_tipos.tipo
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION