257 lines
8.4 KiB
Plaintext
257 lines
8.4 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
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
|
|
|