{ ------------------------------------------------------------------------------- PROGRAMA : COPRRP006 OBJETIVO : Relacion Producto Terminado - Materia Prima PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Octubre 21, 1992 ------------------------------------------------------------------------------- } GLOBALS "coprgb000.4gl" FUNCTION coprrp006() 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, 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 DEFINE codigo CHAR(7) WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM cofmrp006 FROM "cofmrp006" DISPLAY FORM cofmrp006 CALL pantalla() DISPLAY "coprrp006" AT 4,3 DISPLAY "Producto Terminado - Materia Prima" AT 6,23 LET tipo_papel = 1 CALL msgrp000(tipo_papel) CONSTRUCT criterio ON a.num_formula,a.cod_n_pt,a.cod_grupo_pt, a.cod_tipo_pt,a.cod_sec_pt FROM num_formula,cod_n_pt,cod_grupo_pt,cod_tipo_pt, cod_sec_pt 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,a.cod_n_mp, ", " a.cod_grupo_mp,a.cod_tipo_mp,a.cod_sec_mp,a.cantidad ", "FROM catb00001 a,intb00001 b,intb00002 c,iptb00002 d,catb00002 e ", "WHERE a.num_formula = e.num_formula AND a.cod_n_pt = d.cod_n AND ", " a.cod_grupo_pt= d.cod_grupo AND a.cod_tipo_pt= d.cod_tipo AND ", " a.cod_sec_pt = d.cod_sec AND a.cod_n_pt = b.cod_n AND ", " a.cod_grupo_pt = b.cod_grupo AND a.cod_tipo_pt=b.cod_tipo AND ", " a.cod_sec_pt = b.cod_sec AND a.cod_n_mp = c.cod_n AND ", " a.cod_grupo_mp = c.cod_grupo AND a.cod_tipo_mp = c.cod_tipo AND ", " a.cod_sec_mp = c.cod_sec AND a.status_t is null AND ", criterio clipped," ORDER BY 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 producto TO "C:\\archivo" FOREACH accion INTO prodterm.* LET codigo = prodterm.cod_n_pt using "&",prodterm.cod_grupo_pt using "&", prodterm.cod_tipo_pt using "&&",prodterm.cod_sec_pt using "&&&" OUTPUT TO REPORT producto(prodterm.*,codigo) END FOREACH FINISH REPORT producto CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT producto(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, 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) OUTPUT TOP MARGIN 0 LEFT MARGIN 2 BOTTOM MARGIN 2 ORDER BY q_codigo,x.cod_n_mp,x.cod_grupo_mp,x.cod_tipo_mp,x.cod_sec_mp, x.num_formula 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, "coprrp006", COLUMN l, p_companias.nombre CLIPPED, COLUMN 132, "Pag. ",pageno using "###" PRINT COLUMN 60, "Sistema de Compras", COLUMN 132, today using "dd/mm/yy" PRINT COLUMN 54, "Producto Terminado - Materia Prima", COLUMN 135, hora SKIP 1 LINES PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "---------------------------------------" PRINT COLUMN 11, "Base de" PRINT COLUMN 1, "Formula", COLUMN 11, "Medida", COLUMN 23, "Producto Terminado", COLUMN 69, "Materia Prima", COLUMN 118, "Und", COLUMN 132, "Cantidad" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "---------------------------------------" SKIP 1 LINE BEFORE GROUP OF q_codigo PRINT COLUMN 1, negrillas_on, COLUMN 3, x.num_formula using "##", COLUMN 11, x.base_medida using "#########", COLUMN 23, x.cod_n_pt using "&","-",x.cod_grupo_pt using "&","-", x.cod_tipo_pt using "&&","-",x.cod_sec_pt using "&&&", " ",x.descrip_esp, COLUMN 73, negrillas_off ON EVERY ROW SELECT descrip_esp,unidad_med INTO descrip3,unidad FROM intb00001 WHERE cod_n = x.cod_n_mp AND cod_grupo = x.cod_grupo_mp AND cod_tipo = x.cod_tipo_mp AND cod_sec = x.cod_sec_mp PRINT COLUMN 69, x.cod_n_mp USING "&","-",x.cod_grupo_mp USING "&","-", x.cod_tipo_mp USING "&&","-",x.cod_sec_mp USING "&&&", " ",descrip3, COLUMN 118, unidad, COLUMN 128, x.cantidad USING "###,###.####" LET bandera = "N" ON LAST ROW PRINT comp_off END REPORT