Files
MBS/PROYECTO/ctdir/ctprmt013.4gl
T

154 lines
3.3 KiB
Plaintext

{
===========================================================================
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"
"<ESC> Realiza Busqueda <Supr> 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