{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP011 OBJETIVO : Clientes por Vendedor PROGRAMADOR : Lic. Abner Montalvo Z. FECHA REALIZACION : Enero 11, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT TO "smarmotech" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL veprrp011() END MAIN FUNCTION veprrp011() DEFINE vendedor RECORD sec_vend SMALLINT, nombre_vend CHAR(30), apellido_vend CHAR(30), cod_cliente SMALLINT, sec_cliente SMALLINT, nombre_cliente CHAR(30), telefono CHAR(15), limite_credito DECIMAL(10,2), zona SMALLINT, calle CHAR(30), casa_num CHAR(10), barrio CHAR(20), urbanizacion CHAR(20), vendedor CHAR(6) , fecha_ultima CHAR(20) END RECORD #WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 OPEN FORM vefmrp011 FROM "vefmrp011" DISPLAY FORM vefmrp011 LET tipo_papel = 2 CALL msgrp000(tipo_papel) CONSTRUCT criterio ON d.sec_vend,b.nombre FROM sec_vend,nombre IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia LET selec3 = "SELECT UNIQUE a.num_emp,a.nom1_emp,a.apell1_emp,b.tipo_cliente, ", "b.sec_cliente,b.nombre,b.telefono,b.limite_credito,b.cod_zona, ", "c.calle,c.casa_num,c.barrio,c.urbanizacion ", "FROM adtb00003 a, vetb00004 b, vetb00028 d, outer vetb00005 c ", "WHERE a.num_emp = d.sec_vend and ", " d.tipo_cliente = b.tipo_cliente and ", " d.sec_cliente = b.sec_cliente and ", " d.tipo_cliente = c.tipo_cliente and ", " d.sec_cliente = c.sec_cliente and ", " d.status_t is null and ", " b.status_t is null and ",criterio clipped, " ORDER BY 1,2,5,6" DISPLAY " " AT 19,14 DISPLAY "<< Buscando Las Informaciones... Espere Por Favor >>" AT 19,14 PREPARE busca_datos FROM selec3 DECLARE datos SCROLL CURSOR FOR busca_datos OPEN datos LET opt1 = fgl_winquestion("Atencion","Desea Reporte por Pantalla?", "no","yes|no","question",0) IF opt1 = "yes" THEN START REPORT clivend TO screen ELSE START REPORT clivend TO archivo END IF DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH datos INTO vendedor.* 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 LET vendedor.vendedor = vendedor.sec_vend using "&&&&" # FECHA ULTIMA COMPRA LET vendedor.fecha_ultima = NULL SELECT CAST(MAX(a.fecha_factura) AS VARCHAR) INTO vendedor.fecha_ultima FROM vetb00002 a WHERE a.tipo_cliente = vendedor.cod_cliente AND a.sec_cliente = vendedor.sec_cliente AND a.status_t IS NULL IF vendedor.fecha_ultima IS NULL THEN LET vendedor.fecha_ultima = "ANTES DEL 2007" END IF OUTPUT TO REPORT clivend(vendedor.*) END WHILE FINISH REPORT clivend CLEAR SCREEN IF opt1 <> "yes" then LET opt = fgl_winquestion("Atencion","Desea Imprimir Reporte?", "yes","yes|no","question",0) LET opt = UPSHIFT(opt) IF opt = "YES" THEN RUN imprime END IF END IF END FUNCTION REPORT clivend(x) DEFINE x RECORD sec_vend SMALLINT, nombre_vend CHAR(30), apellido_vend CHAR(30), cod_cliente SMALLINT, sec_cliente SMALLINT, nombre_cliente CHAR(30), telefono CHAR(15), limite_credito DECIMAL(10,2), zona SMALLINT, calle CHAR(30), casa_num CHAR(10), barrio CHAR(20), urbanizacion CHAR(20), vendedor CHAR(6) , fecha_ultima CHAR(20) END RECORD DEFINE total_clientes INTEGER DEFINE doble_on CHAR(3) DEFINE doble_off CHAR(3) DEFINE negrillas_on CHAR(6) DEFINE negrillas_off CHAR(6) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(3) DEFINE doce CHAR(6) DEFINE normal CHAR(6) DEFINE hora CHAR(5) DEFINE i SMALLINT OUTPUT TOP MARGIN 0 LEFT MARGIN 10 BOTTOM MARGIN 2 ORDER BY x.vendedor,x.cod_cliente,x.sec_cliente 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 = (92 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT comp_off PRINT COLUMN 1, "veprrp011", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 85, "Pag. ",pageno using "###" PRINT COLUMN 35, "Sistema de Ventas ", COLUMN 85, today using "dd/mm/yy" PRINT COLUMN 34, "Cliente por Vendedor", COLUMN 87, hora PRINT comp_on PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------", "--------------" PRINT COLUMN 2, "CODIGO", COLUMN 12, "NOMBRE DEL CLIENTE", COLUMN 46, "D I R E C C I O N", COLUMN 90, "B A R R I O", COLUMN 113, "URBANIZACION", COLUMN 136, "TELEFONO" , COLUMN 147, "ZONA", COLUMN 153, "LIM. CREDITO" , 2 SPACES, "ULTIMA COMPRA" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------------------------", "--------------" BEFORE GROUP OF x.vendedor PRINT COLUMN 1,doble_on,"VENDEDOR : ", "(",x.vendedor,")", x.nombre_vend clipped," ", x.apellido_vend clipped, doble_off ON EVERY ROW PRINT COLUMN 1, x.cod_cliente using "&&","-", COLUMN 4, x.sec_cliente using "&&&&", COLUMN 12, x.nombre_cliente, COLUMN 46, x.calle clipped," ",x.casa_num, COLUMN 90, x.barrio, COLUMN 113, x.urbanizacion, COLUMN 136, x.telefono , COLUMN 148, x.zona using "&&", COLUMN 152, x.limite_credito using "$$,$$$,$$$.$$", 2 SPACES, x.fecha_ultima LET total_clientes = total_clientes + 1 AFTER GROUP OF x.vendedor SKIP 1 LINE PRINT COLUMN 1, "Total Clientes por Vendedor : ", total_clientes using "###,###" LET total_clientes = 0 SKIP TO TOP OF PAGE END REPORT