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

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