{ ------------------------------------------------------------------ PROGRAMA : COPRMT003 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla Furgones. PROGRAMADOR : JUAN SOTO FECHA REALIZACION : Agosto 1997 DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO ------------------------------------------------------------------ } GLOBALS "coprgb000.4gl" FUNCTION coprmt003() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 OPEN FORM cofmmt003 FROM "cofmmt003" DISPLAY FORM cofmmt003 CALL pantalla() DISPLAY "coprmt003" AT 4,3 DISPLAY "Furgones" AT 6,36 MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" CLEAR FORM CALL copcad003() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" CALL copcmf003() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION copcad003() WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro INPUT BY NAME furgones.* ## Verifica que el codigo no exista en el catalogo de furgones. Si existe, ## entonces despliega los datos del registro existente. AFTER FIELD cod_furg IF furgones.cod_furg = 0 OR furgones.cod_furg IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_furg ELSE SELECT * INTO furgones.* FROM cotb00003 WHERE cod_furg = furgones.cod_furg IF STATUS != NOTFOUND THEN IF furgones.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD cod_furg END IF DISPLAY BY NAME furgones.* LET numero_msg = 12 CALL msg(numero_msg) LET furgones.descrip_furg = NULL NEXT FIELD cod_furg END IF END IF CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF AFTER FIELD descrip_furg IF furgones.descrip_furg IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descrip_furg END IF AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF furgones.descrip_furg IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descrip_furg ELSE INSERT INTO cotb00003 VALUES (furgones.cod_furg, furgones.descrip_furg, null, USER, CURRENT, null, null) CALL integridad() IF bandera = 1 THEN RETURN END IF LET numero_msg = 1 CALL msg(numero_msg) CLEAR FORM LET furgones.cod_furg = NULL LET furgones.descrip_furg = NULL NEXT FIELD cod_furg END IF AFTER FIELD fech_mod EXIT INPUT END INPUT END FUNCTION FUNCTION copcmf003() WHENEVER ERROR CONTINUE ## Aqui se prepara para la captura del criterio de seleccion CONSTRUCT criterio ON cotb00003.* FROM cotb00003.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = " SELECT UNIQUE * FROM cotb00003 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 furgones.* IF STATUS = NOTFOUND THEN LET numero_msg = 19 CALL msg(numero_msg) RETURN END IF CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF DISPLAY BY NAME furgones.* MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO furgones.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME furgones.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO furgones.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME furgones.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO furgones.* DISPLAY BY NAME furgones.* LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO furgones.* DISPLAY BY NAME furgones.* LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF furgones.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) RETURN END IF INPUT BY NAME furgones.descrip_furg, furgones.us_crea, furgones.fech_crea, furgones.us_mod, furgones.fech_mod WITHOUT DEFAULTS AFTER FIELD descrip_furg IF furgones.descrip_furg IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD descrip_furg 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 cotb00003 SET descrip_furg = furgones.descrip_furg, us_mod = USER, fech_mod = CURRENT WHERE cod_furg = furgones.cod_furg CALL integridad() IF bandera = 1 THEN RETURN END IF LET numero_msg = 13 CALL msg(numero_msg) EXIT INPUT END INPUT COMMAND KEY ("L") "eLiminar" UPDATE cotb00003 SET status_t = "E" WHERE cod_furg = furgones.cod_furg LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION