{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP030 OBJETIVO : Analisis de Ventas Comparativo en Unidades PROGRAMADOR : Lic. Abner Montalvo Zapata FECHA REALIZACION : Enero 20, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE mes_actual RECORD sec_cliente SMALLINT, factura INTEGER, fecha DATE, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), precio DECIMAL(12,2), Precio_std DECIMAL(12,2) END RECORD DEFINE fecha_1,fecha_2 DATE DEFINE mes_inicio CHAR(4) DEFINE mes_nombre CHAR(13) DEFINE zzona CHAR(3) FUNCTION veprrp30() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 OPEN FORM vefmrp30 FROM "vefmrp30" DISPLAY FORM vefmrp30 CALL pantalla() DISPLAY "veprrp30" AT 4,3 DISPLAY "Precio de Venta Vs Precio Real" AT 6,24 LET tipo_papel = 2 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_1,fecha_2 AFTER FIELD fecha_1 IF fecha_1 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_1 END IF AFTER FIELD fecha_2 IF fecha_2 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_2 END IF IF fecha_1 > fecha_2 THEN LET numero_msg = 189 CALL msg(numero_msg) NEXT FIELD fecha_1 END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF LET selec = "SELECT a.sec_cliente,a.factura,a.fecha_factura,b.cod_n,b.cod_grupo, ", " b.cod_tipo,b.cod_sec,c.descrip_esp,b.precio,d.precio ", "FROM vetb00002 a,vetb00003 b,iptb00002 c,OUTER vetb00025 d ", "WHERE a.factura = b.factura AND a.sec_cliente = d.sec_cliente AND ", " a.status_t IS NULL AND a.fecha_factura BETWEEN ? AND ? AND ", " b.cod_n = c.cod_n AND b.cod_grupo = c.cod_grupo AND ", " b.cod_tipo = c.cod_tipo AND b.cod_sec = c.cod_sec AND ", " b.cod_n = d.cod_n AND b.cod_grupo = d.cod_grupo AND ", " b.cod_tipo = d.cod_tipo AND b.cod_sec = d.cod_sec AND ", " a.ventas = '1' AND d.status_t IS NULL ORDER BY 3,2 " DISPLAY "<>" AT 19,14 ATTRIBUTE (REVERSE) PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha_1,fecha_2 START REPORT reporte_30 TO "C:\\archivo" DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH busca INTO mes_actual.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET Int_flag = FALSE RETURN END IF {IF mes_actual.precio_std IS NULL THEN LET mes_actual.precio_std = 0 SELECT UNIQUE b.precio INTO mes_actual.precio_std FROM vetb00025 b WHERE b.sec_cliente IS NULL AND b.cod_n = mes_actual.cod_n AND b.cod_grupo = mes_actual.cod_grupo AND b.cod_tipo = mes_actual.cod_tipo AND b.cod_sec = mes_actual.cod_sec AND b.status_t IS NULL AND b.ventas = '1' END IF } IF mes_actual.precio_std IS NULL THEN LET mes_actual.precio_std = 0 END IF IF mes_actual.precio_std = 0 THEN SELECT UNIQUE b.precio INTO mes_actual.precio_std FROM vetb00025 b WHERE b.sec_cliente IS NULL AND b.cod_n = mes_actual.cod_n AND b.cod_grupo = mes_actual.cod_grupo AND b.cod_tipo = mes_actual.cod_tipo AND b.cod_sec = mes_actual.cod_sec AND b.status_t IS NULL AND b.ventas = '1' END IF IF mes_actual.precio != mes_actual.precio_std THEN OUTPUT TO REPORT reporte_30(mes_actual.*) END IF END WHILE FINISH REPORT reporte_30 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reporte_30(x) DEFINE x RECORD sec_cliente SMALLINT, factura INTEGER, fecha DATE, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(30), precio DECIMAL(12,2), Precio_std DECIMAL(12,2) END RECORD DEFINE a SMALLINT DEFINE nombre CHAR (30) DEFINE descrip_venta CHAR(22) 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 normal CHAR(2) DEFINE hora CHAR(5) DEFINE mes CHAR(15) 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 LET lj = (130 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, comp_on ,negrillas_on PRINT COLUMN 1, "veprrp30", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 123, "Pag.", COLUMN 128, pageno using "###" PRINT COLUMN 54, "Sistema de Ventas ", COLUMN 119, today using "dd/mm/yy" PRINT COLUMN 44, " Precio de Ventas Vs Precio Real", COLUMN 122, hora PRINT COLUMN 1, negrillas_off PRINT COLUMN 1, "FECHA: DEL ", fecha_1 USING "dd/mm/yy", " AL ",fecha_2 USING "dd/mm/yy" SKIP 1 LINE PRINT COLUMN 1, "CLIENTE", COLUMN 38, "FACTURA", COLUMN 47, "FECHA", COLUMN 55, "PRODUCTO", COLUMN 96, "PRECIO VENTA", COLUMN 109, "PRECIO REAL" SKIP 1 LINE BEFORE GROUP OF x.factura SELECT b.nombre INTO nombre FROM vetb00004 b WHERE b.status_t IS NULL AND b.sec_cliente = x.sec_cliente PRINT COLUMN 1, x.sec_cliente USING "&&&&"," ",nombre CLIPPED, COLUMN 38, x.factura USING "######", COLUMN 45, x.fecha USING "dd/mm/yy"; ON EVERY ROW PRINT COLUMN 55, x.cod_n USING "&","-",x.cod_grupo USING "&","-", x.cod_tipo USING "&&","-",x.cod_sec USING "&&&", " ",x.descrip_esp CLIPPED, COLUMN 98, x.precio USING "###,###.##", COLUMN 109, x.precio_std USING "###,###.##" ON LAST ROW SKIP 1 LINE PRINT COLUMN 1, "Total de Registro ---> ", count(*) USING "<<<<<<<" PRINT comp_off END REPORT