Files
MBS/PROYECTO/codir/coprmt019.4gl
T

283 lines
7.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : COPRMT019
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla Maestra de Moneda de Cambio
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : Agosto 1997
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
-------------------------------------------------------------------------------
}
GLOBALS "coprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(4) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
CALL coprmt019()
END MAIN
FUNCTION coprmt019()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM cofmmt019 FROM "cofmmt019"
DISPLAY FORM cofmmt019
DISPLAY "coprmt019" AT 4,3
DISPLAY "Maestra de Monedas" AT 6,31
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Delete> Cancela Operacion"
CLEAR FORM
LET int_flag = false
CALL copcad019()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Delete> Cancela Operacion"
LET int_flag = false
CALL copcmf019()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION copcad019()
## Captura los datos que va a contener el registro
INPUT BY NAME monedas.*
## Verifica que el pago exista en el catalogo de pago. Si existe,
## entonces despliega los datos del registro existente.
AFTER FIELD cod_mon
IF monedas.cod_mon IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_mon
ELSE
SELECT * INTO monedas.* FROM cotb00031
WHERE cod_mon = monedas.cod_mon
IF STATUS != NOTFOUND THEN
IF monedas.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD cod_mon
END IF
DISPLAY BY NAME monedas.*
LET numero_msg = 12
CALL msg(numero_msg)
LET monedas.descrip_mon = NULL
NEXT FIELD cod_mon
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
INITIALIZE monedas.descrip_mon TO NULL
DISPLAY BY NAME monedas.descrip_mon,monedas.simbolo
END IF
END IF
AFTER FIELD descrip_mon
IF monedas.descrip_mon IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descrip_mon
END IF
AFTER FIELD simbolo
IF monedas.simbolo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD simbolo
END IF
AFTER FIELD tasa_cambio
IF monedas.tasa_cambio IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tasa_cambio
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 cotb00031 VALUES (monedas.cod_mon,monedas.descrip_mon,
monedas.simbolo,monedas.tasa_cambio,
null,USUARIOS,GETDATE(),null,null)
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
END FUNCTION
FUNCTION copcmf019()
#WHENEVER ERROR CONTINUE
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT criterio ON cotb00031.* FROM cotb00031.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = "SELECT UNIQUE * FROM cotb00031 ",
"WHERE status_t is null and ", criterio clipped,
"ORDER BY cod_mon"
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 monedas.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 36
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME monedas.*
MENU "OPCIONES"
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO monedas.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME monedas.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO monedas.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME monedas.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO monedas.*
DISPLAY BY NAME monedas.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO monedas.*
DISPLAY BY NAME monedas.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Delete> Cancela Operacion"
IF monedas.status_t != "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME monedas.descrip_mon,monedas.simbolo,
monedas.tasa_cambio,monedas.us_crea,
monedas.fech_crea,monedas.us_mod,
monedas.fech_mod WITHOUT DEFAULTS
AFTER FIELD descrip_mon
IF monedas.descrip_mon IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descrip_mon
END IF
AFTER FIELD simbolo
IF monedas.simbolo IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD simbolo
END IF
AFTER FIELD tasa_cambio
IF monedas.tasa_cambio IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tasa_cambio
END IF
AFTER INPUT
## Verifica si el usuario presiono la tecla <Delete>
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE cotb00031 SET descrip_mon = monedas.descrip_mon,
simbolo = monedas.simbolo,
tasa_cambio = monedas.tasa_cambio,
us_mod = USUARIOS,
fech_mod = GETDATE()
WHERE cod_mon = monedas.cod_mon
LET numero_msg = 13
CALL msg(numero_msg)
EXIT INPUT
END INPUT
COMMAND KEY ("L") "eLiminar"
UPDATE cotb00031 SET status_t = "E",
us_mod = usuarios,
fech_mod = getdate()
WHERE cod_mon = monedas.cod_mon
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION