{ ------------------------------------------------------------------------------ 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" " Adiciona Registro Cancela Operacion" LET int_flag = false CALL vepcad46() COMMAND "Consultar-modificar" " Busca Registro 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" " Actualiza Registro 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