{ ------------------------------------------------------------------ PROGRAMA : TEPRMT007 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Balance Final Partidas del Cash Flow PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Diciembre 06, 1995. ------------------------------------------------------------------ } GLOBALS "teprgb000.4gl" FUNCTION teprmt007() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM tefmmt007 FROM "tefmmt007" DISPLAY FORM tefmmt007 CALL pantalla() # CALL ayuda() DISPLAY "teprmt007" AT 4,3 ATTRIBUTE(RED) DISPLAY "Balance Final Del Real y Estimado de Cash-Flow" at 6,17 ATTRIBUTE(BLACK) MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" LET INT_FLAG = FALSE CLEAR FORM CALL tepcad007() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" LET int_flag = FALSE CALL tepcmf007() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION tepcad007() # WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro INPUT BY NAME p_tetb07.* AFTER FIELD ano IF p_tetb07.ano IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD ano END IF SELECT UNIQUE valor,valor1 INTO p_tetb07.valor,p_tetb07.valor1 FROM tetb00007 WHERE @ano = p_tetb07.ano IF STATUS != NOTFOUND THEN DISPLAY BY NAME p_tetb07.valor,p_tetb07.valor1 LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD ano END IF AFTER FIELD valor IF p_tetb07.valor IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD valor END IF AFTER FIELD valor1 IF p_tetb07.valor1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD valor END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET numero_msg = FALSE RETURN END IF INSERT INTO tetb00007 VALUES (p_tetb07.*) UPDATE tetb00007 SET (us_crea,fech_crea) = (USER,CURRENT) WHERE @ano = p_tetb07.ano LET numero_msg = 1 CALL msg(numero_msg) END FUNCTION FUNCTION tepcmf007() LET int_flag = FALSE ## Aqui se prepara para la captura del criterio de seleccion MESSAGE "" CLEAR FORM CONSTRUCT criterio ON a.ano,a.valor,a.valor1 FROM ano,valor,valor1 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = " SELECT UNIQUE a.* FROM tetb00007 a ", " WHERE a.status_t IS NULL AND ",criterio clipped," ORDER BY a.ano " PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF DECLARE datos SCROLL CURSOR FOR busca OPEN datos FETCH FIRST datos INTO p_tetb07.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME p_tetb07.* MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO p_tetb07.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME p_tetb07.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO p_tetb07.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME p_tetb07.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO p_tetb07.* DISPLAY BY NAME p_tetb07.* LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO p_tetb07.* DISPLAY BY NAME p_tetb07.* LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME p_tetb07.valor THRU p_tetb07.fech_mod WITHOUT DEFAULTS AFTER FIELD valor IF p_tetb07.valor IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD valor END IF AFTER FIELD valor1 IF p_tetb07.valor1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD valor1 END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE tetb00007 SET (valor,valor1,us_mod,fech_mod) = (p_tetb07.valor,p_tetb07.valor1,USER,CURRENT) WHERE @ano = p_tetb07.ano LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla" UPDATE tetb00007 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT) WHERE @ano = p_tetb07.ano LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION