Files
MBS/PROYECTOS/irdir/irprrp001.4gl
T

188 lines
5.6 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : IRPRRP001
OBJETIVO : Reporte Catalogo de BIENES Y SERVICIOS
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Marzo 11, 1993
-------------------------------------------------------------------------------
}
GLOBALS "irprgb000.4gl"
FUNCTION irprrp01()
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 irfmrp001 FROM "irfmrp001"
DISPLAY FORM irfmrp001
CALL pantalla()
DISPLAY "irprrp001" 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"
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec1 = "SELECT COUNT(*) FROM intb00001 ",
"WHERE ",criterio clipped
PREPARE comando1 FROM selec1
DECLARE busca1 CURSOR FOR comando1
OPEN busca1
FETCH busca1 INTO regi
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 24,2
ATTRIBUTE (BOLD)
## Verifica si el usuario presiono la tecla <Supr>
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
START REPORT articulo TO "C:\\archivo"
LET p_param = "S"
FOREACH accion INTO catalogo.*
IF status = NOTFOUND THEN
EXIT FOREACH
ELSE
CALL termometro(regi,p_param)
LET p_param = "N"
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(2)
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
PRINT COLUMN 3, ASCII 27, ASCII 80,negrillas_on
PRINT COLUMN 1, "irprrp001",
COLUMN 17, " M A R M O T E C H S. A.",
COLUMN 73, "Pag. ",pageno using "###"
PRINT COLUMN 17, " Sistema de Inventario de Repuestos",
COLUMN 73, today using "dd/mm/yy"
PRINT COLUMN 17, " Catalogo de Bienes y Servicios",
COLUMN 76, 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