{ ------------------------------------------------------------------------------ PROGRAMA : VEPRMT044 OBJETIVO : Mantenimiento Presupuesto Por Zona PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : Septiembre 11, 1997. ------------------------------------------------------------------------------ } GLOBALS "veprgb000.4gl" DEFINE nombre_mes CHAR(20), pcod_n LIKE vetb00044.cod_n, pmes LIKE vetb00044.mes, pano LIKE vetb00044.ano FUNCTION veprmt044() OPTIONS FORM LINE 9, ERROR LINE 24, COMMENT LINE 23 CALL pantalla() OPEN FORM vefmmt044 FROM "vefmmt044" DISPLAY FORM vefmmt044 CLEAR FORM DISPLAY "veprmt044" AT 4,3 DISPLAY "Presupuesto De Ventas Por Zona" AT 6,25 MENU "OPCION" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" LET int_flag = false CALL vepcad44() COMMAND "Consultar-modificar" " Busca Registro Cancela Operacion" CALL vepcmod44() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION vepcad44() # Captura de informacion INITIALIZE p_vetb44.* TO NULL LET nombre_m = NULL DISPLAY BY NAME nombre_m INPUT BY NAME p_vetb44.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) AFTER FIELD cod_n SELECT a.producto INTO nombre_m FROM iptb00020 a WHERE a.cod_n = p_vetb44.cod_n and a.status_t is null IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cod_n END IF DISPLAY BY NAME nombre_m ATTRIBUTE(CYAN) AFTER FIELD mes SELECT a.descrip INTO nombre_mes FROM mestable a WHERE a.mes = p_vetb44.mes IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD mes END IF SELECT UNIQUE * FROM vetb00044 a WHERE a.ano = p_vetb44.ano AND a.mes = p_vetb44.mes IF STATUS != NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD mes END IF DISPLAY BY NAME nombre_mes ATTRIBUTE(CYAN) AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF INSERT INTO vetb00044 values (p_vetb44.*) CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF UPDATE vetb00044 set us_crea = user, fech_crea = current WHERE @cod_n = p_vetb44.cod_n AND @mes = p_vetb44.mes AND @ano = p_vetb44.ano LET numero_msg = 1 CALL msg(numero_msg) NEXT FIELD ano EXIT INPUT END INPUT END FUNCTION FUNCTION vepcmod44() # Captura del criterio de seleccion CONSTRUCT BY NAME criterio ON vetb00044.* LET selec2 = "SELECT * FROM vetb00044 WHERE ",criterio clipped," and status_t is null ", " ORDER BY 1" PREPARE comando FROM selec2 DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO p_vetb44.* IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN) CALL busca_c() MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT busca INTO p_vetb44.* IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN) CALL busca_c() COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS busca INTO p_vetb44.* IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN) CALL busca_c() COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST busca INTO p_vetb44.* LET numero_msg = 5 CALL msg(numero_msg) DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN) CALL busca_c() COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH FIRST busca INTO p_vetb44.* LET numero_msg = 4 CALL msg(numero_msg) DISPLAY BY NAME p_vetb44.* ATTRIBUTE(CYAN) CALL busca_c() COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF p_vetb44.status_t = "E" THEN LET numero_msg = 39 CALL msg(numero_msg) RETURN END IF INPUT BY NAME p_vetb44.cantidad 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 LET pcod_n = p_vetb44.cod_n LET pmes = p_vetb44.mes LET pano = p_vetb44.ano UPDATE vetb00044 set cantidad = p_vetb44.cantidad, us_mod = user, fech_mod = current WHERE @cod_n = pcod_n AND @mes = pmes AND @ano = pano CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY("L") "eLiminar" LET pcod_n = p_vetb44.cod_n LET pmes = p_vetb44.mes LET pano = p_vetb44.ano DELETE FROM vetb00044 WHERE @cod_n = pcod_n AND @mes = pmes AND @ano = pano LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" EXIT MENU END MENU END FUNCTION FUNCTION busca_c() SELECT a.producto INTO nombre_m FROM iptb00020 a WHERE a.cod_n = p_vetb44.cod_n and a.status_t is null DISPLAY BY NAME nombre_m ATTRIBUTE(CYAN) END FUNCTION