Files
MBS/PROYECTOS/indir/inprrp024.4gl
T

199 lines
5.9 KiB
Plaintext

{
-------------------------------------------------------------------------------
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