{ ------------------------------------------------------------------------------- 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