####################################################################### # SISTEMA : DOCUMENTACION DE SISTEMA # PROGRAMA : DSPRMT001.4GL # OBJETIVO : Mantenimiento de la Maestra de Sistema # AUTOR : Tadeo A. Ferreras F. # FECHA : JUNIO 9, 1995 ######################################################################## DATABASE rayovac GLOBALS "dsprgb000.4gl" FUNCTION dsprmt001() OPTIONS FORM LINE 8, ERROR LINE 23, PROMPT LINE 23 OPEN FORM dsfmmt001 FROM "dsfmmt001" DISPLAY FORM dsfmmt001 CALL pantalla() DISPLAY "dsprmt001" AT 4,3 ATTRIBUTE(RED) DISPLAY "Maestra de Sistemas" AT 6,30 ATTRIBUTE(BLACK) MENU "Mant" COMMAND "Adicionar" "Presione para Grabar Para Cancelar" LET int_flag = FALSE CLEAR FORM CALL dsprad001() COMMAND "Consulta-Modificar" "Presione para Actualizar Para Cancelar" LET int_flag = FALSE CLEAR FORM CALL dsprmd001() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION dsprad001() INPUT BY NAME dstb03.* AFTER FIELD cod_sistema IF dstb03.cod_sistema IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cod_sistema END IF SELECT a.* INTO dstb03.* FROM dstb00003 a WHERE a.cod_sistema = dstb03.cod_sistema IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) DISPLAY BY NAME dstb03.* NEXT FIELD cod_sistema END IF AFTER FIELD desc_sistema IF dstb03.desc_sistema IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD desc_sistema END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF INSERT INTO dstb00003 VALUES(dstb03.*) UPDATE dstb00003 SET (us_crea,fech_crea) = (USER,CURRENT) WHERE @cod_sistema = dstb03.cod_sistema LET numero_msg = 1 CALL msg(numero_msg) END FUNCTION FUNCTION dsprmd001() CONSTRUCT criterio ON a.cod_sistema,a.desc_sistema FROM cod_sistema,desc_sistema IF int_flag THEN ERROR "(2) OPERACION CANCELADA" LET int_flag = FALSE RETURN END IF LET selec = "SELECT a.* FROM dstb00003 a WHERE a.status_t IS NULL AND ", criterio CLIPPED," ORDER BY 1" PREPARE comando FROM selec DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO dstb03.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME dstb03.* MENU "OPCION" COMMAND "Siguiente" FETCH NEXT busca INTO dstb03.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb03.* COMMAND "Anterior" FETCH PREVIOUS busca INTO dstb03.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb03.* COMMAND "Primero" FETCH FIRST busca INTO dstb03.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb03.* COMMAND "Ultimo" FETCH LAST busca INTO dstb03.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) END IF DISPLAY BY NAME dstb03.* COMMAND "Escoger" "Presione Para Actualizar Para Cancelar" INPUT BY NAME dstb03.desc_sistema WITHOUT DEFAULTS AFTER FIELD desc_sistema IF dstb03.desc_sistema IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD desc_sistema END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE dstb00003 SET dstb00003.* = dstb03.* WHERE @cod_sistema = dstb03.cod_sistema UPDATE dstb00003 SET (us_mod,fech_mod) = (USER,CURRENT) WHERE @cod_sistema = dstb03.cod_sistema LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY ("L") "eLiminar" UPDATE dstb00003 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT) WHERE @cod_sistema = dstb03.cod_sistema LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" EXIT MENU END MENU END FUNCTION