Files
MBS/PROYECTO/addir/adprmt029.txt
T

268 lines
7.4 KiB
Plaintext

{
------------------------------------------------------------------
PROGRAMA : ADPRMT029
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Planes de Seguros de Vida
PROGRAMADOR : Oscar Castillo
FECHA REALIZACION : Wednesday, 22 November, 2000
------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
FUNCTION adprmt029()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM adfmmt029 FROM "adfmmt029"
DISPLAY FORM adfmmt006
CALL pantalla()
DISPLAY "adprmt006" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Nacionalidades" AT 6,36 ATTRIBUTE(BLACK)
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion"
let int_flag = false
CLEAR FORM
CALL adpcad006()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Ctrl-C> Cancela Operacion"
let int_flag = false
CALL adpcmf006()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION adpcad006()
WHENEVER ERROR CONTINUE
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
INPUT BY NAME nacion.*
## VERIFICA QUE EL CODIGO NO EXISTA EN EL CATALOGO DE NACIONALIDADES. SI
## EXISTE ENTONCES DESPLIEGA LOS DATOS DEL REGISTRO EXISTENTE.
AFTER FIELD cod_nac
IF nacion.cod_nac IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_nac
ELSE
SELECT * INTO nacion.* FROM adtb00007
WHERE cod_nac = nacion.cod_nac
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF nacion.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD cod_nac
END IF
DISPLAY BY NAME nacion.*
LET numero_msg = 12
CALL msg(numero_msg)
LET nacion.nom_nac = NULL
NEXT FIELD cod_nac
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
END IF
AFTER FIELD nom_nac
IF nacion.nom_nac IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nom_nac
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
## SI NO OCURRE NINGUN ERROR SE PROCEDE A INSERTAR EL REGISTRO
IF nacion.nom_nac IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nom_nac
ELSE
INSERT INTO adtb00007 VALUES (nacion.cod_nac,nacion.nom_nac,
null, USER, CURRENT, null, null)
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
LET nacion.cod_nac = NULL
LET nacion.nom_nac = NULL
NEXT FIELD cod_nac
END IF
AFTER FIELD fech_mod
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION adpcmf006()
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA LA
## MODIFICACION DE REGISTROS.
WHENEVER ERROR CONTINUE
CONSTRUCT criterio ON adtb00007.* FROM adtb00007.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM adtb00007 where ",
" status_t is null and ",
criterio clipped,
" ORDER BY 1"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
DECLARE dato SCROLL CURSOR FOR busca
OPEN dato
FETCH FIRST dato INTO nacion.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
DISPLAY BY NAME nacion.*
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT dato INTO nacion.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME nacion.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS dato INTO nacion.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME nacion.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST dato INTO nacion.*
DISPLAY BY NAME nacion.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST dato INTO nacion.*
DISPLAY BY NAME nacion.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
IF nacion.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
## SE SELECCIONAN LOS CAMPOS MODIFICABLES
INPUT BY NAME nacion.nom_nac,
nacion.us_crea,
nacion.fech_crea,
nacion.us_mod,
nacion.fech_mod WITHOUT DEFAULTS
AFTER FIELD nom_nac
IF nacion.nom_nac IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nom_nac
END IF
#### Verifica si el usuario presiono la tecla <Ctrl-C>
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
CLEAR FORM
RETURN
END IF
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
## AQUI SE ACTUALIZA EL REGISTRO
UPDATE adtb00007 SET nom_nac = nacion.nom_nac,
us_mod = USER,
fech_mod = CURRENT
WHERE cod_nac = nacion.cod_nac
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
## AQUI SE ELIMINAN LOS REGISTROS
COMMAND KEY ("L") "eLiminar"
UPDATE adtb00007 SET status_t = "E"
WHERE cod_nac = nacion.cod_nac
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION