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