186 lines
5.5 KiB
Plaintext
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
|