{ ------------------------------------------------------------------------------ PROGRAMA : VEPRMT045 OBJETIVO : Mantenimiento Presupuesto Por Producto PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : OCTUBRE 2, 1997. ------------------------------------------------------------------------------ } GLOBALS "veprgb000.4gl" DEFINE nombre_mes CHAR(20), pmarca SMALLINT, nombre_v CHAR(40) MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT TO "smarmotech" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL veprmt045() END MAIN FUNCTION veprmt045() OPTIONS FORM LINE 9, ERROR LINE 24, COMMENT LINE 23 # CALL pantalla() OPEN FORM vefmmt045 FROM "vefmmt045" DISPLAY FORM vefmmt045 MENU "OPCION" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" LET int_flag = false CALL vepcad45() COMMAND "Consultar-modificar" " Busca Registro Cancela Operacion" CALL vepcmod45() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION vepcad45() # Captura de informacion INITIALIZE presupuesto.* TO NULL INPUT BY NAME presupuesto.* WITHOUT DEFAULTS BEFORE INPUT LET presupuesto.cantidad=0 AFTER FIELD sec_vend SELECT a.nom1_emp,a.apell1_emp INTO descrip1,descrip4 FROM adtb00003 a WHERE a.num_emp = presupuesto.sec_vend AND a.status_t IS NULL IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD mes END IF LET nombre_v = descrip1 CLIPPED," ",descrip4 CLIPPED DISPLAY BY NAME nombre_v AFTER FIELD mes SELECT a.descrip INTO nombre_mes FROM mestable a WHERE a.mes = presupuesto.mes IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD mes END IF DISPLAY BY NAME nombre_mes AFTER FIELD cod_n SELECT a.descripcion INTO descrip2 FROM iptb00034 a WHERE a.cod_categoria = presupuesto.cod_n IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD cod_n END IF SELECT a.nombre_marca INTO nombre_m FROM iptb00019 a WHERE a.marca = pmarca LET descripcion = descrip2 CLIPPED," ",nombre_m CLIPPED," ", descrip3 CLIPPED DISPLAY BY NAME descripcion NEXT FIELD cantidad AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF SELECT UNIQUE a.* FROM vetb00045 a WHERE a.ano = presupuesto.ano AND a.mes = presupuesto.mes AND a.sec_vend = presupuesto.sec_vend AND a.cod_n = presupuesto.cod_n IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD ano END IF LET presupuesto.fech_crea = CURRENT INSERT INTO vetb00045 (ano ,mes ,ventas ,sec_vend ,cod_cia ,cod_n ,cod_grupo ,cod_tipo ,cod_sec ,cantidad ,valor ,us_crea ,fech_crea ) VALUES (presupuesto.ano ,presupuesto.mes ,presupuesto.ventas ,presupuesto.sec_vend ,presupuesto.cod_n ,presupuesto.cod_grupo ,presupuesto.cod_tipo ,presupuesto.cod_sec ,presupuesto.cantidad ,presupuesto.valor ,usuarios ,getdate() ) CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF CLEAR FORM LET numero_msg = 1 CALL msg(numero_msg) NEXT FIELD ano EXIT INPUT END INPUT END FUNCTION FUNCTION vepcmod45() # Captura del criterio de seleccion CONSTRUCT BY NAME criterio ON vetb00045.* LET selec2 = "SELECT *,rowid FROM vetb00045 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 presupuesto.*,idx IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF CALL busca_codigo() CALL busca_vend() DISPLAY BY NAME presupuesto.* ATTRIBUTE(CYAN) MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT busca INTO presupuesto.*,idx IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF CALL busca_codigo() CALL busca_vend() DISPLAY BY NAME presupuesto.* ATTRIBUTE(CYAN) COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS busca INTO presupuesto.*,idx IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF CALL busca_codigo() CALL busca_vend() DISPLAY BY NAME presupuesto.* ATTRIBUTE(CYAN) COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST busca INTO presupuesto.*,idx LET numero_msg = 5 CALL msg(numero_msg) CALL busca_codigo() CALL busca_vend() DISPLAY BY NAME presupuesto.* ATTRIBUTE(CYAN) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH FIRST busca INTO presupuesto.*,idx LET numero_msg = 4 CALL msg(numero_msg) CALL busca_codigo() CALL busca_vend() DISPLAY BY NAME presupuesto.* ATTRIBUTE(CYAN) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF presupuesto.status_t = "E" THEN LET numero_msg = 39 CALL msg(numero_msg) RETURN END IF INPUT BY NAME presupuesto.cantidad,presupuesto.valor WITHOUT DEFAULTS 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 DELETE FROM vetb00045 WHERE rowid = idx INSERT INTO vetb00045 values (presupuesto.*) CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF CLEAR FORM LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY("L") "eLiminar" DELETE FROM vetb00045 WHERE rowid = idx LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" EXIT MENU END MENU END FUNCTION FUNCTION busca_codigo() SELECT a.descripcion INTO descrip2 FROM iptb00034 a WHERE a.cod_categoria = presupuesto.cod_n SELECT a.nombre_marca INTO nombre_m FROM iptb00019 a WHERE a.marca = pmarca LET descripcion = descrip2 CLIPPED," ",nombre_m CLIPPED," ", descrip3 CLIPPED DISPLAY BY NAME descripcion ATTRIBUTE(CYAN) END FUNCTION FUNCTION busca_vend() SELECT a.nom1_emp,a.apell1_emp INTO descrip1,descrip4 FROM adtb00003 a WHERE a.num_emp = presupuesto.sec_vend AND a.status_t IS NULL LET nombre_v = descrip1 CLIPPED," ",descrip4 CLIPPED DISPLAY BY NAME nombre_v ATTRIBUTE(CYAN) END FUNCTION