{ ------------------------------------------------------------------------------- PROGRAMA : COPRRP030 OBJETIVO : Formulas de Productos Terminados Por Material PROGRAMADOR : Juan Soto FECHA REALIZACION : Noviembre 19, 1996 ------------------------------------------------------------------------------- } GLOBALS "coprgb000.4gl" FUNCTION coprrp030() DEFINE prodterm RECORD num_formula LIKE catb00001.num_formula, base_medida LIKE catb00002.base_medida, cod_n_pt LIKE catb00001.cod_n_pt, cod_grupo_pt LIKE catb00001.cod_grupo_pt, cod_tipo_pt LIKE catb00001.cod_tipo_pt, cod_sec_pt LIKE catb00001.cod_sec_pt, descrip_esp LIKE intb00001.descrip_esp, unidad LIKE intb00001.unidad_med, cod_n_mp LIKE catb00001.cod_n_mp, cod_grupo_mp LIKE catb00001.cod_grupo_mp, cod_tipo_mp LIKE catb00001.cod_tipo_mp, cod_sec_mp LIKE catb00001.cod_sec_mp, cantidad LIKE catb00001.cantidad END RECORD, codigo CHAR(7) #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 LET formulario = formulario CLIPPED,"cofmrp030" OPEN FORM cofmrp030 FROM formulario DISPLAY FORM cofmrp030 CALL pantalla() DISPLAY "coprrp030" AT 4,3 DISPLAY "Uso De Materiales X Productos Al STD" AT 6,21 LET tipo_papel = 1 CALL msgrp000(tipo_papel) CONSTRUCT criterio ON a.cod_n_mp,a.cod_grupo_mp, a.cod_tipo_mp,a.cod_sec_mp FROM cod_n_mp,cod_grupo_mp,cod_tipo_mp, cod_sec_mp IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET SELEC = "SELECT a.num_formula,e.base_medida,a.cod_n_pt,a.cod_grupo_pt, ", " a.cod_tipo_pt,a.cod_sec_pt,b.descrip_esp,b.unidad_med,", " a.cod_n_mp, ", " a.cod_grupo_mp,a.cod_tipo_mp,a.cod_sec_mp,a.cantidad ", "FROM catb00001 a,catb00002 e,intb00001 b ", "WHERE a.num_formula = e.num_formula AND a.status_t IS NULL AND ", " e.status_t IS NULL AND a.cod_n_mp = b.cod_n AND ", " a.cod_grupo_mp = b.cod_grupo AND a.cod_tipo_mp = b.cod_tipo ", " AND a.cod_sec_mp = b.cod_sec AND ", criterio clipped," ORDER BY 1,3,4,5,6,8,9,10,11" IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) DECLARE accion CURSOR FOR busca START REPORT termina TO "C:\\archivo" FOREACH accion INTO prodterm.* LET codigo = prodterm.cod_n_mp using "&",prodterm.cod_grupo_mp using "&", prodterm.cod_tipo_mp using "&&",prodterm.cod_sec_mp using "&&&" OUTPUT TO REPORT termina(prodterm.*,codigo) END FOREACH FINISH REPORT termina CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT termina(x,q_codigo) DEFINE x RECORD num_formula LIKE catb00001.num_formula, base_medida LIKE catb00002.base_medida, cod_n_pt LIKE catb00001.cod_n_pt, cod_grupo_pt LIKE catb00001.cod_grupo_pt, cod_tipo_pt LIKE catb00001.cod_tipo_pt, cod_sec_pt LIKE catb00001.cod_sec_pt, descrip_esp LIKE intb00001.descrip_esp, unidad LIKE intb00001.unidad_med, cod_n_mp LIKE catb00001.cod_n_mp, cod_grupo_mp LIKE catb00001.cod_grupo_mp, cod_tipo_mp LIKE catb00001.cod_tipo_mp, cod_sec_mp LIKE catb00001.cod_sec_mp, cantidad LIKE catb00001.cantidad END RECORD, q_codigo CHAR(7) DEFINE bandera,bandera1 CHAR(1) DEFINE total_formula SMALLINT DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE descrip3 CHAR(30) DEFINE unidad CHAR(3) OUTPUT TOP MARGIN 0 LEFT MARGIN 2 BOTTOM MARGIN 2 ORDER BY q_codigo,x.cod_n_pt,x.cod_grupo_pt,x.cod_tipo_pt,x.cod_sec_pt FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET bandera1 = "N" LET hora = time LET l = (139 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 3, comp_on,negrillas_on PRINT COLUMN 1, "coprrp001", COLUMN l, p_companias.nombre CLIPPED, COLUMN 132, "Pag. ",pageno using "###" PRINT COLUMN 47, " Sistema de Compras", COLUMN 132, today using "dd/mm/yy" PRINT COLUMN 47, " Uso De Materiales Por Producto Al STD.", COLUMN 135, hora SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "---------------------------------------" PRINT COLUMN 2, "Materiales", COLUMN 45, "Und", COLUMN 69, "Productos Terminados", COLUMN 110, "Cantidad" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "---------------------------------------", negrillas_off SKIP 1 LINE BEFORE GROUP OF q_codigo PRINT COLUMN 1, negrillas_on, COLUMN 2, x.cod_n_mp using "&","-",x.cod_grupo_mp using "&","-", x.cod_tipo_mp using "&&","-",x.cod_sec_mp using "&&&", " ",x.descrip_esp," ",x.unidad, COLUMN 73, negrillas_off ON EVERY ROW SELECT descrip_esp INTO descrip3 FROM intb00001 WHERE cod_n = x.cod_n_pt AND cod_grupo = x.cod_grupo_pt AND cod_tipo = x.cod_tipo_pt AND cod_sec = x.cod_sec_pt PRINT COLUMN 69, x.cod_n_pt USING "&","-",x.cod_grupo_pt USING "&","-", x.cod_tipo_pt USING "&&","-",x.cod_sec_pt USING "&&&", " ",descrip3, COLUMN 100, x.cantidad USING "###,###.####" LET bandera = "N" ON LAST ROW PRINT comp_off END REPORT