{ ------------------------------------------------------------------ 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" " Adiciona Registro Cancela Operacion" let int_flag = false CLEAR FORM CALL adpcad006() COMMAND "Consultar-modificar" " Realiza Busqueda 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" " Actualiza Registro 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 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