195 lines
5.2 KiB
Plaintext
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
|