{ ------------------------------------------------------------------------------- PROGRAMA : INPRRP024 OBJETIVO : Reporte Catalogo de Materia Prima con su categoria PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Oct. 26, 1993 ------------------------------------------------------------------------------- } GLOBALS "inprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL inprrp024() END MAIN FUNCTION inprrp024() DEFINE catalogo1 RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, categoria CHAR(1) END RECORD WHENEVER ERROR CONTINUE OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM infmrp024 FROM "infmrp024" DISPLAY FORM infmrp024 CALL pantalla() DISPLAY "inprrp024" AT 4,3 DISPLAY "Materiales Categorizados" AT 6,28 ## Chequea que el papel para la impresion sea el indicado LET tipo_papel = 1 CALL msgrp000(tipo_papel) IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF ## Aqui se prepara el criterio de seleccion CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.categoria FROM cod_n,cod_grupo,cod_tipo,cod_sec,categoria 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,b.categoria ", "FROM intb00001 a,intb00014 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.status_t is NULL AND b.status_t IS NULL AND ", criterio clipped 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 DECLARE accion CURSOR FOR busca DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT articulo1 TO "C:\\archivo" FOREACH accion INTO catalogo1.* IF status = NOTFOUND THEN EXIT FOREACH ELSE OUTPUT TO REPORT articulo1(catalogo1.*) END IF END FOREACH FINISH REPORT articulo1 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT articulo1(x) DEFINE x RECORD cod_n LIKE intb00001.cod_n, cod_grupo LIKE intb00001.cod_grupo, cod_tipo LIKE intb00001.cod_tipo, cod_sec LIKE intb00001.cod_sec, descrip_esp LIKE intb00001.descrip_esp, unidad_med LIKE intb00001.unidad_med, categoria CHAR(1) END RECORD DEFINE contador INTEGER DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) OUTPUT LEFT MARGIN 1 ORDER BY x.categoria,x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_sec ## Prepara el formato de impresion para el encabezado y el detalle 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 hora = time LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1,negrillas_on PRINT COLUMN 3, normal PRINT COLUMN 1, "inprrp024", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 73, "Pag. ",pageno using "###" PRINT COLUMN 17, " Sistema de Inventario de Materia Prima", COLUMN 73, today using "dd/mm/yyyy" PRINT COLUMN 17, " Materiales Categorizados", COLUMN 76, hora PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" PRINT COLUMN 1, "Categoria", COLUMN 14, "Material", COLUMN 73, "Unidad" PRINT COLUMN 1, "--------------------------------------------------", "------------------------------" PRINT COLUMN 1,negrillas_off BEFORE GROUP OF x.categoria LET contador = 0 PRINT COLUMN 5, x.categoria; ON EVERY ROW LET contador = contador + 1 PRINT COLUMN 14, x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", " ",x.descrip_esp CLIPPED, COLUMN 74, x.unidad_med CLIPPED AFTER GROUP OF x.categoria PRINT COLUMN 1,negrillas_on PRINT COLUMN 3,"Total Categoria ",x.categoria," ",contador USING "###" PRINT COLUMN 1,negrillas_off ON LAST ROW SKIP 1 LINE PRINT COLUMN 1, negrillas_on PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####" PRINT COLUMN 3, ASCII 27, ASCII 80 END REPORT