{ ------------------------------------------------------------------------------- PROGRAMA : CGPRRP017 OBJETIVO : LISTAR LA RELACION DE CHEQUES EN TRANSITO PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Septiembre 02, 1993 ------------------------------------------------------------------------------- } GLOBALS "cgprgb000.4gl" DEFINE fecha1,fecha2 DATE 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_compania.* FROM companias a CALL cgprrp017() END MAIN FUNCTION cgprrp017() ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE cheques_t RECORD cuenta_no LIKE cgtb00005.cuenta_no, descripcion CHAR(30), cheque_no LIKE cgtb00005.cheque_no, portador LIKE cgtb00005.portador, fecha DATE, monto LIKE cgtb00005.monto END RECORD # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM cgfmrp017 FROM "cgfmrp017" DISPLAY FORM cgfmrp017 CALL pantalla() DISPLAY "cgprrp017" AT 4,3 DISPLAY "Relacion de Cheques En Transito" AT 6,25 ## INDICA EL TIPO DE PAPEL NECESARIO PARA EL REPORTE. 1 - PAPEL 9 1/2 X 11 ## 2 - PAPEL 14 7/8 X 11 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha1 AFTER FIELD fecha1 IF fecha1 IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha1 END IF IF fecha1 > TODAY 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 a.cuenta_no,a.cheque_no FROM cuenta_no,cheque_no LET selec = "SELECT UNIQUE a.cuenta_no,b.descripcion,a.cheque_no, ", " a.portador,a.fecha,a.monto ", "FROM cgtb00005 a,cgtb00001 b ", "WHERE a.cuenta_no = b.cuenta_no AND a.fecha <= ? AND ", " a.status_t IS NULL AND ", criterio CLIPPED CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, doble_on,doble_off,comp_on,comp_off, doce,normal,archivo,copia START REPORT cheq_trans TO archivo PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha1 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE FOREACH busca INTO cheques_t.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT cheq_trans(cheques_t.*) END FOREACH FINISH REPORT cheq_trans CLEAR SCREEN RUN imprime END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT cheq_trans(x) DEFINE x RECORD cuenta_no LIKE cgtb00005.cuenta_no, descripcion CHAR(30), cheque_no LIKE cgtb00005.cheque_no, portador LIKE cgtb00005.portador, fecha DATE, monto LIKE cgtb00005.monto END RECORD ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE dueno CHAR(30) DEFINE doble_on CHAR(3) DEFINE doble_off CHAR(3) DEFINE negrillas_on CHAR(3) DEFINE negrillas_off CHAR(3) DEFINE comp_on CHAR(3) DEFINE comp_off CHAR(3) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) DEFINE l smallint DEFINE estado CHAR(1) DEFINE inicio,final,cheque,i,tot_che INTEGER DEFINE total,valor DECIMAL(12,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.cuenta_no,x.cheque_no FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET hora = time LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2 PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "cgprrp017", COLUMN l, p_compania.nombre CLIPPED, COLUMN 72, "Pag. ",pageno using "###" LET l = (80 - LENGTH("Sistema de Contabilidad")) / 2 PRINT COLUMN l, "Sistema de Contabilidad", COLUMN 72, today using "dd/mm/yy" LET l = (80 - LENGTH("Relacion de Cheques En Transito")) / 2 PRINT COLUMN l, "Relacion de Cheques En Transito", COLUMN 75, hora PRINT COLUMN 1, "FECHA DE CORTE: Al ",fecha1 using "dd/mm/yy" PRINT COLUMN 2, "---------------------------------------------------", "-----------------------------" PRINT COLUMN 2, "Cheque ", COLUMN 15, "Fecha", COLUMN 26, "Beneficiario", COLUMN 69, "Valor " PRINT COLUMN 2, "----------------------------------------------------", "-----------------------------" PRINT COLUMN 1, negrillas_off BEFORE GROUP OF x.cuenta_no PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "Banco ",x.cuenta_no," ",x.descripcion CLIPPED PRINT COLUMN 1, negrillas_off LET total = 0 LET tot_che = 0 ## AQUI SE INDICA LA IMPRESION DEL DETALLE ON EVERY ROW LET total = total + x.monto PRINT COLUMN 5, x.cheque_no using "&&&&&&&", COLUMN 15, x.fecha USING "dd/mm/yy", COLUMN 26, x.portador clipped, COLUMN 64, x.monto using "###,###,###.##" AFTER GROUP OF x.cuenta_no PRINT COLUMN 1, negrillas_on PRINT COLUMN 64, "--------------" PRINT COLUMN 26, "Total Cuenta ",x.cuenta_no, COLUMN 64, GROUP SUM(x.monto) using "###,###,###.##" PRINT COLUMN 1, negrillas_off SKIP TO TOP OF PAGE END REPORT