{ ------------------------------------------------------------------------------- PROGRAMA : IPPRCS002 OBJETIVO : Consulta Maestra de Productos PROGRAMADOR : JUAN SOTO FECHA REALIZACION : Febrero 1997 DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO ------------------------------------------------------------------------------- } GLOBALS "ipprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL ipprcs002() END MAIN FUNCTION ipprcs002() #WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS FORM LINE 7, ERROR LINE 24, COMMENT LINE 23 OPEN FORM ipfmcs002 FROM "ipfmcs002" DISPLAY FORM ipfmcs002 CALL PANTALLA() DISPLAY "ipprcs002" AT 4,3 DISPLAY "Catalogo Productos " AT 6,28 DISPLAY " Continua Consultando" AT 2,2 ATTRIBUTE (BLUE,REVERSE) DISPLAY " Cancela Operacion" AT 2,56 ATTRIBUTE (BLUE,REVERSE) ## Aqui se prepara el criterio de seleccion LABEL volver: CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec FROM cod_n,cod_grupo, cod_tipo,cod_sec IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,a.unidad_med, ", " a.bodega,a.cod_grupo,a.cod_cia,a.exist_max,a.exist_min, ", " a.dia_llegada,a.descrip_ing ", "FROM iptb00002 a ", "WHERE a.status_t is null AND ",criterio CLIPPED," ORDER BY 1,2,3,4 " PREPARE busca FROM selec DECLARE accion CURSOR FOR busca ## Busca los registros con la condicion dada y verifica si el producto terminado ## existe en el catalogo de bienes y servicios. LET idx = 1 FOREACH accion INTO prod[idx].*,descrip1 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET prod[idx].existencia = 0 SELECT SUM(a.cantidad_2) INTO prod[idx].existencia FROM iptb00006 a WHERE a.cod_n = prod[idx].cod_n1 AND a.cod_grupo=prod[idx].cod_grupo1 AND a.cod_tipo=prod[idx].cod_tipo1 AND a.cod_sec=prod[idx].cod_sec1 AND a.status_t IS NULL IF prod[idx].existencia IS NULL THEN LET prod[idx].existencia = 0 END IF LET prod[idx].descrip_esp1 = prod[idx].descrip_esp1 CLIPPED LET idx = idx + 1 END FOREACH CALL set_count (idx-1) DISPLAY ARRAY prod TO consart.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN ELSE CLEAR FORM GOTO volver END IF END FUNCTION