{ ------------------------------------------------------------------------------- PROGRAMA : INPRCS004 OBJETIVO : Consulta Maestra de Materia Prima PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Agosto 14, 1992 ------------------------------------------------------------------------------- } GLOBALS "inprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL inprcs004() END MAIN FUNCTION inprcs004() #WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS FORM LINE 7, ERROR LINE 23, COMMENT LINE 22 OPEN FORM infmcs004 FROM "infmcs004" DISPLAY FORM infmcs004 CALL PANTALLA() DISPLAY "inprcs004" AT 4,3 DISPLAY "Catalogo Materia Prima" AT 6,29 DISPLAY " Continua Consultando" AT 2,7 ATTRIBUTE (YELLOW,REVERSE) DISPLAY " Cancela Operacion" AT 2,50 ATTRIBUTE (YELLOW,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,c.bodega,SUM(d.cantidad_2),c.pto_reorden, ", " c.dia_llegada,MAX(b.precio),c.pto_reorden ", "FROM intb00001 a, intb00006 d,OUTER intb00002 c, OUTER cotb00015 b ", "WHERE a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec AND ", " a.cod_n = c.cod_n AND a.cod_grupo = c.cod_grupo AND ", " a.cod_tipo = c.cod_tipo AND a.cod_sec = c.cod_sec AND ", " a.cod_n = d.cod_n AND a.cod_grupo = d.cod_grupo AND ", " a.cod_tipo = d.cod_tipo AND a.cod_sec = d.cod_sec AND ", " a.status_t is null AND d.status_t is null AND ",CRITERIO CLIPPED, " GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ", " a.unidad_med,c.bodega,c.pto_reorden, ", " c.dia_llegada,c.pto_reorden ORDER BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec " PREPARE busca FROM selec DECLARE accion CURSOR FOR busca ## Busca los registros con la condicion dada y verifica si el articulo existe ## en el catalogo de bienes y servicios. LET idx = 1 LET general = 0 FOREACH accion INTO art[idx].* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) SLEEP 2 RETURN END IF CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF # Calcula el valor total promedio de la existencia de una materia prima en base # al producto de la existencia de la materia prima por el costo promedio que # tiene esa materia prima LET art[idx].valor = 0 LET art[idx].valor = art[idx].existencia * art[idx].precio # Calcula la sumatoria del valor total promedio de la existencia de una materia # prima LET general = general + art[idx].valor LET idx = idx + 1 END FOREACH DISPLAY "Total General = " AT 24,40 DISPLAY general using "##,###,###.##" AT 24,58 CALL set_count (idx-1) DISPLAY ARRAY art 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