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

155 lines
4.9 KiB
Plaintext

{
=============================================================================
PROGRAMA : IRPRRP024
OBJETIVO : IMPRIMIR REPUESTOS CON EL PRECIO Y NUMERO DE ORDEN DE COMPRA,
RUPTURA POR TIPO DE COMPRA Y POR ORDEN.
PROGRAMADOR : JUAN F. SOTO
FECHA : FEBRERO 8, 1995
=============================================================================
}
DATABASE marmotech
GLOBALS
DEFINE descrip CHAR(30)
DEFINE fecha_inicial,fecha_final DATE
END GLOBALS
MAIN
CALL reporte1()
END MAIN
FUNCTION reporte1()
DEFINE datos RECORD
cod_mov SMALLINT,
fecha DATE,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
num_oc INTEGER,
tipo CHAR(2),
precio DECIMAL(12,2),
cantidad LIKE cotb00015.cantidad,
num_rec INTEGER
END RECORD
OPTIONS
PROMPT LINE 10,
ERROR LINE 24
PROMPT "Entre Fecha Inicial " FOR fecha_inicial
PROMPT "Entre Fecha Final " FOR fecha_final
START REPORT imprime TO PIPE "lp -dcentral"
DISPLAY "BUSCANDO INFORMACION " AT 22,1
DECLARE busca CURSOR FOR
SELECT b.cod_mov,c.fech_oc,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
c.num_oc,c.tipo,a.precio,a.cantidad,b.num_doc
FROM cotb00015 a,irtb00006 b,cotb00014 c
WHERE (a.num_oc = b.orden_compra 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.num_oc = c.num_oc and
a.tipo = c.tipo) and
a.tipo = b.tipo and
(c.fech_oc between fecha_inicial and fecha_final) and
c.status_t is null
ORDER BY b.cod_mov,c.num_oc,c.tipo
FOREACH busca INTO datos.*
DISPLAY "EN PROCESO IMPRESION " AT 22,1
OUTPUT TO REPORT imprime(datos.*)
END FOREACH
FINISH REPORT imprime
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT imprime(x)
DEFINE x RECORD
cod_mov SMALLINT,
fecha DATE,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
num_oc INTEGER,
tipo CHAR(2),
precio DECIMAL(12,2),
cantidad LIKE cotb00015.cantidad,
num_rec INTEGER
END RECORD,
doble_off,doble_on,doce CHAR(3),
unidad CHAR(3),
total_p DECIMAL(12,2)
OUTPUT LEFT MARGIN 0
FORMAT
PAGE HEADER
LET doce = ASCII 031
LET doble_on = ASCII 027, ASCII 001
LET doble_off = ASCII 027, ASCII 002
PRINT doce
PRINT COLUMN 1, "irprrp024",
COLUMN 50, "R A Y .O. V A C D O M I N I C A N A, S. A.",
COLUMN 120, "Pag. ",pageno using "###"
PRINT COLUMN 63, "SISTEMA DE REPUESTOS",
COLUMN 120, today using "dd/mm/yy"
PRINT COLUMN 63, "COMPRAS DE REPUESTOS",
COLUMN 120, time
PRINT COLUMN 60, "DESDE ",fecha_inicial using "dd/mm/yy"," AL ",
fecha_final using "dd/mm/yy"
PRINT
"=============================================================================",
"========================================================="
PRINT COLUMN 1, "FECHA",
COLUMN 15, "O/COMPRA",
COLUMN 30, "N/RECIBO",
COLUMN 45, "CODIGO",
COLUMN 90, "CANTIDAD",
COLUMN 110, "PRECIO",
COLUMN 130, "TOTAL"
PRINT
"=============================================================================",
"========================================================="
BEFORE GROUP OF x.cod_mov
IF x.cod_mov = 1 THEN
PRINT COLUMN 1, doble_on,"LOCALES",doble_off
ELSE
PRINT COLUMN 2, doble_on,"EXPORTACION",doble_off
END IF
SKIP 1 LINE
ON EVERY ROW
SELECT descrip_esp,unidad_med INTO descrip,unidad FROM intb00001
WHERE cod_n = x.cod_n and
cod_grupo = x.cod_grupo and
cod_tipo = x.cod_tipo and
cod_sec = x.cod_sec
LET total_p = x.precio * x.cantidad
PRINT COLUMN 1, x.fecha using "dd/mm/yy",
COLUMN 15, x.num_oc using "&&&&&&",
COLUMN 30, x.num_rec using "&&&&&&",
COLUMN 45, x.cod_n using "&","-",x.cod_grupo using "&","-",
x.cod_tipo using "&&","-",x.cod_sec using "&&&"," ",
descrip," ",unidad,
COLUMN 90, x.cantidad using "##,###.##",
COLUMN 107, x.precio using "$$,$$$.##",
COLUMN 127, x.precio * x.cantidad using "$$$,$$$.##"
AFTER GROUP OF x.num_oc
SKIP 1 LINE
PRINT COLUMN 115,"TOTAL ORDEN ", GROUP SUM(x.precio * x.cantidad)
using "$$$,$$$.##"
SKIP 1 LINE
AFTER GROUP OF x.cod_mov
PRINT COLUMN 115,"TOTAL ===> ",GROUP SUM(x.precio * x.cantidad)
USING "$$,$$$,$$$.##"
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT
"============================================================================="
PRINT "TOTAL REGISTRO==> ",COUNT(*) USING "###"
END REPORT