{ PROGRAMA: veprrp057 OBJETIVO: Generar las ventas mensuales panoramica (Gerentes Marcas) DESARROLLADO POR: ING. JUAN SOTO FECHA DESARROLLO: JUNIO, 29, 2022 } GLOBALS "veprgb000.4gl" DEFINE pano, pmes INT, xventas RECORD origen VARCHAR(20), clase VARCHAR(30), grupo VARCHAR(30), tipo VARCHAR(30), numero_mes SMALLINT, neto DEC(12, 2), presupuesto DEC(12, 2) END RECORD, mventas RECORD producto VARCHAR(30), enero, enero_pre, febrero, feb_pre, marzo, mar_pre, abril, abr_pre, mayo, may_pre, junio, jun_pre, julio, jul_pre, agosto, agost_pre, septiembre, sept_pre, octubre, oct_pre, noviembre, nov_pre, diciembre, dic_pre, total DEC(12, 2) END RECORD, tventas RECORD producto VARCHAR(30), enero, enero_pre, febrero, feb_pre, marzo, mar_pre, abril, abr_pre, mayo, may_pre, junio, jun_pre, julio, jul_pre, agosto, agost_pre, septiembre, sept_pre, octubre, oct_pre, noviembre, nov_pre, diciembre, dic_pre, total DEC(12, 2) END RECORD, toventas RECORD producto VARCHAR(30), enero, enero_pre, febrero, feb_pre, marzo, mar_pre, abril, abr_pre, mayo, may_pre, junio, jun_pre, julio, jul_pre, agosto, agost_pre, septiembre, sept_pre, octubre, oct_pre, noviembre, nov_pre, diciembre, dic_pre, total DEC(12, 2) END RECORD, oventas RECORD producto VARCHAR(30), enero, enero_pre, febrero, feb_pre, marzo, mar_pre, abril, abr_pre, mayo, may_pre, junio, jun_pre, julio, jul_pre, agosto, agost_pre, septiembre, sept_pre, octubre, oct_pre, noviembre, nov_pre, diciembre, dic_pre, total DEC(12, 2) END RECORD, gventas RECORD producto VARCHAR(30), enero, enero_pre, febrero, feb_pre, marzo, mar_pre, abril, abr_pre, mayo, may_pre, junio, jun_pre, julio, jul_pre, agosto, agost_pre, septiembre, sept_pre, octubre, oct_pre, noviembre, nov_pre, diciembre, dic_pre, total DEC(12, 2) END RECORD, representa, tiporeporte VARCHAR(100) MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT TO "smarmotech" USER usuarios USING clave SELECT DISTINCT RTRIM(a.nom1_emp) + ' ' + RTRIM(a.apell1_emp) INTO representa FROM adtb00003 a, seg0001 b WHERE a.num_emp = b.num_emp AND b.usuario = usuarios AND a.gerentemarcas = 'SI' IF STATUS = NOTFOUND THEN CALL fgl_winmessage( "INFO", "USTED NO ES GERENTE DE MARCAS, NO PUEDE GENERAR ESTE INFORME", "INFO") EXIT PROGRAM END IF CALL veprrp057() END MAIN FUNCTION veprrp057() DEFINE dataidx, dataidx1, dataidx2, dataidx4 VARCHAR(30) OPEN WINDOW w1 WITH FORM 'vefmrp057' INPUT BY NAME pano, pmes, tiporeporte BEFORE INPUT CALL combomes("formonly.pmes") LET pano = YEAR(TODAY) LET pmes = MONTH(TODAY) DISPLAY BY NAME pano, pmes, representa AFTER INPUT IF int_flag THEN LET int_flag = FALSE EXIT PROGRAM END IF IF pano IS NULL THEN CALL msg(16) NEXT FIELD pano END IF IF pmes IS NULL THEN CALL msg(16) NEXT FIELD pmes END IF DECLARE buscar CURSOR FOR SELECT a.origen, a.clase, a.grupo, a.tipo, a.numero_mes, SUM(a.neto), SUM(a.presupuesto) FROM ventas_facturas a, seg0001 b WHERE a.ano = pano AND a.numero_mes <= pmes AND a.num_emp = b.num_emp AND b.usuario = usuarios GROUP BY a.origen, a.clase, a.grupo, a.tipo, a.numero_mes ORDER BY a.origen, a.clase, a.grupo, a.tipo, a.numero_mes LET idx = 1 IF tiporeporte = 'DETALLADO' THEN LET r_filename = 'veprrp057.4rp' ELSE LET r_filename = 'veprrp057_a.4rp' END IF FOREACH buscar INTO xventas.* IF idx = 1 THEN IF fgl_report_loadCurrentSettings(r_filename) THEN LET idx = idx + 1 LET preview = 1 CALL seleccionarsalida() RETURNING r_output -- load the .4rp file CALL fgl_report_selectDevice( r_output) -- changing default CALL fgl_report_selectPreview( preview) -- changing default IF r_output = 'XLSX' THEN CALL fgl_report_configurexlsxdevice( NULL, NULL, NULL, FALSE, FALSE, NULL, 1) END IF LET handler = fgl_report_commitCurrentSettings() -- commit changes START REPORT pventas TO XML HANDLER HANDLER ELSE EXIT FOREACH END IF END IF LET dataidx2 = xventas.origen # LET dataidx2 ='TODOS LOS ORIGENES' LET dataidx = xventas.clase LET dataidx4 = xventas.grupo LET dataidx1 = xventas.tipo OUTPUT TO REPORT pventas(dataidx, dataidx1, dataidx2, dataidx4) END FOREACH IF idx > 1 THEN FINISH REPORT pventas END IF END INPUT END FUNCTION REPORT pventas(rindex, rindex1, rindex2, rindex4) DEFINE rindex, rindex1, rindex2, hora, rindex4 VARCHAR(30) FORMAT FIRST PAGE HEADER SELECT * INTO p_companias.* FROM companias LET hora = CURRENT AFTER GROUP OF rindex2 LET oventas.producto = rindex2 LET oventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1 LET oventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2 LET oventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3 LET oventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4 LET oventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5 LET oventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6 LET oventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7 LET oventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8 LET oventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9 LET oventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10 LET oventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11 LET oventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12 LET oventas.total = GROUP SUM(xventas.neto) LET oventas.enero_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1 LET oventas.feb_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2 LET oventas.mar_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3 LET oventas.abr_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4 LET oventas.may_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5 LET oventas.jun_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6 LET oventas.jul_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7 LET oventas.agost_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8 LET oventas.sept_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9 LET oventas.oct_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10 LET oventas.nov_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11 LET oventas.dic_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12 PRINTX oventas.*, p_companias.nombre, representa, pano, hora, r_output AFTER GROUP OF rindex LET mventas.producto = rindex LET mventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1 LET mventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2 LET mventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3 LET mventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4 LET mventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5 LET mventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6 LET mventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7 LET mventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8 LET mventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9 LET mventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10 LET mventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11 LET mventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12 LET mventas.total = GROUP SUM(xventas.neto) LET mventas.enero_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1 LET mventas.feb_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2 LET mventas.mar_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3 LET mventas.abr_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4 LET mventas.may_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5 LET mventas.jun_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6 LET mventas.jul_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7 LET mventas.agost_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8 LET mventas.sept_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9 LET mventas.oct_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10 LET mventas.nov_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11 LET mventas.dic_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12 PRINTX mventas.* AFTER GROUP OF rindex4 LET gventas.producto = rindex4 LET gventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1 LET gventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2 LET gventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3 LET gventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4 LET gventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5 LET gventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6 LET gventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7 LET gventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8 LET gventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9 LET gventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10 LET gventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11 LET gventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12 LET gventas.total = GROUP SUM(xventas.neto) PRINTX gventas.* AFTER GROUP OF rindex1 LET tventas.producto = rindex1 LET tventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1 LET tventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2 LET tventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3 LET tventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4 LET tventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5 LET tventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6 LET tventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7 LET tventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8 LET tventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9 LET tventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10 LET tventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11 LET tventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12 LET tventas.total = GROUP SUM(xventas.neto) LET tventas.enero_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1 LET tventas.feb_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2 LET tventas.mar_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3 LET tventas.abr_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4 LET tventas.may_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5 LET tventas.jun_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6 LET tventas.jul_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7 LET tventas.agost_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8 LET tventas.sept_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9 LET tventas.oct_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10 LET tventas.nov_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11 LET tventas.dic_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12 PRINTX tventas.* ON LAST ROW LET toventas.producto = "TOTAL" LET toventas.enero = SUM(xventas.neto) WHERE xventas.numero_mes = 1 LET toventas.febrero = SUM(xventas.neto) WHERE xventas.numero_mes = 2 LET toventas.marzo = SUM(xventas.neto) WHERE xventas.numero_mes = 3 LET toventas.abril = SUM(xventas.neto) WHERE xventas.numero_mes = 4 LET toventas.mayo = SUM(xventas.neto) WHERE xventas.numero_mes = 5 LET toventas.junio = SUM(xventas.neto) WHERE xventas.numero_mes = 6 LET toventas.julio = SUM(xventas.neto) WHERE xventas.numero_mes = 7 LET toventas.agosto = SUM(xventas.neto) WHERE xventas.numero_mes = 8 LET toventas.septiembre = SUM(xventas.neto) WHERE xventas.numero_mes = 9 LET toventas.octubre = SUM(xventas.neto) WHERE xventas.numero_mes = 10 LET toventas.noviembre = SUM(xventas.neto) WHERE xventas.numero_mes = 11 LET toventas.diciembre = SUM(xventas.neto) WHERE xventas.numero_mes = 12 LET toventas.total = SUM(xventas.neto) LET toventas.enero_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1 LET toventas.feb_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2 LET toventas.mar_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3 LET toventas.abr_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4 LET toventas.may_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5 LET toventas.jun_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6 LET toventas.jul_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7 LET toventas.agost_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8 LET toventas.sept_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9 LET toventas.oct_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10 LET toventas.nov_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11 LET toventas.dic_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12 PRINTX toventas.* END REPORT