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

195 lines
5.2 KiB
Plaintext

{
-----------------------------------------------------------------------------
PROGRAMA : CGPRMT009
OBJETIVO : Mantenimiento Codigos Cronologicos de Beneficiarios de
los Cheques de Pago.
REALIZADO POR : Ing. Juan F. Soto
FECHA : Diciembre 4, 1995.
-----------------------------------------------------------------------------
}
GLOBALS "cgprgb000.4gl"
FUNCTION cgprmt009()
OPTIONS
FORM LINE 8,
ERROR LINE 24,
COMMENT LINE 22,
PROMPT LINE 23
CALL pantalla()
OPEN FORM cgfmmt009 FROM "cgfmmt009"
DISPLAY FORM cgfmmt009
DISPLAY "cgprmt009" AT 4,3
DISPLAY "Cronologico Beneficiarios" AT 6,25
MENU "OPCION"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion"
CALL cgpcad009()
COMMAND "Consultar-modificar"
"<Esc> Busca Registro <Ctrl-C> Cancela Operacion"
CALL cgpcmf009()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION cgpcad009()
DEFINE longi SMALLINT
INITIALIZE cronologico.* TO NULL
INPUT BY NAME cronologico.* WITHOUT DEFAULTS
AFTER FIELD cod_cro
IF cronologico.cod_cro is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_cro
END IF
SELECT unique a.*
INTO cronologico.*
FROM cgtb00031 a
WHERE a.cod_cro = cronologico.cod_cro
IF status != notfound THEN
LET numero_msg = 12
CALL msg(numero_msg)
DISPLAY BY NAME cronologico.*
INITIALIZE cronologico.* TO NULL
NEXT FIELD cod_cro
END IF
LET longi = LENGTH(cronologico.cod_cro)
IF longi < 8 THEN
LET numero_msg = 77
CALL msg(numero_msg)
NEXT FIELD cod_cro
END IF
AFTER FIELD beneficiario
IF cronologico.beneficiario is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD beneficiario
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 cgtb00031 VALUES(cronologico.*)
UPDATE cgtb00031 set us_crea = user,
fech_crea = current
WHERE cod_cro = cronologico.cod_cro
LET numero_msg = 1
CALL msg(numero_msg)
END INPUT
END FUNCTION
## Funcion para consultar/modificar una entrada de diario
FUNCTION cgpcmf009()
## SE PREPARA EL CRITERIO PARA CONSULTAR/MODIFICAR UN REGISTRO
CONSTRUCT BY NAME CRITERIO ON cod_cro,beneficiario
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
CLEAR FORM
RETURN
END IF
LET selec = "SELECT UNIQUE * FROM cgtb00031 WHERE ",criterio clipped,
" ORDER BY cod_cro"
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO cronologico.*
IF status = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME cronologico.*
LABEL vuelve:
MENU "OPCION"
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO cronologico.*
IF status = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME cronologico.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO cronologico.*
IF status = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME cronologico.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO cronologico.*
IF status = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME cronologico.*
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO cronologico.*
IF status = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME cronologico.*
COMMAND "Escoger"
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
INPUT BY NAME cronologico.beneficiario WITHOUT DEFAULTS
AFTER FIELD beneficiario
IF cronologico.beneficiario is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD beneficiario
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
UPDATE cgtb00031 set beneficiario = cronologico.beneficiario,
us_mod = user,
fech_mod = current
WHERE cod_cro = cronologico.cod_cro
EXIT INPUT
END INPUT
## AQUI SE REALIZA LA ANULACION DE UN REGISTRO
COMMAND KEY ("N") "aNular"
UPDATE cgtb00031 set status_t = "E",
us_mod = user,
fech_mod = current
WHERE cod_cro = cronologico.cod_cro
COMMAND "Retornar"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION