{ ------------------------------------------------------------------ PROGRAMA : COPRRP027 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 coprrp027() CLEAR SCREEN CALL pantalla() DISPLAY "coprrp027" 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 reporte_27 TO "C:\\archivo" FOREACH busqueda INTO prt_reorden.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT reporte_27(prt_reorden.*) END FOREACH FINISH REPORT reporte_27 RUN "type C:\\archivo > %USPRINT%" END FUNCTION ###### Funcion que disena el reporte REPORT reporte_27(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,comprimido_12_on,comprimido_on,comprimido_off, doble_on,doble_off,negrillas_on,negrillas_off CHAR(2) DEFINE cant,costo,prec,c_base,c_otros_g,c_c_flete,t_c_flete,t_t_flete DECIMAL(12,2), num_ord INTEGER, c_cod_n,c_cod_grupo,c_cod_tipo, 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, comprimido_12_off,Negrillas_on PRINT COLUMN 1, "coprrp027", COLUMN l, p_companias.nombre CLIPPED, COLUMN 140, "Pag. ",pageno using "###" PRINT COLUMN 50, " SISTEMA DE COMPRAS", COLUMN 140, today using "dd/mm/yy" PRINT COLUMN 50, " PLAN DE REORDEN MENSUAL SEGUN PROYECCIONES", COLUMN 140, time SKIP 1 LINE PRINT COLUMN 1, "FECHA: Del ", x.fecha_del using "dd/mmm/yy", " Al ", x.fecha_al using "dd/mmm/yy" 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, "-------------------------------------------------", "-------------------------------------------------", "-------------------------------------------------" PRINT negrillas_on BEFORE GROUP OF x.mes_reord PRINT negrillas_on PRINT COLUMN 1, x.mes_reord PRINT negrillas_off LET t_c_flete = 0 IF t_t_flete IS NULL THEN LET t_t_flete = 0 END IF 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 UNIQUE c_flete,otros_g INTO c_c_flete,c_otros_g FROM cotb00014 WHERE num_oc = num_ord AND status_t IS NULL AND fech_oc > "010694" ####### Selecionando la base de medida para la compra de un material SELECT UNIQUE MAX(a.base) INTO c_base FROM intb00002 a WHERE 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.status_t IS NULL 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 PRINT negrillas_on PRINT COLUMN 81,"TOTAL...", COLUMN 94,t_c_flete using "###,###,###.##" PRINT negrillas_off ON LAST ROW SKIP 1 LINE PRINT negrillas_on PRINT COLUMN 73, "TOTAL GENERAL...", COLUMN 94, t_t_flete using "###,###,###.##" PRINT negrillas_on,comprimido_12_off END REPORT