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