Files
MBS/PROYECTO/tedir/teprrp001.4gl
T

349 lines
11 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : TEPRRP001
OBJETIVO : Validacion de Depositos Por Banco
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Sept. 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "teprgb000.4gl"
DEFINE fecha1,fecha2,fecha_corte DATE ,
opt5 CHAR(1)
##### Definicion de las variables del reporte
DEFINE deposito1 RECORD
num_doc SMALLINT,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto ,monto_efectivo,monto_link,monto_ck DECIMAL(12,2),
sucnombre CHAR(60)
END RECORD
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL STARTLOG("teprrp001.txt")
CONNECT to "smarmotech" USER usuarios USING clave
SELECT a.nombre INTO p_compania.nombre FROM companias a
DISPLAY usuarios
CALL teprrp001()
END MAIN
###### Funcion de busqueda de informteion
FUNCTION teprrp001()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21,
PROMPT LINE 14
OPEN FORM tefmrp001 FROM "tefmrp001"
DISPLAY FORM tefmrp001
DISPLAY "teprrp001" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Validacion de Depositos Por Banco" AT 6,24 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
# Creando el criterio de busqueda de informteion
INPUT BY NAME fecha1,fecha2
AFTER FIELD fecha1
IF fecha1 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
AFTER FIELD fecha2
IF fecha2 IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha2
END IF
IF fecha1 > fecha2 THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha1
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON c.cuenta_no,c.num_doc,c.procedencia
FROM cuenta_no,num_doc,procedencia
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
LET parametro = "D"
##### Selecionando la prima del dolar actual
LET selec =
"SELECT c.num_doc,c.cuenta_no,a.descripcion,d.cuenta_bank,c.procedencia, ",
" b.descripcion,c.fecha,c.monto,c.monto_efectivo,c.monto_link,c.monto_ck,e.sucnombre ",
"FROM tetb00001 c LEFT OUTER JOIN tetb00002 b ON b.procedencia = c.procedencia left outer join sucursales e on e.sucid=c.sucursal,cgtb00001 a,cgtb00012 d ",
"WHERE a.cuenta_no = c.cuenta_no AND c.status_t IS NULL AND ",
" b.status_t IS NULL AND d.cuenta_no=c.cuenta_no and ",
" c.fecha BETWEEN ? AND ? AND ",criterio CLIPPED
DISPLAY "<< Buscando Informacion ... Espere Por Favor. >>" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE comando FROM selec
DECLARE busca1 CURSOR FOR comando
# OPEN busca1 USING fecha1,fecha2
LET idx=1
FOREACH busca1 USING fecha1,fecha2 INTO deposito1.*
DISPLAY "aqui",fecha1
IF idx=1 THEN
# IF idx=1 THEN
LET r_filename="teprrp001.4rp"
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
# END IF
START REPORT deposito1s TO XML HANDLER HANDLER
END IF
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
DISPLAY deposito1.num_doc AT 21,20
DISPLAY deposito1.cuenta_no AT 21,35
OUTPUT TO REPORT deposito1s(deposito1.*)
LET idx = idx + 1
END FOREACH
IF idx > 1 THEN
DISPLAY "aqui"
FINISH REPORT deposito1s
ELSE
CALL fgl_winmessage("ERROR","NO EXISTEN REGISTROS CON ESA CONDICION","INFO")
END IF
END FUNCTION
#### Funcion que genera el reporte
{REPORT deposito1s(x)
DEFINE x RECORD
num_doc INTEGER,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto DECIMAL(12,2)
END RECORD
DEFINE descr CHAR(30)
DEFINE hora CHAR(5)
DEFINE fecha5 DATE
DEFINE dias INTEGER
DEFINE tasa,deprec DECIMAL(8,2)
DEFINE valor_libro,depr_teum,total1 DECIMAL(12,2)
DEFINE total2,total3,total4,total5 DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
##### Sorteando la salida de la informteion
ORDER BY x.cuenta_no,x.procedencia,x.num_doc
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.comp_on,letras.negrillas_on
PRINT COLUMN 1, "teprrp001",
COLUMN 20, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 78, "Pag. ",pageno USING "###"
PRINT COLUMN 20, " Sistema de Tesoreria ",
COLUMN 78, today using "dd/mm/yyyy"
PRINT COLUMN 20, " Validacion de Depositos Por Bancos ",
COLUMN 81, hora
PRINT COLUMN 31, "Del ",fecha1 USING "dd/mm/yyyy"," Al ",
fecha2 USING "dd/mm/yyyy" #,letras.normal,
#letras.comp_on
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------"
PRINT COLUMN 1, "Banco",
COLUMN 60, "Procedencia",
COLUMN 91, "Cta. Banco",
COLUMN 107, "Num. Dcto.",
COLUMN 122, "Fecha",
COLUMN 136, "Monto"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------"
, letras.negrillas_off
BEFORE GROUP OF x.cuenta_no
LET total1 = 0
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 1,x.cuenta_no," ",x.descripcion;
BEFORE GROUP OF x.procedencia
LET total2 = 0
PRINT COLUMN 60,letras.negrillas_off,x.procedencia USING "&",
" ",x.descrip2;
ON EVERY ROW
IF x.monto IS NULL THEN
LET x.monto = 0
END IF
IF total3 IS NULL THEN
LET total3 = 0
END IF
LET total1 = total1 + x.monto
LET total2 = total2 + x.monto
LET total3 = total3 + x.monto
PRINT COLUMN 91,x.cta_banco,
COLUMN 109,x.num_doc USING "&&&&&&",
COLUMN 121,x.fecha USING "dd/mm/yyyy",
COLUMN 130,x.monto USING "###,###,###.##"
#### Acumulando los totales de las columnas por cuenta
AFTER GROUP OF x.procedencia
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total Por Procedencia :",
COLUMN 130,total2 USING "###,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
LET Total2 = 0
AFTER GROUP OF x.cuenta_no
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total Por Cuenta :",
COLUMN 130,total1 USING "###,###,###.##"
PRINT COLUMN 1,letras.negrillas_off
LET Total1 = 0
ON LAST ROW
PRINT COLUMN 1,letras.negrillas_on
PRINT COLUMN 105,"Total General :",
COLUMN 132,total3 USING "###,###,###.##"
PRINT COLUMN 1,letras.normal,letras.negrillas_off
LET total1 = 0
LET total2 = 0
LET total3 = 0
END REPORT}
REPORT deposito1s(x)
DEFINE x RECORD
num_doc INTEGER,
cuenta_no CHAR(8),
descripcion CHAR(46),
cta_banco CHAR(13),
procedencia SMALLINT,
descrip2 CHAR(30),
fecha DATE,
monto,monto_efectivo,monto_link,monto_ck DECIMAL(12,2),
sucnombre CHAR(60)
END RECORD
DEFINE descr CHAR(30)
DEFINE hora CHAR(5)
DEFINE fecha5,fecha DATE
DEFINE dias INTEGER
DEFINE tasa,deprec DECIMAL(8,2)
DEFINE valor_libro,depr_teum,total1 DECIMAL(12,2)
DEFINE total2,total3,total4,total5,total_efe,total_ck,total_link,total_monto DECIMAL(12,2)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
##### Sorteando la salida de la informteion
ORDER BY x.sucnombre,x.cuenta_no,x.procedencia,x.num_doc
FORMAT
PAGE HEADER
LET fecha = today
LET hora = TIME
ON EVERY ROW
IF total3 IS NULL THEN
LET total3 = 0
END IF
IF x.monto IS NULL THEN
LET x.monto = 0
END IF
PRINTX x.cta_banco,p_compania.*,hora,fecha,x.descrip2,x.fecha,x.monto,x.num_doc,x.procedencia,x.monto_ck,
x.monto_efectivo,x.monto_link
BEFORE GROUP OF x.sucnombre
PRINTX x.sucnombre
AFTER GROUP OF x.sucnombre
LET total_ck=0
LET total_efe=0
LET total_link=0
LET total_monto=0
LET total_ck=GROUP SUM(x.monto_ck)
LET total_link=GROUP SUM(x.monto_link)
LET total_efe=GROUP SUM(x.monto_efectivo)
LET total_monto=GROUP SUM(x.monto)
PRINTX total_ck,total_link,total_efe,total_monto
BEFORE GROUP OF x.cuenta_no
PRINTX x.cuenta_no,x.descripcion
AFTER GROUP OF x.cuenta_no
LET total2=0
LET total1=0
LET total4=0
LET total5=0
LET total1=GROUP SUM(x.monto_ck)
LET total4=GROUP SUM(x.monto_link)
LET total5=GROUP SUM(x.monto_efectivo)
LET total2=GROUP SUM(x.monto)
PRINTX total2,total1,total4,total5
ON LAST ROW
LET total3=SUM(x.monto)
PRINTX total3
end report