306 lines
10 KiB
Plaintext
306 lines
10 KiB
Plaintext
{
|
|
-------------------------------------------------------------------------------
|
|
PROGRAMA : VEPRRP034
|
|
OBJETIVO : Frecuencia de Visitas Por Vendedor
|
|
PROGRAMADOR : Tadeo A. Ferreras F.
|
|
FECHA REALIZACION : Febrero 20, 1996
|
|
-------------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
|
|
DEFINE datos_34 RECORD
|
|
sec_vend SMALLINT,
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente SMALLINT,
|
|
nombre CHAR(30),
|
|
cod_zona SMALLINT,
|
|
cod_provincia SMALLINT,
|
|
limite_credito DECIMAL(12,2),
|
|
num_rnc CHAR(10),
|
|
telefono CHAR(8),
|
|
calle CHAR(30),
|
|
casa_num CHAR(10),
|
|
barrio CHAR(15),
|
|
urbanizacion CHAR(15),
|
|
s_visita INTEGER,
|
|
negocio CHAR(15),
|
|
tipo_cte CHAR(15),
|
|
tipo_pago CHAR(15),
|
|
frecuencia CHAR(15)
|
|
END RECORD,
|
|
nombre_mes,apellido,provin,n_zona CHAR(15),
|
|
cant_ck INTEGER,
|
|
fecha1 DATE,
|
|
salir CHAR(1),
|
|
direccion CHAR(40)
|
|
|
|
DEFINE entrada RECORD
|
|
ano SMALLINT,
|
|
mes SMALLINT
|
|
END RECORD
|
|
|
|
FUNCTION veprrp034()
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 23,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM vefmrp034 FROM "vefmrp034"
|
|
DISPLAY FORM vefmrp034
|
|
CALL pantalla()
|
|
DISPLAY "veprrp034" AT 4,3
|
|
DISPLAY "Frecuencia de Visitas Por Vendedor" AT 6,23
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
|
|
{INPUT BY NAME entrada.ano,entrada.mes
|
|
AFTER FIELD ano
|
|
IF entrada.ano is null OR entrada.ano = 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD ano
|
|
END IF
|
|
|
|
AFTER FIELD mes
|
|
IF entrada.mes is null OR entrada.mes = 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes
|
|
END IF
|
|
SELECT a.descrip INTO nombre_mes FROM mestable a
|
|
WHERE a.mes = entrada.mes
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes
|
|
END IF
|
|
|
|
END INPUT}
|
|
|
|
CONSTRUCT criterio ON a.sec_vend,b.tipo_cliente,b.sec_cliente
|
|
FROM sec_vend,tipo_cliente,sec_cliente
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
# Busca los codigos de los productos terminados
|
|
|
|
# Busca las datos_34 reales del ano actual hasta el mes indicado anteriormente
|
|
|
|
LET selec =
|
|
"SELECT a.sec_vend,b.tipo_cliente,b.sec_cliente,b.nombre,b.cod_zona, ",
|
|
" b.cod_provincia,b.limite_credito,b.num_rnc,b.telefono ",
|
|
"FROM vetb00028 a, vetb00004 b ",
|
|
"WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente AND ",
|
|
" a.status_t IS NULL AND b.status_t IS NULL AND ",
|
|
criterio clipped," ORDER BY 1,2,3 "
|
|
|
|
DISPLAY "<< Buscando Informacion ... Espere Por Favor >>" AT 19,14
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca
|
|
|
|
START REPORT reporte_34 TO "C:\\archivo"
|
|
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
|
|
AT 19,14 ATTRIBUTE (REVERSE)
|
|
|
|
LET salir = "N"
|
|
WHILE salir != "S"
|
|
FETCH busca INTO datos_34.*
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET datos_34.calle = NULL
|
|
LET datos_34.calle = NULL
|
|
LET datos_34.barrio = NULL
|
|
LET datos_34.urbanizacion = NULL
|
|
LET datos_34.s_visita = NULL
|
|
LET datos_34.negocio = NULL
|
|
LET datos_34.tipo_cte = NULL
|
|
LET datos_34.tipo_pago = NULL
|
|
LET datos_34.frecuencia = NULL
|
|
|
|
SELECT a.calle,a.casa_num,a.barrio,a.urbanizacion,a.secuencia_visita
|
|
INTO datos_34.calle,datos_34.casa_num,datos_34.barrio,
|
|
datos_34.urbanizacion,datos_34.s_visita
|
|
FROM vetb00005 a
|
|
WHERE a.tipo_cliente = datos_34.tipo_cliente AND
|
|
a.sec_cliente = datos_34.sec_cliente
|
|
|
|
SELECT a.tipo_negocio,a.tipo_cte,a.tipo_pago,a.frecuencia_visita
|
|
INTO datos_34.negocio,datos_34.tipo_cte,datos_34.tipo_pago,
|
|
datos_34.frecuencia
|
|
FROM vetb00040 a
|
|
WHERE a.tipo_cliente = datos_34.tipo_cliente AND
|
|
a.sec_cliente = datos_34.sec_cliente
|
|
|
|
OUTPUT TO REPORT reporte_34(datos_34.*)
|
|
END WHILE
|
|
FINISH REPORT reporte_34
|
|
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT reporte_34(x)
|
|
DEFINE x RECORD
|
|
sec_vend SMALLINT,
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente SMALLINT,
|
|
nombre CHAR(30),
|
|
cod_zona SMALLINT,
|
|
cod_provincia SMALLINT,
|
|
limite_credito DECIMAL(12,2),
|
|
num_rnc CHAR(10),
|
|
telefono CHAR(8),
|
|
calle CHAR(30),
|
|
casa_num CHAR(10),
|
|
barrio CHAR(15),
|
|
urbanizacion CHAR(15),
|
|
s_visita INTEGER,
|
|
negocio CHAR(15),
|
|
tipo_cte CHAR(15),
|
|
tipo_pago CHAR(15),
|
|
frecuencia CHAR(15)
|
|
END RECORD
|
|
|
|
DEFINE negrillas_on,negrillas_off,comp_on,comp_off CHAR(2)
|
|
DEFINE hora CHAR(5)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
BOTTOM MARGIN 2
|
|
ORDER BY x.sec_vend,x.s_visita,x.tipo_cliente,x.sec_cliente
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
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 hora = time
|
|
|
|
LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2
|
|
PRINT COLUMN 1,negrillas_on
|
|
PRINT COLUMN 1, "veprrp034",
|
|
COLUMN lj, p_companias.nombre CLIPPED,
|
|
COLUMN 73, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 17, " Sistema de Ventas",
|
|
COLUMN 73, today using "dd/mm/yy"
|
|
PRINT COLUMN 17, " Frecuencia de Visitas Por Vendedor",
|
|
COLUMN 76, hora
|
|
LET idx = 0
|
|
BEFORE GROUP OF x.sec_vend
|
|
SELECT a.nom1_emp,a.apell1_emp INTO nombre,apellido FROM adtb00003 a
|
|
WHERE a.num_emp = x.sec_vend
|
|
|
|
PRINT COLUMN 1, Negrillas_on
|
|
PRINT COLUMN 1, "Vendedor: ",nombre CLIPPED," ",apellido CLIPPED,
|
|
Negrillas_off
|
|
|
|
ON EVERY ROW
|
|
|
|
IF idx = 0 THEN
|
|
PRINT COLUMN 1, Negrillas_on
|
|
PRINT COLUMN 1, "**********************************************",
|
|
"**********************************"
|
|
|
|
PRINT COLUMN 1, "CODIGO",
|
|
COLUMN 9, "RAZON SOCIAL",
|
|
COLUMN 42, "DIRECCION ",
|
|
COLUMN 58, "TIPO NEG.",
|
|
COLUMN 71, "LIM. CRED."
|
|
PRINT COLUMN 9, "DEPTO.",
|
|
COLUMN 58, "TIPO CTE.",
|
|
COLUMN 71, "FREC. VIS."
|
|
PRINT COLUMN 9, "NOMBRE NEG.",
|
|
COLUMN 42, "URBANIZACION",
|
|
COLUMN 58, "TIPO PAGO",
|
|
COLUMN 71, "SEC. VISI."
|
|
PRINT COLUMN 9, "ZONA",
|
|
COLUMN 42, "CIUDAD",
|
|
COLUMN 58, "CKS. DEV.",
|
|
COLUMN 71, "TELEFONO"
|
|
PRINT COLUMN 9, "RNC ",
|
|
COLUMN 42, "PROVINCIA"
|
|
|
|
PRINT COLUMN 1, "**********************************************",
|
|
"**********************************"
|
|
PRINT negrillas_off
|
|
END IF
|
|
LET n_zona = NULL
|
|
SELECT a.descrip INTO n_zona FROM vetb00008 a
|
|
WHERE a.cod_zona = x.cod_zona
|
|
|
|
LET provin = NULL
|
|
SELECT a.nombre_provincia INTO provin FROM vetb00020 a
|
|
WHERE a.cod_provincia = x.cod_provincia
|
|
LET cant_ck = 0
|
|
SELECT COUNT(*) INTO cant_ck FROM cctb00001 a
|
|
WHERE a.tipo_doc = "ND" AND a.valor_cheque IS NOT NULL AND
|
|
a.tipo_cliente=x.tipo_cliente AND a.sec_cliente=x.sec_cliente
|
|
|
|
IF cant_ck IS NULL THEN
|
|
LET cant_ck = 0
|
|
END IF
|
|
LET direccion = NULL
|
|
LET direccion = x.calle[1,15],"CASA #",x.casa_num[1,9] CLIPPED
|
|
PRINT COLUMN 1, x.tipo_cliente USING "&&","-",
|
|
x.sec_cliente USING "&&&&",
|
|
COLUMN 9, x.nombre[1,30] CLIPPED,
|
|
COLUMN 42, direccion[1,15] CLIPPED,
|
|
COLUMN 58, x.negocio CLIPPED,
|
|
COLUMN 71, x.limite_credito USING "<<,<<<,<<<"
|
|
PRINT COLUMN 9, "ADMINISTRACION",
|
|
COLUMN 42, direccion[16,30] CLIPPED,
|
|
COLUMN 58, x.tipo_cte CLIPPED,
|
|
COLUMN 71, x.frecuencia[1,10]
|
|
PRINT COLUMN 9, x.nombre[1,30],
|
|
COLUMN 42, x.urbanizacion,
|
|
COLUMN 58, x.tipo_pago CLIPPED,
|
|
COLUMN 71, x.s_visita USING "<<<,<<<"
|
|
PRINT COLUMN 9, n_zona CLIPPED,
|
|
COLUMN 42, provin,
|
|
COLUMN 58, cant_ck USING "###,###",
|
|
COLUMN 71, x.telefono
|
|
PRINT COLUMN 9, x.num_rnc CLIPPED,
|
|
COLUMN 42, provin
|
|
|
|
PRINT COLUMN 1, "------------------------------------------------",
|
|
"--------------------------------"
|
|
|
|
LET idx = idx + 1
|
|
|
|
IF idx = 7 THEN
|
|
LET idx = 0
|
|
SKIP TO TOP OF PAGE
|
|
END IF
|
|
|
|
AFTER GROUP OF x.sec_vend
|
|
PRINT negrillas_on
|
|
PRINT COLUMN 1, "Total Clientes Por Vendedor: ", GROUP COUNT(*)
|
|
USING "###,###"
|
|
PRINT negrillas_off
|
|
SKIP TO TOP OF PAGE
|
|
END REPORT
|