Files

231 lines
7.2 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : IRPRRP012
OBJETIVO : CATALOGO DE REPUESTOS.
PROGRAMADOR : Ing. Juan Fco. Soto.
FECHA REALIZACION : Enero 29, 1993.
-------------------------------------------------------------------------------
}
GLOBALS "irprgb000.4gl"
MAIN
DEFER INTERRUPT
SELECT * INTO p_companias.* FROM companias
CALL irprrp012()
END MAIN
FUNCTION irprrp012()
DEFINE sel_exist CHAR(300)
DEFINE salir1,salir CHAR(1)
DEFINE idx1,idx SMALLINT
DEFINE hoy DATE
DEFINE dat_exist RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
existencia SMALLINT
END RECORD
DEFINE materia RECORD
cod_n LIKE intb00002.cod_n,
cod_grupo LIKE intb00002.cod_grupo,
cod_tipo LIKE intb00002.cod_tipo,
cod_sec LIKE intb00002.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
descrip_ing LIKE intb00001.descrip_ing,
dia_llegada LIKE intb00002.dia_llegada,
unidad_med LIKE intb00001.unidad_med,
descripcion LIKE irtb00002.descrip_esp,
existencia LIKE irtb00002.existencia,
codigo LIKE irtb00010.codigo
END RECORD,
cod smallint
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM irfmrp12 FROM "irfmrp002"
DISPLAY FORM irfmrp12
CALL pantalla()
DISPLAY "irprrp012" AT 4,3
DISPLAY "Conteo de Repuestos " AT 6,30
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME decide
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
FROM cod_n,cod_grupo,cod_tipo,cod_sec
IF decide = "A" THEN
LET SELEC =
"SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ",
" b.descrip_esp,b.descrip_ing,a.dia_llegada,b.unidad_med, ",
" c.nombre,a.existencia,c.codigo ",
" FROM irtb00002 a, intb00001 b, irtb00010 c ",
" 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 c.codigo = a.cod_tipo AND ",
criterio clipped," ORDER BY 11,3,5,1,2,4 "
ELSE
LET SELEC =
"SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec, ",
" b.descrip_esp,b.descrip_ing,a.dia_llegada,b.unidad_med, ",
" c.nombre,a.existencia,c.codigo ",
" FROM irtb00002 a, intb00001 b, irtb00010 c ",
" WHERE ",criterio clipped," and 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 ",
" c.codigo = a.cod_tipo ORDER BY 11,3,1,2,4 "
END IF
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14
ATTRIBUTE (BOLD)
START REPORT reporte_12 TO PIPE "lp -dcentral"
PREPARE busca FROM selec
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)
FOREACH accion INTO materia.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
OUTPUT TO REPORT reporte_12(materia.*)
END FOREACH
FINISH REPORT reporte_12
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_12(x)
DEFINE x RECORD
cod_n LIKE intb00002.cod_n,
cod_grupo LIKE intb00002.cod_grupo,
cod_tipo LIKE intb00002.cod_tipo,
cod_sec LIKE intb00002.cod_sec,
descrip_esp LIKE intb00001.descrip_esp,
descrip_ing LIKE intb00001.descrip_ing,
dia_llegada LIKE intb00002.dia_llegada,
unidad_med LIKE intb00001.unidad_med,
descripcion LIKE irtb00002.descrip_esp,
existencia LIKE irtb00002.existencia,
codigo LIKE irtb00010.codigo
END RECORD
DEFINE l smallint
DEFINE varia CHAR(20)
DEFINE descripcion CHAR(60)
DEFINE primera CHAR(1)
DEFINE doble_on CHAR(6)
DEFINE doble_off CHAR(6)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(6)
DEFINE comp_off CHAR(6)
DEFINE normal CHAR(6)
DEFINE doce CHAR(6)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 027, ASCII 098
LET negrillas_off = ASCII 027, ASCII 099
LET comp_on = ASCII 31
LET comp_off = ASCII 029
LET doce = ASCII 030
LET normal = ASCII 029
LET hora = time
PRINT COLUMN 1, normal
PRINT COLUMN 1, "irprrp012",
COLUMN 18, " M A R M O T E C H S. A.",
COLUMN 75, "Pag. ",pageno using "###"
PRINT COLUMN 18, " Sistema de Inventario de Repuestos ",
COLUMN 75, today using "dd/mm/yyyy"
PRINT COLUMN 18, " Conteo de Repuestos ",
COLUMN 78, hora
IF decide = "N" THEN
LET varia = "N u m e r i c o"
ELSE
LET varia = "A l f a b e t i c o"
END IF
LET l = (82 - LENGTH(varia))/2
PRINT COLUMN l, varia clipped
PRINT COLUMN 1, "--------------------------------------------------",
"---------------------------------"
PRINT COLUMN 1, "codigo",
COLUMN 15, "Descripcion",
COLUMN 55, "Unidad",
COLUMN 66, "Conteo"
PRINT COLUMN 1, "--------------------------------------------------",
"---------------------------------"
BEFORE GROUP OF x.codigo
SKIP 1 LINE
PRINT COLUMN 2, negrillas_on,x.descripcion CLIPPED,negrillas_off
SKIP 1 LINE
ON EVERY ROW
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ",
COLUMN 15, x.descrip_esp CLIPPED,
COLUMN 55, x.unidad_med,
COLUMN 66, "---------------"
SKIP 1 LINE
AFTER GROUP OF x.cod_tipo
SKIP 1 LINE
PRINT COLUMN 3, "Total del grupo = ",
GROUP count(*) USING "####"
SKIP 1 LINE
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 3, "Total de Registros Impresos = ", count(*) USING "####"
PRINT COLUMN 1, "==================================================",
"================================="
END REPORT