123 lines
3.7 KiB
Plaintext
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 |