{ -------------------------------------------------------------------------- PROGRAMA : IPPRMT010 OBJETIVO : Maestra de Tipos de Productos Inventario de Producto Terminados. PROGRAMADOR : Ing. Juan Soto. FECHA REALIZACION : Octubre 21, 1996. iptb00024 -------------------------------------------------------------------------- } GLOBALS "ipprgb000.4gl" DEFINE p_iptb24 RECORD LIKE iptb00024.* MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "decomarmol" USER usuarios USING clave SELECT administrador,cod_comp,control2factura,controlordenpedidos,direccion, facturacontrolconduce,fax,fech_crea,fech_mod,nombre,rnc,rutalogocia, status_t,telefono,tipo_db,url,us_crea,us_mod,usuario INTO p_companias.administrador,p_companias.cod_comp, p_companias.control2factura,p_companias.controlordenpedidos,p_companias.direccion, p_companias.facturacontrolconduce,p_companias.fax,p_companias.fech_crea, p_companias.fech_mod,p_companias.nombre,p_companias.rnc,p_companias.rutalogocia, p_companias.status_t,p_companias.telefono,p_companias.tipo_db, p_companias.url,p_companias.us_crea,p_companias.us_mod,p_companias.usuario FROM companias CALL ipprmt010() END MAIN FUNCTION ipprmt010() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, HELP KEY CONTROL-W, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM ipfmmt010 FROM "ipfmmt010" DISPLAY FORM ipfmmt010 #CALL pantalla() DISPLAY "ipprmt010" AT 4,3 DISPLAY "Mantenimiento Tipos De Los Productos " at 6,22 MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" HELP 5 LET INT_FLAG = FALSE CLEAR FORM LET INT_FLAG = FALSE CALL ippcad010() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" HELP 6 CALL ippcmf010() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION ippcad010() ## Captura los datos que va a contener el registro INPUT BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv AFTER FIELD cod_tipo SELECT a.descripcion INTO p_iptb24.descripcion FROM iptb00024 a WHERE a.cod_tipo = p_iptb24.cod_tipo IF STATUS != NOTFOUND THEN LET numero_msg = 12 CALL msg(numero_msg) DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion NEXT FIELD cod_tipo END IF DISPLAY BY NAME p_iptb24.descripcion AFTER INPUT SELECT MAX(a.cod_tipo) INTO p_iptb24.cod_tipo FROM iptb00024 a EXIT INPUT END INPUT IF int_flag THEN LET int_flag = FALSE LET numero_msg = 1 CALL msg(numero_msg) RETURN END IF SELECT MAX(a.cod_tipo) INTO p_iptb24.cod_tipo FROM iptb00024 a IF p_iptb24.cod_tipo IS NULL THEN LET p_iptb24.cod_tipo = 0 END IF LET p_iptb24.cod_tipo = p_iptb24.cod_tipo + 1 DISPLAY p_iptb24.cod_tipo TO cod_tipo INSERT INTO iptb00024 (cod_tipo ,descripcion ,status_t ,us_crea ,fech_crea ,us_mod ,fech_mod ,cod_inv) values (p_iptb24.cod_tipo,p_iptb24.descripcion,null,SUSER_SNAME(),GETDATE(),null,null,p_iptb24.cod_inv) LET numero_msg = 1 CALL msg(numero_msg) END FUNCTION FUNCTION ippcmf010() ## Aqui se prepara para la captura del criterio de seleccion MESSAGE "" CLEAR FORM CONSTRUCT criterio ON a.cod_tipo,a.descripcion FROM cod_tipo,descripcion IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = " SELECT UNIQUE a.cod_tipo,a.descripcion,a.cod_inv FROM iptb00024 a WHERE ", criterio clipped, " ORDER BY a.cod_tipo" PREPARE busca FROM selec DECLARE datos SCROLL CURSOR WITH HOLD FOR busca OPEN datos FETCH FIRST datos INTO p_iptb24.* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO p_iptb24.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO p_iptb24.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO p_iptb24.* DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO p_iptb24.* DISPLAY BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME p_iptb24.cod_tipo,p_iptb24.descripcion,p_iptb24.cod_inv WITHOUT DEFAULTS BEFORE INPUT LET p_iptb24.cod_inv=3 DISPLAY BY NAME p_iptb24.cod_inv AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE iptb00024 SET descripcion = p_iptb24.descripcion, us_mod = SUSER_SNAME(), fech_mod = GETDATE() , cod_inv= p_iptb24.cod_inv WHERE cod_tipo = p_iptb24.cod_tipo LET numero_msg = 13 CALL msg(numero_msg) EXIT INPUT END INPUT COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla" UPDATE iptb00024 SET status_t = "E", us_mod = SUSER_SNAME(), fech_mod = GETDATE() WHERE @cod_tipo = p_iptb24.cod_tipo LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM # CALL ayuda() EXIT MENU END MENU END FUNCTION