148 lines
4.6 KiB
Plaintext
148 lines
4.6 KiB
Plaintext
{
|
|
PROGRAMA : CCPRRP047
|
|
DESARROLLADOR : JUAN SOTO
|
|
FECHA : ABRIL 17, 2012
|
|
OBJETIVO : REPORTE COBROS PARA ENVIARLO POR CORREO
|
|
}
|
|
|
|
GLOBALS
|
|
"ccprgb000.4gl"
|
|
|
|
|
|
MAIN
|
|
|
|
|
|
DEFER INTERRUPT
|
|
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
CALL ccprrp047()
|
|
|
|
END MAIN
|
|
|
|
FUNCTION ccprrp047()
|
|
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 xcobros RECORD
|
|
ano SMALLINT,
|
|
mes VARCHAR(12),
|
|
tasa DEC(12,2),
|
|
TipoCobro VARCHAR(40),
|
|
ocupacion VARCHAR(40),
|
|
nombre VARCHAR(30),
|
|
apellido VARCHAR(30),
|
|
valorrd DEC(12,2),
|
|
valororig DEC(12,2),
|
|
valorAcumuladoRD DEC(12,2),
|
|
ValorAcumuladoOrig DEC(12,2)
|
|
END RECORD,
|
|
fecha_inicial,fecha_ini_periodo DATE
|
|
|
|
LET preview = true
|
|
LET r_output = "SVG"
|
|
LET r_filename='ccprrp047.4rp'
|
|
-- 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
|
|
--run the report
|
|
IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
|
|
START REPORT xmlcobros TO "tonto"
|
|
|
|
SELECT MIN(a.fecha_inicio) INTO fecha_ini_periodo
|
|
FROM prdtable a
|
|
WHERE a.ano = year(today)
|
|
|
|
SELECT a.fecha_inicio INTO fecha_inicial
|
|
FROM prdtable a
|
|
WHERE a.ano = year(today) AND a.mes = MONTH(today)
|
|
|
|
CALL fgl_winmessage("ERROR",fecha_inicial,"STOP")
|
|
DECLARE busca CURSOR FOR
|
|
SELECT a.ano,a.nombremes,a.tasa,a.tipocobro,a.ocupacion,
|
|
SUM(a.valorrd),sum(a.valor),'0','0'
|
|
FROM vwcobros a
|
|
WHERE a.fecha_orig BETWEEN fecha_inicial AND TODAY
|
|
GROUP BY a.ano,a.nombremes,a.tasa,a.tipocobro,a.ocupacion
|
|
UNION
|
|
SELECT a.ano,a.nombremes,a.tasa,a.tipocobro,a.ocupacion,
|
|
'0','0',SUM(a.valorrd),sum(a.valor)
|
|
FROM vwcobros a
|
|
WHERE a.fecha_orig BETWEEN fecha_ini_periodo AND TODAY
|
|
GROUP BY a.ano,a.nombremes,a.tasa,a.tipocobro,a.ocupacion
|
|
|
|
|
|
|
|
|
|
FOREACH busca INTO xcobros.*
|
|
OUTPUT TO REPORT xmlcobros(xcobros.*)
|
|
END FOREACH
|
|
FINISH REPORT xmlcobros
|
|
END IF
|
|
END FUNCTION
|
|
REPORT xmlcobros(x)
|
|
|
|
DEFINE x RECORD
|
|
ano SMALLINT,
|
|
mes VARCHAR(12),
|
|
tasa DEC(12,2),
|
|
TipoCobro VARCHAR(40),
|
|
ocupacion VARCHAR(40),
|
|
nombre VARCHAR(30),
|
|
apellido VARCHAR(30),
|
|
valorrd DEC(12,2),
|
|
valororig DEC(12,2),
|
|
valorAcumuladoRD DEC(12,2),
|
|
ValorAcumuladoOrig DEC(12,2)
|
|
|
|
END RECORD,
|
|
total_cobros_rd,total_cobros_orig,total_cobros_acum_rd,total_cobros_acum_orig DEC(12,2),
|
|
ttotal_cobros_rd,ttotal_cobros_orig,ttotal_cobros_acum_rd,ttotal_cobros_acum_orig DEC(12,2)
|
|
|
|
ORDER EXTERNAL BY x.tipocobro,x.ocupacion
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
LET ttotal_cobros_Rd = 0
|
|
LET ttotal_cobros_orig = 0
|
|
LET ttotal_cobros_acum_rd = 0
|
|
LET ttotal_cobros_acum_orig = 0
|
|
|
|
BEFORE GROUP OF x.ocupacion
|
|
LET total_cobros_Rd = 0
|
|
LET total_cobros_orig = 0
|
|
LET total_cobros_acum_rd = 0
|
|
LET total_cobros_acum_orig = 0
|
|
|
|
ON EVERY ROW
|
|
LET total_cobros_Rd = total_cobros_rd + x.valorrd
|
|
LET total_cobros_orig = total_cobros_orig + x.valororig
|
|
LET total_cobros_acum_rd = total_cobros_acum_rd + x.valorAcumuladoRD
|
|
LET total_cobros_acum_orig = total_cobros_acum_orig + x.ValorAcumuladoOrig
|
|
|
|
LET ttotal_cobros_Rd = ttotal_cobros_rd + x.valorrd
|
|
LET ttotal_cobros_orig = ttotal_cobros_orig + x.valororig
|
|
LET ttotal_cobros_acum_rd = ttotal_cobros_acum_rd + x.valorAcumuladoRD
|
|
LET ttotal_cobros_acum_orig = ttotal_cobros_acum_orig + x.ValorAcumuladoOrig
|
|
|
|
PRINTX x.*,total_cobros_acum_orig,total_cobros_acum_rd,total_cobros_orig,
|
|
total_cobros_rd,ttotal_cobros_acum_orig,ttotal_cobros_acum_rd,ttotal_cobros_orig,
|
|
ttotal_cobros_rd,p_companias.nombre
|
|
|
|
|
|
|
|
END REPORT
|
|
|