{ ------------------------------------------------------------------------------- PROGRAMA : COPRMT014 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Compania Aseguradora PROGRAMADOR : JUAN SOTO FECHA REALIZACION : AGOSTO 1997 DIRECTOR DE PROYECTO : JOSE ALFREDO PAULINO ALEJO ------------------------------------------------------------------------------- } GLOBALS "coprgb000.4gl" FUNCTION coprmt014() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 OPEN FORM cofmmt014 FROM "cofmmt014" DISPLAY FORM cofmmt014 CALL pantalla() DISPLAY "coprmt014" AT 4,3 DISPLAY "Companias Aseguradoras" AT 6,29 MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" CLEAR FORM LET int_flag = false CALL copcad014() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" LET int_flag = false CALL copcmf014() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION copcad014() WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro INPUT BY NAME seguros.* ## Verifica que el seguro exista en el catalogo de seguros. Si existe, ## entonces despliega los datos del registro existente. AFTER FIELD cod_ca IF seguros.cod_ca IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_ca ELSE SELECT * INTO seguros.* FROM cotb00022 WHERE cod_ca = seguros.cod_ca IF STATUS != NOTFOUND THEN IF seguros.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD cod_ca END IF DISPLAY BY NAME seguros.* LET numero_msg = 12 CALL msg(numero_msg) LET seguros.nom_ca = NULL LET seguros.poliza = NULL NEXT FIELD cod_ca ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF INITIALIZE seguros.nom_ca,seguros.poliza TO NULL DISPLAY BY NAME seguros.nom_ca,seguros.poliza END IF END IF AFTER FIELD nom_ca IF seguros.nom_ca IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD nom_ca END IF AFTER FIELD poliza IF seguros.poliza IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD poliza END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF seguros.poliza IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD poliza ELSE INSERT INTO cotb00022 VALUES (seguros.cod_ca,seguros.nom_ca, seguros.poliza,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) CLEAR FORM LET seguros.cod_ca = NULL LET seguros.nom_ca = NULL LET seguros.poliza = NULL NEXT FIELD cod_ca END IF END INPUT END FUNCTION FUNCTION copcmf014() WHENEVER ERROR CONTINUE ## Aqui se prepara para la captura del criterio de seleccion CONSTRUCT criterio ON cotb00022.* FROM cotb00022.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET numero_msg = FALSE RETURN END IF LET SELEC = "SELECT UNIQUE * FROM cotb00022 where ", " status_t is null and ", criterio clipped, " ORDER BY 1" PREPARE busca FROM selec DECLARE datos SCROLL CURSOR FOR busca OPEN datos CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF FETCH FIRST datos INTO seguros.* IF STATUS = NOTFOUND THEN LET numero_msg = 36 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME seguros.* MENU "OPCIONES" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO seguros.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME seguros.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO seguros.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME seguros.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO seguros.* DISPLAY BY NAME seguros.* LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO seguros.* DISPLAY BY NAME seguros.* LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF seguros.status_t != "E" THEN LET numero_msg = 36 CALL msg(numero_msg) RETURN END IF INPUT BY NAME seguros.nom_ca, seguros.poliza, seguros.us_crea, seguros.fech_crea, seguros.us_mod, seguros.fech_mod WITHOUT DEFAULTS AFTER FIELD poliza IF seguros.poliza IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD poliza END IF AFTER INPUT ## Verifica si el usuario presiono la tecla IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE cotb00022 SET nom_ca = seguros.nom_ca, poliza = seguros.poliza, us_mod = USER, fech_mod = CURRENT WHERE cod_ca = seguros.cod_ca LET numero_msg = 13 CALL msg(numero_msg) EXIT INPUT END INPUT COMMAND KEY ("L") "eLiminar" UPDATE cotb00022 SET status_t = "E" WHERE cod_ca = seguros.cod_ca LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION