{ PROGRAMA: veprrp057 OBJETIVO: Generar las ventas mensuales panoramica DESARROLLADO POR: ING. JUAN SOTO FECHA DESARROLLO: JUNIO, 29, 2022 } GLOBALS "veprgb000.4gl" DEFINE pano,pmes INT, xventas RECORD LIKE ventas_facturas.*, 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, representa 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 VARCHAR(30) OPEN WINDOW w1 WITH FORM 'vefmrp057' INPUT BY NAME pano,pmes 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.* FROM ventas_facturas a,seg0001 b WHERE a.ano = pano AND a.numero_mes <= pmes and a.num_emp = b.num_emp ORDER BY a.origen,a.clase,a.tipo,a.numero_mes LET idx = 1 LET r_filename = 'veprrp057.4rp' 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 LET handler = fgl_report_commitCurrentSettings() -- commit changes START REPORT pventas TO XML HANDLER HANDLER ELSE EXIT FOREACH END IF END IF LET dataidx = xventas.clase LET dataidx1 = xventas.tipo LET dataidx2 = xventas.origen OUTPUT TO REPORT pventas(dataidx,dataidx1,dataidx2) END FOREACH IF idx > 1 THEN FINISH REPORT pventas END IF END INPUT END FUNCTION REPORT pventas(rindex,rindex1,rindex2) DEFINE rindex,rindex1,rindex2 VARCHAR(30) FORMAT PAGE HEADER SELECT * INTO p_companias.* FROM companias 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.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 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.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 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.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 LET toventas.total = SUM(xventas.presupuesto) PRINTX toventas.* END REPORT