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

284 lines
9.0 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : IRPRRP002
OBJETIVO : CATALOGO DE REPUESTOS.
PROGRAMADOR : Ing. Juan Fco. Soto.
FECHA REALIZACION : Enero 29, 1993.
-------------------------------------------------------------------------------
}
GLOBALS "irprgb000.4gl"
DEFINE fecha1 DATE
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL irprrp002()
END MAIN
FUNCTION irprrp002()
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 intb00001.descrip_esp,
codigo LIKE irtb00010.codigo,
existencia LIKE irtb00002.existencia
END RECORD,
cod smallint
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM irfmrp02 FROM "irfmrp002"
DISPLAY FORM irfmrp02
CALL pantalla()
DISPLAY "irprrp002" AT 4,3
DISPLAY "Catalogo de Repuestos " AT 6,28
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME decide,fecha1
BEFORE FIELD fecha1
LET fecha1 = TODAY
DISPLAY BY NAME fecha1
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
LET numero_msg = 2
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec
FROM cod_n,cod_grupo,cod_tipo,cod_sec
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
START REPORT maestra TO archivo
IF decide = "A" THEN
LET SELEC =
"SELECT UNIQUE b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec, ",
" b.descrip_esp,b.descrip_ing,b.dia_llegada,b.unidad_med, ",
" c.nombre,c.codigo ",
" FROM irtb00002 b, OUTER irtb00010 c ",
" WHERE ",criterio clipped,
" AND c.codigo = b.cod_tipo ",
"ORDER BY 10,5"
ELSE
LET SELEC =
"SELECT UNIQUE b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec, ",
" b.descrip_esp,b.descrip_ing,b.dia_llegada,b.unidad_med, ",
" c.nombre,c.codigo ",
" FROM irtb00002 b, OUTER irtb00010 c ",
" WHERE ",criterio clipped,
" AND c.codigo = b.cod_tipo AND b.status_t IS NULL ",
"ORDER BY 10,1,2,3,4 "
END IF
LET selec1 = "SELECT COUNT(*) FROM irtb00002 b,irtb00010 c ",
"WHERE ",criterio clipped,
" AND c.codigo = b.cod_tipo AND b.status_t IS NULL"
PREPARE comando1 FROM selec1
DECLARE busca1 CURSOR FOR comando1
OPEN busca1
FETCH busca1 INTO regi
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 17,14
ATTRIBUTE (BOLD)
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 17,14
LET p_param = "S"
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 maestra(materia.*)
END FOREACH
FINISH REPORT maestra
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%"
END FUNCTION
REPORT maestra(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 intb00001.descrip_esp,
codigo LIKE irtb00010.codigo,
existencia LIKE irtb00002.existencia
END RECORD
DEFINE l smallint
DEFINE varia CHAR(20)
DEFINE descripcion CHAR(60)
DEFINE primera CHAR(1)
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 normal CHAR(2)
DEFINE doce CHAR(2)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
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
PRINT COLUMN 3, comp_off,negrillas_on
PRINT COLUMN 1, "irprrp002",
COLUMN 17, " E U R O S T O N E, S. A.",
COLUMN 75, "Pag. ",pageno using "###"
PRINT COLUMN 17, " Sistema de Inventario de Repuestos ",
COLUMN 75, today using "dd/mm/yyyy"
PRINT COLUMN 17, " Catalogo 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 = (80 - LENGTH(varia))/2
LET l = l - 8
PRINT COLUMN l+2, varia clipped," AL ",fecha1 USING "dd/mm/yyyy"
PRINT COLUMN 1, comp_on
PRINT COLUMN 1, "----------------------------------------------------",
"----------------------------------------------------" ,
"----------------------------------------"
PRINT COLUMN 99, "Dia de",
COLUMN 109, "Existencia"
PRINT COLUMN 1, "codigo",
COLUMN 15, "Descripcion",
COLUMN 91, "Unidad",
COLUMN 99, "Llegada",
COLUMN 109, "S/Mvto."
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
SELECT SUM(a.cantidad_2) INTO x.existencia
FROM irtb00006 a
WHERE a.cod_n = x.cod_n and a.cod_grupo = x.cod_grupo and
a.cod_tipo = x.cod_tipo and a.cod_sec = x.cod_sec and
a.status_t is null AND a.fecha <= fecha1
IF x.existencia is null THEN
LET x.existencia = 0
END IF
PRINT COLUMN 1, x.cod_n USING "&","-",x.cod_grupo USING "&&","-",
x.cod_tipo USING "&&","-",x.cod_sec USING "&&&"," ",
x.descrip_esp CLIPPED," ",x.descrip_ing,
COLUMN 91, x.unidad_med,
COLUMN 100, x.dia_llegada using "###",
COLUMN 107, x.existencia using "---,---.##"
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, "====================================================",
"====================================================" ,
"==========================="
PRINT COLUMN 3, comp_off
END REPORT