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