{ ------------------------------------------------------------------------------- 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 DECIMAL(12,2) END RECORD ###### 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 CALL pantalla() 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) CALL defecto(impresor) RETURNING imprime,letras.*,archivo # Creando el criterio de busqueda de informteion INPUT BY NAME fecha1,fecha2 ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*,archivo 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 ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*,archivo AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT LET parametro = "D" CALL elijeimpresion(parametro) RETURNING orden,destino,letras.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF ##### Selecionando la prima del dolar actual LET selec = "SELECT c.num_doc,c.cuenta_no,a.descripcion,c.cta_banco,c.procedencia, ", " b.descripcion,c.fecha,c.monto ", "FROM tetb00001 c,cgtb00001 a,tetb00002 b ", "WHERE a.cuenta_no = c.cuenta_no AND c.status_t IS NULL AND ", " c.procedencia = b.procedencia AND b.status_t IS NULL 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 START REPORT deposito1s TO archivo DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) WHILE STATUS != NOTFOUND FETCH busca1 INTO deposito1.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF DISPLAY deposito1.num_doc AT 21,20 DISPLAY deposito1.cuenta_no AT 21,35 OUTPUT TO REPORT deposito1s(deposito1.*) END WHILE FINISH REPORT deposito1s #RUN imprime CALL fdestino(destino,archivo,imprime) CLEAR SCREEN 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