{ ------------------------------------------------------------------ PROGRAMA : TEPRMT002 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Procedencias. PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Diciembre 2, 1992. ------------------------------------------------------------------ } GLOBALS "teprgb000.4gl" FUNCTION teprmt002() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM tefmmt002 FROM "tefmmt002" DISPLAY FORM tefmmt002 CALL pantalla() # CALL ayuda() DISPLAY "teprmt002" AT 4,3 ATTRIBUTE(RED) DISPLAY "Mantenimiento de Procedencia" at 6,26 ATTRIBUTE(BLACK) MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" HELP 5 LET INT_FLAG = FALSE CLEAR FORM LET INT_FLAG = FALSE CALL tepcad002() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" HELP 6 LET int_flag = FALSE CALL tepcmf002() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION tepcad002() # WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro INITIALIZE procedencias.* TO NULL LET descrip1 = NULL LET descrip2 = NULL INPUT BY NAME procedencias.* AFTER FIELD procedencia IF procedencias.procedencia is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD procedencia END IF SELECT UNIQUE descripcion INTO procedencias.descripcion FROM tetb00002 WHERE @procedencia = procedencias.procedencia IF STATUS != NOTFOUND THEN DISPLAY BY NAME procedencias.descripcion LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD procedencia END IF AFTER FIELD descripcion IF procedencias.descripcion[1] = " " OR procedencias.descripcion is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descripcion 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 tetb00002 VALUES (procedencias.*) UPDATE tetb00002 SET (us_crea,fech_crea) = (USER,CURRENT) WHERE @procedencia = procedencias.procedencia LET numero_msg = 1 CALL msg(numero_msg) END FUNCTION FUNCTION tepcmf002() LET int_flag = FALSE ## Aqui se prepara para la captura del criterio de seleccion MESSAGE "" CLEAR FORM CONSTRUCT criterio ON a.procedencia,a.descripcion FROM procedencia,descripcion 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 tetb00002 a ", " WHERE a.status_t IS NULL AND ", criterio clipped," ORDER BY a.procedencia " 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 procedencias.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME procedencias.* MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO procedencias.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME procedencias.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO procedencias.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME procedencias.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO procedencias.* DISPLAY BY NAME procedencias.* LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO procedencias.* DISPLAY BY NAME procedencias.* LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME procedencias.descripcion THRU procedencias.fech_mod WITHOUT DEFAULTS AFTER FIELD descripcion IF procedencias.descripcion[1] = " " OR procedencias.descripcion is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descripcion END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE tetb00002 SET (descripcion,us_mod,fech_mod) = (procedencias.descripcion,USER,CURRENT) WHERE @procedencia = procedencias.procedencia LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla" DELETE FROM tetb00002 WHERE @procedencia = procedencias.procedencia LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION