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

181 lines
6.7 KiB
Plaintext

DEFINE r_output STRING -- output format option
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
preview INTEGER -- TRUE/FALSE, to set preview option
DEFINE cgtb16 RECORD
ano SMALLINT
,mes SMALLINT
,cuenta_no VARCHAR(14)
,estado_a VARCHAR(10)
,estado_m VARCHAR(10)
,descripcion VARCHAR(50)
,debito DEC(12,2)
,credito DEC(12,2)
,balance_ant DEC(12,2)
,actividad DEC(12,2)
,balance_act DEC(12,2)
,primern VARCHAR(10)
END RECORD,
knivel SMALLINT,
fecha1,fecha2 DATE
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
CALL fgl_report_configurexlsxdevice(null,null,null,false,false,null,1)
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.cuenta_no,b.descripcion,a.balance_ant,
a.debito,a.credito,a.actividad,
a.balance_act, b.nivel , b.nivel FROM cgtb00016 a,cgtb00001 b
WHERE a.cuenta_no = b.cuenta_no AND a.ano = YEAR(fecha1) AND a.mes = MONTH(fecha1)
FOREACH busca INTO cgtb16.cuenta_no,cgtb16.descripcion,cgtb16.balance_ant,
cgtb16.debito,cgtb16.credito,cgtb16.actividad,
cgtb16.balance_act,knivel
IF cgtb16.balance_ant <> 0 OR cgtb16.balance_act <> 0 THEN
OUTPUT TO REPORT analitico(cgtb16.*,fecha1,fecha2,knivel)
END IF
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 AND a.ano = YEAR(fecha1) AND a.mes = MONTH(fecha1)
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" AND a.ano = YEAR(fecha1) AND a.mes = MONTH(fecha1)
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 ano SMALLINT
,mes SMALLINT
,cuenta_no VARCHAR(14)
,estado_a VARCHAR(10)
,estado_m VARCHAR(10)
,descripcion VARCHAR(50)
,debito DEC(12,2)
,credito DEC(12,2)
,balance_ant DEC(12,2)
,actividad DEC(12,2)
,balance_act DEC(12,2)
,primern VARCHAR(10)
END RECORD,
z VARCHAR(100),
xfecha1,xfecha2 DATE,
tbalan_ant,tdebito,tcredito,tactividad,tbalanc_Act DEC(12,2),
xnivel SMALLINT,
encabezado CHAR(2)
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
LET encabezado = "SI"
PRINTX encabezado
ON EVERY ROW
IF r_output = 'XLSX' THEN
LET encabezado = "NO"
END IF
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