{ ------------------------------------------------------------------------------- PROGRAMA : INPRRP001 OBJETIVO : Reporte Catalogo de BIENES Y SERVICIOS PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Agosto 18, 1992 ------------------------------------------------------------------------------- } GLOBALS "inprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL inprrp001() END MAIN FUNCTION inprrp001() DEFINE catalogo 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, descrip_ing LIKE intb00001.descrip_ing, unidad_med LIKE intb00001.unidad_med END RECORD OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM infmrp001 FROM "infmrp001" DISPLAY FORM infmrp001 CALL pantalla() DISPLAY "inprrp001" AT 4,3 DISPLAY " Catalogo de Bienes y Servicios " AT 6,24 ## 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 intb00001.cod_n,intb00001.cod_grupo, intb00001.cod_tipo,intb00001.cod_sec FROM cod_n,cod_grupo,cod_tipo,cod_sec LET SELEC = "SELECT cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp, ", " descrip_ing,unidad_med FROM intb00001 ", " WHERE ", "status_t is NULL AND ", criterio clipped, # " ORDER BY 1,2,3,4" " ORDER BY 5" 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 24,2 ATTRIBUTE (BOLD) ## Verifica si el usuario presiono la tecla 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 24,2 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT articulo TO "C:\\archivo" FOREACH accion INTO catalogo.* IF status = NOTFOUND THEN EXIT FOREACH ELSE OUTPUT TO REPORT articulo(catalogo.*) END IF END FOREACH FINISH REPORT articulo CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT articulo(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, descrip_ing LIKE intb00001.descrip_ing, unidad_med LIKE intb00001.unidad_med END RECORD 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 hora CHAR(5) OUTPUT LEFT MARGIN 1 ## 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 hora = time LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 3, ASCII 27, ASCII 80 PRINT COLUMN 1, "inprrp001", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 72, "Pag. ",pageno using "###" PRINT COLUMN 17, " Sistema de Inventario de Materia Prima", COLUMN 72, today using "dd/mm/yyyy" PRINT COLUMN 17, " Catalogo de Bienes y Servicios", COLUMN 75, hora PRINT COLUMN 1, doce PRINT COLUMN 1, "---------------------------------------------------", "---------------------------------------------" PRINT COLUMN 1, "Nivel", COLUMN 7, "Grupo", COLUMN 13, "Tipo", COLUMN 18, "Sec", COLUMN 23, "Descripcion Espanol", COLUMN 56, "Descripcion Ingles", COLUMN 91, "Unidad" PRINT COLUMN 1, "-----------------------------------------------------", "-------------------------------------------" ON EVERY ROW PRINT COLUMN 3, x.cod_n USING "&", COLUMN 9, x.cod_grupo USING "&", COLUMN 14, x.cod_tipo USING "&&", COLUMN 18, x.cod_sec USING "&&&", COLUMN 23, x.descrip_esp, COLUMN 56, x.descrip_ing, COLUMN 93, x.unidad_med ON LAST ROW SKIP 1 LINE PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####" PRINT COLUMN 3, ASCII 27, ASCII 80 END REPORT