{ ------------------------------------------------------------------ PROGRAMA : VEPRMT010 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla Control de Presupuesto. PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Enero 13, 1992. ------------------------------------------------------------------ } GLOBALS "veprgb000.4gl" FUNCTION veprmt010() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 OPEN FORM vefmmt010 FROM "vefmmt010" DISPLAY FORM vefmmt010 CALL pantalla() DISPLAY "veprmt010" AT 4,3 DISPLAY "Control del Presupuesto" AT 6,28 MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" let int_flag = false CLEAR FORM CALL vepcad010() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" let int_flag = false CALL vepcmf010() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION vepcad010() # WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro INPUT BY NAME controles.* ## Verifica que el codigo no exista en el catalogo de unidades. Si existe, ## entonces despliega los datos del registro existente. AFTER FIELD anos IF controles.anos IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD controles.anos ELSE SELECT * INTO controles.* FROM vetb00018 WHERE anos = controles.anos IF status >= 0 THEN IF status != NOTFOUND THEN IF medidas.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD anos END IF DISPLAY BY NAME controles.* LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD anos END IF ELSE CALL integridad() IF bandera = 1 THEN CLEAR SCREEN RETURN END IF END IF END IF AFTER FIELD fecha_in IF controles.fecha_in IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_in END IF AFTER FIELD fecha_fi IF controles.fecha_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_fi END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF controles.fecha_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_fi ELSE INSERT INTO vetb00018 VALUES (controles.anos,controles.fecha_in, controles.fecha_fi,null, USER, CURRENT, null, null) LET numero_msg = 1 CALL msg(numero_msg) CLEAR FORM LET controles.anos = NULL LET controles.fecha_in = NULL LET controles.fecha_fi = NULL NEXT FIELD anos END IF AFTER FIELD fech_mod EXIT INPUT END INPUT END FUNCTION FUNCTION vepcmf010() ## Aqui se prepara para la captura del criterio de seleccion # WHENEVER ERROR CONTINUE CONSTRUCT criterio ON vetb00018.* FROM vetb00018.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = " SELECT UNIQUE * FROM vetb00018 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 datos SCROLL CURSOR FOR busca OPEN datos FETCH FIRST datos INTO controles.* 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 controles.* MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO controles.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME controles.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO controles.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME controles.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO controles.* DISPLAY BY NAME controles.* LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO controles.* DISPLAY BY NAME controles.* LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF controles.status_t = "E" THEN LET numero_msg = 39 CALL msg(numero_msg) RETURN END IF INPUT BY NAME controles.fecha_in, controles.fecha_fi, controles.us_crea, controles.fech_crea, controles.us_mod, controles.fech_mod WITHOUT DEFAULTS AFTER FIELD fecha_fi IF controles.fecha_fi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_fi 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 UPDATE vetb00018 SET fecha_in = controles.fecha_in, fecha_fi = controles.fecha_fi, us_mod = USER, fech_mod = CURRENT WHERE anos = controles.anos LET numero_msg = 13 CALL msg(numero_msg) EXIT INPUT END INPUT COMMAND KEY ("L") "eLiminar" UPDATE vetb00018 SET status_t = "E" WHERE anos = controles.anos LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION