Files
MBS/PROYECTO/cgdir/cgprrpanaliticox.4gl
T

154 lines
5.5 KiB
Plaintext

SCHEMA decomarmol
{MAIN
DEFINE usuarios,clave CHAR(20)
DEFINE impresor SMALLINT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "decomarmol" USER usuarios USING clave
CALL cgprrp()
END MAIN}
FUNCTION cgprrp008r(fecha1,fecha2)
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
DEFINE cgtb16 RECORD LIKE cgtb00016.*,
fecha1,fecha2 DATE,
knivel LIKE cgtb00001.nivel
CALL seleccionarSalida() RETURNING r_output
LET r_filename = "cgprrpanalitico.4rp"
#LET r_output = "SVG"
LET preview = TRUE
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
IF fgl_report_loadCurrentSettings(r_filename) THEN -- 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
ELSE
EXIT PROGRAM
END IF
IF handler IS NOT NULL THEN
START REPORT analitico TO XML HANDLER HANDLER
DECLARE busca CURSOR FOR
SELECT a.*, b.nivel FROM cgtb00016 a,cgtb00001 b
WHERE a.cuenta_no = b.cuenta_no
FOREACH busca INTO cgtb16.*,knivel
OUTPUT TO REPORT analitico(cgtb16.*,fecha1,fecha2,knivel)
END FOREACH
FINISH REPORT analitico
LET r_filename = "cgprrpanalitico_2.4rp"
#LET r_output = "SVG"
LET preview = TRUE
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
IF fgl_report_loadCurrentSettings(r_filename) THEN -- 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
ELSE
EXIT PROGRAM
END IF
START REPORT analitico TO XML HANDLER HANDLER
DECLARE busca_resumen CURSOR FOR
SELECT a.cuenta_no,b.descripcion,a.balance_ant,
a.debito,a.credito,a.actividad,
a.balance_act, b.nivel
FROM cgtb00016 a,cgtb00001 b
WHERE a.cuenta_no = b.cuenta_no AND b.nivel = 1
ORDER BY a.cuenta_no
INITIALIZE cgtb16.* TO NULL
FOREACH busca_resumen INTO cgtb16.cuenta_no,cgtb16.descripcion,cgtb16.balance_ant,
cgtb16.debito,cgtb16.credito,cgtb16.actividad,
cgtb16.balance_act,knivel
OUTPUT TO REPORT analitico(cgtb16.*,fecha1,fecha2,knivel)
END FOREACH
FINISH REPORT analitico
LET r_filename = "cgprrpanalitico_3.4rp"
#LET r_output = "SVG"
LET preview = TRUE
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
IF fgl_report_loadCurrentSettings(r_filename) THEN -- 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
ELSE
EXIT PROGRAM
END IF
START REPORT analitico TO XML HANDLER HANDLER
DECLARE busca_resumen_estado CURSOR FOR
SELECT a.cuenta_no,b.descripcion,a.balance_ant,
a.debito,a.credito,a.actividad,
a.balance_act, b.nivel
FROM cgtb00016 a,cgtb00001 b
WHERE a.cuenta_no = b.cuenta_no AND b.cuenta_resultado = "S"
ORDER BY a.cuenta_no
INITIALIZE cgtb16.* TO NULL
FOREACH busca_resumen_estado INTO cgtb16.cuenta_no,cgtb16.descripcion,cgtb16.balance_ant,
cgtb16.debito,cgtb16.credito,cgtb16.actividad,
cgtb16.balance_act,knivel
OUTPUT TO REPORT analitico(cgtb16.*,fecha1,fecha2,knivel)
END FOREACH
FINISH REPORT analitico
END IF
END FUNCTION
REPORT analitico(x,xfecha1,xfecha2,xnivel)
DEFINE x RECORD LIKE cgtb00016.*,
z LIKE companias.nombre,
xfecha1,xfecha2 DATE,
tbalan_ant,tdebito,tcredito,tactividad,tbalanc_Act DEC(12,2),
xnivel LIKE cgtb00001.nivel
ORDER BY x.cuenta_no
FORMAT
FIRST PAGE HEADER
LET tbalan_ant = 0
LET tdebito = 0
LET tcredito = 0
LET tactividad = 0
LET tbalanc_act = 0
SELECT a.nombre INTO z FROM companias a
ON EVERY ROW
LET tbalan_ant = tbalan_ant + x.balance_ant
LET tdebito = tdebito + x.debito
LET tcredito = tcredito + x.credito
LET tactividad = tactividad + x.actividad
LET x.balance_act = x.balance_ant + x.actividad
LET tbalanc_act = tbalanc_act + x.balance_act
PRINTX x.*,z,xfecha1,xfecha2,tbalan_ant,tdebito,tcredito,tactividad,tbalanc_Act,
xnivel
END REPORT