{ ------------------------------------------------------------------ PROGRAMA : COPRRP103 OBJETIVO : Reporte Detallado de Plan de Reorden Segun Proyecciones. PROGRAMADOR : Tadeo A. Ferreras F. FECHA REALIZACION : Mayo 13, 1993 ------------------------------------------------------------------ } GLOBALS "coprgb000.4gl" ##### Registro para almacenar la informacion enviada al reporte DEFINE prt_reorden RECORD fecha_del LIKE cotb00020.fecha_del, fecha_al LIKE cotb00020.fecha_al, cod_n LIKE cotb00020.cod_n, cod_grupo LIKE cotb00020.cod_grupo, cod_tipo LIKE cotb00020.cod_tipo, cod_sec LIKE cotb00020.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, tipo LIKE cotb00020.tipo, dia_reord LIKE cotb00020.dia_reord, mes_reord LIKE cotb00020.mes_reord END RECORD ##### Funcion para buscar informacion FUNCTION coprrp103() CLEAR SCREEN CALL pantalla() DISPLAY "coprrp103" AT 4,3 DISPLAY "Listado de Reordenamiento" AT 6,27 LET int_flag = FALSE LET tipo_papel = 2 CALL msgrp000(tipo_papel) ##### Proceso de busqueda de la informacion requerida DECLARE busqueda CURSOR FOR SELECT a.fecha_del,a.fecha_al,a.cod_n, a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp, b.unidad_med,a.tipo,a.dia_reord,a.mes_reord FROM cotb00020 a,intb00001 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.mes_reord is not null DISPLAY "Reporte Generandose ... Por Favor Espere" AT 19,14 ATTRIBUTE(BOLD,REVERSE) START REPORT reorden TO "C:\\archivo" FOREACH busqueda INTO prt_reorden.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE FINISH REPORT reorden EXIT FOREACH END IF OUTPUT TO REPORT reorden(prt_reorden.*) END FOREACH FINISH REPORT reorden RUN "type C:\\archivo > %USPRINT%" END FUNCTION ###### Funcion que disena el reporte REPORT reorden(x) DEFINE x RECORd fecha_del LIKE cotb00020.fecha_del, fecha_al LIKE cotb00020.fecha_al, cod_n LIKE cotb00020.cod_n, cod_grupo LIKE cotb00020.cod_grupo, cod_tipo LIKE cotb00020.cod_tipo, cod_sec LIKE cotb00020.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, tipo LIKE cotb00020.tipo, dia_reord LIKE cotb00020.dia_reord, mes_reord LIKE cotb00020.mes_reord END RECORD DEFINE comprimido_12_off CHAR(2), comprimido_12_on CHAR(2), comprimido_on CHAR(2), comprimido_off CHAR(2), doble_on CHAR(2), doble_off CHAR(2), negrillas_on CHAR(2), negrillas_off CHAR(2) DEFINE cant,costo,prec DECIMAL(10,2), c_base,c_otros_g DECIMAL(10,2), c_c_flete DECIMAL(10,2), t_c_flete DECIMAL(10,2), t_t_flete DECIMAL(10,2), num_ord INTEGER, c_cod_n SMALLINT, c_cod_grupo SMALLINT, c_cod_tipo SMALLINT, c_cod_sec SMALLINT OUTPUT LEFT MARGIN 6 TOP MARGIN 1 ###### Sortenado la informacion en orden de mes de reorden y dia de reorden ORDER BY x.mes_reord,x.dia_reord, x.cod_n,x.cod_grupo, x.cod_tipo,x.cod_sec ##### Creando el formato de salida FORMAT PAGE HEADER LET negrillas_on = ASCII 27, ASCII 71 LET negrillas_off = ASCII 27, ASCII 72 LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET comprimido_on = ASCII 15 LET comprimido_off = ASCII 18 LET comprimido_12_on = ASCII 27, ASCII 77 LET comprimido_12_off = ASCII 27, ASCII 80 LET l = (147 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, Negrillas_on,comprimido_on COLUMN 1, "coprrp103", COLUMN l, p_companias.nombre CLIPPED, COLUMN 140, "Pag. ", pageno using "###" PRINT COLUMN 65, "SISTEMA DE COMPRAS", COLUMN 140, today using "dd/mm/yy" PRINT COLUMN 54, "PLAN DE REORDEN MENSUAL SEGUN PROYECCIONES", COLUMN 140, time PRINT COLUMN 61, "Del ", x.fecha_del using "dd/mmm/yy", " Al ", x.fecha_al using "dd/mmm/yy" SKIP 2 LINES PRINT COLUMN 1, "-----------------------------------", "-----------------------------------", "-----------------------------------", "-----------------------------------", "-------" PRINT COLUMN 52, "UNIDAD", COLUMN 134, "FECHA DE" PRINT COLUMN 19, "MATERIAL", COLUMN 52, "MEDIDA", COLUMN 64, "TIPO", COLUMN 81, "CANTIDAD", COLUMN 101, "C & F", COLUMN 134, "REORDEN" PRINT COLUMN 1, "-----------------------------------", "-----------------------------------", "-----------------------------------", "-----------------------------------", "-------", negrillas_on BEFORE GROUP OF x.mes_reord SKIP 1 LINE PRINT COLUMN 1,negrillas_on,x.mes_reord,negrillas_off LET t_c_flete = 0 IF t_t_flete IS NULL THEN LET t_t_flete = 0 END IF SKIP 1 LINE ON EVERY ROW ###### Selecionando la ultima orden de compra para un material SELECT UNIQUE cod_n,cod_grupo,cod_tipo,cod_sec,max(num_oc) INTO c_cod_n,c_cod_grupo,c_cod_tipo,c_cod_sec,num_ord FROM cotb00015 WHERE cod_n = x.cod_n AND cod_grupo = x.cod_grupo AND cod_tipo = x.cod_tipo AND cod_sec = x.cod_sec group by 1,2,3,4 ###### Selecionando canmtidad y precio del material SELECT UNIQUE cantidad,precio INTO cant,prec FROM cotb00015 WHERE cod_n = c_cod_n AND cod_grupo = c_cod_grupo AND cod_tipo = c_cod_tipo AND cod_sec = c_cod_sec AND num_oc = num_ord ####### Selecionando los gastos que se incurren en la traida de materiales SELECT c_flete,otros_g INTO c_c_flete,c_otros_g FROM cotb00014 WHERE num_oc = num_ord ####### Selecionando la base de medida para la compra de un material SELECT base INTO c_base FROM intb00002 WHERE cod_n = c_cod_n AND cod_grupo = c_cod_grupo AND cod_tipo = c_cod_tipo AND cod_sec = c_cod_sec IF c_base IS NULL THEN LET c_base = 1 END IF IF c_c_flete IS NULL THEN LET c_c_flete = 0 END IF IF c_otros_g IS NULL THEN LET c_otros_g = 0 END IF ###### Calculando el costo para la compra de un material LET costo = ((cant * prec)/c_base) + (c_c_flete + c_otros_g) PRINT COLUMN 2, x.cod_n using "&","-",x.cod_grupo using "&","-", x.cod_tipo using "&&","-",x.cod_sec using "&&&", COLUMN 15,x.descrip_esp clipped, COLUMN 55, x.unidad_med, COLUMN 63, x.tipo clipped, COLUMN 75, cant using "###,###,###.##", COLUMN 92, costo using "###,###,###.##", COLUMN 136, x.dia_reord ##### Acumulando total por mes de reorden LET t_c_flete = t_c_flete + costo ##### Acumulando total general LET t_t_flete = t_t_flete + costo AFTER GROUP OF x.mes_reord skip 1 line PRINT COLUMN 1,negrillas_on, COLUMN 81,"TOTAL...", COLUMN 94,t_c_flete using "###,###,###.##",negrillas_off ON LAST ROW SKIP 1 LINE PRINT COLUMN 1,negrillas_on, COLUMN 73,"TOTAL GENERAL...", COLUMN 94,t_t_flete using "###,###,###.##", negrillas_off,comprimido_12_off END REPORT