Files
MBS/PROYECTO/TEST/reportes/dashboard_1.4gl
T

123 lines
3.7 KiB
Plaintext

DEFINE pano,pmes SMALLINT,
titulomes,titulodepartamento VARCHAR(60),
usuarios,clave VARCHAR(50),
xnumemp INT,
tienegastos VARCHAR(2)
MAIN
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "smarmotech" USER usuarios USING clave
CALL reporte()
END MAIN
FUNCTION reporte()
DEFINE data RECORD
categoria VARCHAR(20),
mes VARCHAR(20),
cuenta VARCHAR(14),
descripcion VARCHAR(100),
valor DEC(12,2) ,
departamento VARCHAR(60)
END RECORD,
hand om.SaxDocumentHandler
LET pano = YEAR(TODAY)
LET pmes = MONTH(TODAY)
LET pmes = 10
SELECT a.descrip INTO titulomes FROM mestable a WHERE a.mes = pmes
SELECT b.nom_dpto,a.num_emp
INTO titulodepartamento,xnumemp
FROM seg0001 a,adtb00001 b,adtb00004 c,adtb00003 d
WHERE a.usuario =usuarios AND a.departamento = b.departamento AND a.num_emp = d.num_emp AND
d.cod_puesto = c.cod_puesto AND c.supervisor = 'SI'
IF STATUS = NOTFOUND THEN
DISPLAY "NO DESPLEGA DASHBOARD"
EXIT PROGRAM
END IF
CALL setupreporte() RETURNING hand
DECLARE busca_gastos CURSOR FOR
SELECT c.descrip,SUM(a.balance),d.nom_dpto,c.mes FROM vwanalitico a,mestable c,adtb00001 d
WHERE a.control = '7' AND
a.ano = pano AND
a.codigodepartamento = d.departamento AND
d.num_emp_supervisa = xnumemp AND
a.numero_mes <= pmes AND a.numero_mes = c.mes
GROUP BY c.descrip,c.mes,d.nom_dpto
ORDER BY d.nom_dpto,c.mes
START REPORT datarep TO XML HANDLER hand
FOREACH busca_gastos INTO data.mes,data.valor,data.departamento
OUTPUT TO REPORT datarep(data.*)
END FOREACH
FINISH REPORT datarep
CALL ui.Interface.frontCall( "standard", "launchurl", [fgl_report_getBrowserURL()], [] )
END FUNCTION
REPORT datarep(x)
DEFINE x RECORD
categoria VARCHAR(20),
mes VARCHAR(20),
cuenta VARCHAR(14),
descripcion VARCHAR(100),
valor DEC(12,2) ,
departamento VARCHAR(60)
END RECORD,
z RECORD
descripcion VARCHAR(20),
balance DEC(12,2)
END RECORD,
i SMALLINT
ORDER BY x.departamento,x.mes
FORMAT
AFTER GROUP OF x.departamento
PRINTX x.*,tienegastos,titulodepartamento,titulomes
ON LAST ROW
IF tienegastos = "SI" THEN
DECLARE busca_Cuenta CURSOR FOR
SELECT a.descripcioncuenta,SUM(a.balance) FROM vwanalitico a,adtb00001 b
WHERE a.ano = pano AND a.numero_mes = pmes AND b.num_emp_supervisa = xnumemp AND a.control='7'
GROUP BY a.descripcioncuenta
ORDER BY 2 DESC
LET i =1
FOREACH busca_cuenta INTO z.*
PRINTX z.*
LET i = i+1
END FOREACH
END IF
END REPORT
FUNCTION setupreporte()
DEFINE hand om.SaxDocumentHandler,
filename,r_output STRING,
preview BOOLEAN,
cuenta INT
LET filename = 'dashboard.4rp'
LET r_output = "SVG"
LET preview = TRUE
LET tienegastos = "SI"
SELECT ISNULL(COUNT(*),0) INTO cuenta FROM vwanalitico a,adtb00001 b
WHERE ano = pano AND numero_mes = pmes AND a.codigodepartamento = b.departamento
AND b.num_emp_supervisa = xnumemp
IF cuenta = 0 THEN
LET tienegastos = "NO"
END IF
LET tienegastos="NO"
IF fgl_report_loadCurrentSettings(filename) THEN
CALL fgl_report_selectDevice(r_output)
CALL fgl_report_selectPreview(preview)
CALL fgl_report_commitCurrentSettings() RETURNING hand
IF hand IS NULL THEN
DISPLAY " ERROR "
EXIT PROGRAM
END IF
END IF
RETURN hand
END FUNCTION