{ ======================================================================= Programa : GEPRRP021 Sistema : Sistema de Informacion Gerencia Proceso : Clientes con Ventas Mayores a X Cantidad X Tipo de Negocio Autor : Ing. Juan Francisco Soto Fecha : Abril 28, 2003 ======================================================================= } GLOBALS "geprgb000.4gl" DEFINE ger_comp10 RECORD LIKE ranking.*, cod1 SMALLINT, ventas_dev1,ventas_dev2,ventas_totales1,ventas_totales2 DECIMAL(12,2), archivo,filename,sysos CHAR(120), cels CHAR(20), cnt,n,dep_ant,n_row,ppresenta SMALLINT DEFINE selec9 CHAR(1000) DEFINE salir,salir9,compa CHAR(1) DEFINE idx9,idx1,j,m,p,s,s1 INTEGER DEFINE ano19 CHAR(4) DEFINE ano1,mes1 SMALLINT DEFINE nom_mes CHAR(15) DEFINE fecha_in,fecha_fi,fecha_in9,fecha_fi9 DATE, cod_cli SMALLINT, total2,cantidad1,cantidad2,cantidad3,cantidad4,cantidad5,cantidad6, cantidad7,cantidad8,cantida9 DECIMAL(12,2) FUNCTION geprrp021() DEFINE pceldas RECORD LIKE celdas.* DEFINE anos RECORD ano LIKE ranking.ano, negocio LIKE ventas_pilas.negocio, nombre LIKE ventas_pilas.nombre_cliente, tamano LIKE ventas_pilas.tamano, unidades LIKE ventas_pilas.unidades, celda LIKE ventas_pilas.celda END RECORD LET int_flag = FALSE OPTIONS FORM LINE 8 OPEN FORM gefmrp009 FROM "gefmrp009" DISPLAY FORM gefmrp009 CALL pantalla() DISPLAY "geprrp010" AT 4,3 ATTRIBUTE(RED) DISPLAY "Ranking de Clientes por Tipo de Negocios" AT 6,20 ATTRIBUTE(BLACK) LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME ano1,mes1,cantidad1 AFTER FIELD ano1 IF ano1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD ano1 END IF SELECT MIN(fecha_inicio) INTO fecha_in9 FROM prdtable WHERE ano = ano1 - 1 LET ano19 = ano1 - 1 USING "&&&&" BEFORE FIELD mes1 LET mes1 = MONTH(today) USING "&&" DISPLAY BY NAME mes1 AFTER FIELD mes1 IF mes1 IS NULL THEN LET mes1 = MONTH(today) USING "&&" END IF DISPLAY BY NAME mes1 SELECT MIN(fecha_inicio) INTO fecha_in FROM prdtable WHERE ano = ano1 #and mes = mes1 SELECT fecha_corte INTO fecha_fi FROM prdtable WHERE ano = ano1 AND mes = mes1 SELECT fecha_corte INTO fecha_fi9 FROM prdtable WHERE ano = ano1 - 1 AND mes = mes1 SELECT descrip INTO nom_mes FROM mestable WHERE mes = mes1 AFTER FIELD cantidad1 IF cantidad1 IS NULL OR cantidad1 < 0 THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cantidad1 END IF END INPUT IF int_flag tHEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF CONSTRUCT BY NAME criterio ON a.tipo_cliente,a.sec_cliente IF int_flag tHEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DECLARE buscar CURSOR FOR { SELECT a.* FROM ranking a WHERE a.tipo_cliente =12 ORDER BY a.ano,a.negocio,a.sec_cliente,a.mes,a.ano } select a.ano,a.negocio,a.nombre_cliente,a.tamano,a.unidades,a.celda FROM ventas_pilas a ORDER BY 2,3,4,1 DISPLAY "Buscando Informacion Ano Actual... Espere por Favor" AT 17,14 ATTRIBUTE(BOLD) --# CALL fgl_init4js() START REPORT gerencia21 TO "c:\\archivo" DISPLAY "Impresion en Proceso..... Espere por Favor " AT 17,14 --# CALL fgl_init4js() --# LET archivo = NULL --# LET filename = NULL --# LET filename = FGL_GETENV("USPROGRAM") --# LET archivo = "h:\\\\Formularios\\\\geprrp021b.XLS" --# LET filename = filename CLIPPED," h:\\\\Formularios\\\\geprrp021b.XLS" --# IF winexec(filename) THEN --# IF DDEconnect("EXCEL",archivo) THEN LET idx = 7 FOREACH buscar INTO anos.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT gerencia21(anos.*) END FOREACH FINISH REPORT gerencia21 END IF END IF # RUN imprime END FUNCTION REPORT gerencia21(x) # DEFINE x RECORD LIKE ranking.* DEFINE x RECORD ano LIKE ranking.ano, negocio LIKE ventas_pilas.negocio, nombre LIKE ventas_pilas.nombre_cliente, tamano LIKE ventas_pilas.tamano, unidades LIKE ventas_pilas.unidades, celda LIKE ventas_pilas.celda END RECORD DEFINE mes11,cuenta SMALLINT DEFINE nom_mes1 CHAR(15) DEFINE descrip,descrip1 CHAR(30) DEFINE nombre_sal CHAR(20), limite LIKE vetb00004.limite_credito, hora CHAR(5), J RECORD LIKE celdas.* OUTPUT LEFT MARGIN 2 TOP MARGIN 1 FORMAT BEFORE GROUP OF x.negocio LET idx = idx + 1 LET cels = "R",idx USING "<<<<","C1" --# IF DDEpoke("EXCEL",archivo,cels,x.negocio) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF LET idx = idx + 2 BEFORE GROUP OF x.nombre LET cels = "R",idx USING "<<<<","C1" --# IF DDEpoke("EXCEL",archivo,cels,x.nombre) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF ON EVERY ROW LET cels = "R",idx USING "<<<<","C3" --# IF DDEpoke("EXCEL",archivo,cels,x.tamano) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF LET cels = "R",idx USING "<<<<","C",x.celda USING "<<" --# IF DDEpoke("EXCEL",archivo,cels,x.unidades) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF AFTER GROUP OF x.tamano LET idx = idx + 1 AFTER GROUP OF x.nombre LET idx = idx + 1 END REPORT