Files
MBS/PROYECTO/vedir/veprrp030.4gl
T

238 lines
7.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
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 "<<Buscando Informaciones del Mes del Ano Actual >>"
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