{ =========================================================================== Programa : CTPRMT013.4GL Sistema : Sistema de Costos Proceso : Mantenimiento para el control de los dias de produccion por mes del periodo contable Autor : Tadeo A. Ferreras Fecha : Julio 13, 1993 =========================================================================== } GLOBALS "ctprgb000.4gl" DEFINE mes_g RECORD mes CHAR(4), descrip CHAR(25), dias_prod DECIMAL(12,2) END RECORD FUNCTION ctprmt013() LET int_flag = FALSE #WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 CALL pantalla() DISPLAY "ctprmt013" AT 4,3 DISPLAY "Dias de Produccion" AT 6,31 OPEN FORM ctfmmt013 FROM "ctfmmt013" DISPLAY FORM ctfmmt013 MENU "OPCIONES" COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" CLEAR FORM CALL ctmdmt013() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION ctmdmt013() LET int_flag = FALSE CONSTRUCT criterio ON a.mes FROM mes IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET selec = "SELECT a.mes,a.descrip,a.dias_prod FROM mestable a ", "WHERE a.status_t IS NULL AND ",criterio CLIPPED," ORDER BY a.mes" PREPARE comando FROM selec DECLARE pro SCROLL CURSOR FOR comando OPEN pro FETCH FIRST pro INTO mes_g.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME mes_g.* MENU "Opcion" COMMAND "Siguiente" "Presenta en pantalla al proximo registro encontrado" FETCH NEXT pro INTO mes_g.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) FETCH LAST pro INTO mes_g.* END IF DISPLAY BY NAME mes_g.* COMMAND "Anterior" "Presenta en pantalla al registro anterior encontrado" FETCH PREVIOUS pro INTO mes_g.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) FETCH LAST pro INTO mes_g.* END IF DISPLAY BY NAME mes_g.* COMMAND "Primero" "Presenta en pantalla al primer registro encontrado" FETCH FIRST pro INTO mes_g.* LET numero_msg = 5 CALL msg(numero_msg) DISPLAY BY NAME mes_g.* COMMAND "Ultimo" "Presenta en pantalla al ultimo registro encontrado" FETCH LAST pro INTO mes_g.* DISPLAY BY NAME mes_g.* COMMAND "Escoger" INPUT BY NAME mes_g.dias_prod WITHOUT DEFAULTS AFTER FIELD dias_prod IF mes_g.dias_prod IS NULL OR mes_g.dias_prod < 0 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD dias_prod END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE mestable SET (dias_prod,us_mod,fech_mod) = (mes_g.dias_prod,USER,CURRENT) WHERE mes = mes_g.mes LET numero_msg = 13 CALL msg(numero_msg) #COMMAND KEY ("N") "aNular" # UPDATE mestable SET (status_t,us_mod,fech_mod) = # ("E",USER,CURRENT) # WHERE mes = mes_g.mes COMMAND "Retornar" EXIT MENU END MENU END FUNCTION