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