Files
MBS/PROYECTO/vedir/veprmt046.4gl
T

192 lines
5.8 KiB
Plaintext

{
------------------------------------------------------------------------------
PROGRAMA : VEPRMT046
OBJETIVO : Mantenimiento Vendedores
PROGRAMADOR : Ing. Juan F. Soto
FECHA REALIZACION : Octubre 2, 1997.
------------------------------------------------------------------------------
}
GLOBALS
"veprgb000.4gl"
DEFINE vendedores RECORD
num_emp LIKE adtb00003.num_emp,
nom1_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp
END RECORD,
localidad CHAR(30)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL veprmt046()
END MAIN
FUNCTION veprmt046()
OPTIONS
FORM LINE 9,
ERROR LINE 24,
COMMENT LINE 23
OPEN FORM vefmmt046 FROM "vefmmt046"
DISPLAY FORM vefmmt046
CLEAR FORM
MENU "OPCION"
COMMAND "Adicionar" "<Esc> Adiciona Registro <Ctrl-C> Cancela Operacion"
LET int_flag = false
CALL vepcad46()
COMMAND "Consultar-modificar"
"<Esc> Busca Registro <Ctrl-C> Cancela Operacion"
CALL vepcmod46()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION vepcad46()
# Captura de informacion
INITIALIZE vendedores.* TO NULL
INPUT BY NAME vendedores.* WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER FIELD num_emp
SELECT a.nom1_emp,a.apell1_emp
FROM adtb00003 a
WHERE a.num_emp = vendedores.num_emp AND
a.status_t IS NULL
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
INSERT INTO seg0000 (num_emp ,nom1_emp, apell1_emp) VALUES
(vendedores.*)
INSERT INTO vetb00084 values (vendedores.num_emp,localidad)
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 1
CALL msg(numero_msg)
NEXT FIELD num_emp
EXIT INPUT
END INPUT
END FUNCTION
FUNCTION vepcmod46()
# Captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON a.num_emp,a.nom1_emp
LET selec2 =
"SELECT a.num_emp,a.nom1_emp,a.apell1_emp,b.nombre FROM adtb00003 a,vetb00084 b ",
" WHERE ",criterio clipped," and A.status_t is null AND A.NUM_EMP = B.SEC_VEND ",
" ORDER BY 1"
PREPARE comando FROM selec2
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
FETCH FIRST busca INTO vendedores.*,localidad
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME vendedores.*,localidad ATTRIBUTE(CYAN)
MENU "OPCION"
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT busca INTO vendedores.*,localidad
IF status = notfound THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME vendedores.*,localidad ATTRIBUTE(CYAN)
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS busca INTO vendedores.*,localidad
IF status = notfound THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME vendedores.*,localidad ATTRIBUTE(CYAN)
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST busca INTO vendedores.*,localidad
LET numero_msg = 5
CALL msg(numero_msg)
DISPLAY BY NAME vendedores.*,localidad ATTRIBUTE(CYAN)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH FIRST busca INTO vendedores.*,localidad
LET numero_msg = 4
CALL msg(numero_msg)
DISPLAY BY NAME vendedores.*,localidad ATTRIBUTE(CYAN)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Ctrl-C> Cancela Operacion"
INPUT BY NAME vendedores.nom1_emp,
vendedores.apell1_emp,localidad WITHOUT DEFAULTS ATTRIBUTE (BOLD)
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
UPDATE adtb00003 set nom1_emp = vendedores.nom1_emp,
apell1_emp = vendedores.apell1_emp,
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE @num_emp = vendedores.num_emp
SELECT a.sec_vend FROM vetb00084 a
WHERE a.sec_vend = vendedores.num_emp
IF STATUS = NOTFOUND THEN
INSERT INTO vetb00084 values (vendedores.num_emp,localidad)
ELSE
UPDATE vetb00084 set nombre = localidad WHERE VETB00084.sec_vend = vendedores.num_emp
END IF
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
RETURN
END IF
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY("L") "eLiminar"
DELETE FROM adtb00003
WHERE @num_emp = vendedores.num_emp
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION