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

186 lines
5.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP039
OBJETIVO : Cartera de Clientes Ultimos 4 Anos.
PROGRAMADOR : Abner Montalvo
FECHA REALIZACION : Junio 6, 1997
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE ano_ini,ano_fin SMALLINT
DEFINE salir CHAR(1)
DEFINE tclientes, total_ultimo_ano INTEGER
DEFINE ano_string, ano_inicial, ano_final CHAR(4)
DEFINE total_clientes INTEGER
FUNCTION veprrp039()
DEFINE fecha CHAR(16)
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM vefmrp039 FROM "vefmrp039"
DISPLAY FORM vefmrp039
CALL pantalla()
DISPLAY "veprrp039" AT 4,3
DISPLAY "Cartera de Clientes Ultimos 4 Anos" AT 6,23
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME ano_ini
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = NULL
RETURN
END IF
LET ano_inicial = ano_ini USING "####"
LET ano_fin = ano_ini - 3
LET ano_final = ano_fin USING "####"
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
CREATE TEMP TABLE vetb004
(
tipo_cliente smallint,
sec_cliente smallint,
nombre char(30),
cod_zona smallint,
cod_provincia smallint,
telefono char(8),
fax char(8),
telex char(8),
patente char(10),
limite_credito decimal(10,2),
zona_postal char(10),
num_rnc char(10),
nombre_patente char(30),
status_t char(1),
us_crea char(9),
fech_crea CHAR(16),
us_mod char(9),
fech_mod datetime year to minute
)
INSERT INTO vetb004 SELECT * FROM vetb00004
START REPORT reporte_39 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
# SELECT count(*) INTO total_ultimo_ano
# FROM vetb004
# WHERE fech_crea[1,4] <= ano_final
SELECT count(*) INTO tclientes FROM vetb004
WHERE fech_crea[1,4] <= ano_ini
# AND fech_crea[1,4] >= ano_fin
DECLARE busca CURSOR FOR
SELECT fech_crea[1,4],count(*) FROM vetb004
WHERE fech_crea[1,4] <= ano_ini AND
fech_crea[1,4] >= ano_fin
GROUP BY 1
ORDER BY 1 DESC
FOREACH busca INTO ano_string,total_clientes
OUTPUT TO REPORT reporte_39(ano_string, total_clientes)
END FOREACH
FINISH REPORT reporte_39
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_39(ano,clientes)
DEFINE ano CHAR(4)
DEFINE clientes INTEGER
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)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY ano DESC
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 18
LET lj = (126 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT comp_on,negrillas_on
PRINT COLUMN 1, "veprrp039",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 119, "Pag. ",pageno using "###"
PRINT COLUMN 43, " Sistema de Ventas ",
COLUMN 119, today using "dd/mm/yy"
PRINT COLUMN 45, " Cartera de Clientes Ultimos 4 Anos ",
COLUMN 119, time
SKIP 1 LINES
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------"
PRINT COLUMN 12, ano_ini using "####",
COLUMN 43, ano_ini - 1 using "####",
COLUMN 72, ano_ini - 2 using "####",
COLUMN 100, ano_ini - 3 using "####"
PRINT COLUMN 1, " % ",
COLUMN 10, " Total ",
COLUMN 20, " Nuevo ",
COLUMN 31, " %",
COLUMN 40, " Total",
COLUMN 50, "Nuevo ",
COLUMN 60, " % ",
COLUMN 70, " Total ",
COLUMN 78, "Nuevo ",
COLUMN 90, " ",
COLUMN 100, " "
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------"
PRINT negrillas_off
ON EVERY ROW
IF ano = ano_final THEN
# LET tclientes = clientes
LET clientes = NULL
END IF
PRINT COLUMN 1, clientes * 100 / (tclientes - clientes) using "---.--",
COLUMN 10, tclientes using "###,###",
COLUMN 20, clientes using "###,###"," ";
LET tclientes = tclientes - clientes
ON LAST ROW
PRINT normal
END REPORT