{ ------------------------------------------------------------------------------- PROGRAMA : CGPRRP018 OBJETIVO : LISTAR LA RELACION DE CHEQUES CANCELADOS 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 cgprrp018() END MAIN FUNCTION cgprrp018() ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE cheques_c 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 cgfmrp018 FROM "cgfmrp018" DISPLAY FORM cgfmrp018 CALL pantalla() DISPLAY "cgprrp018" AT 4,3 DISPLAY "Relacion de Cheques Cancelados" AT 6,26 ## 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,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 = 51 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 FROM cuenta_no 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_canc TO archivo 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.status_t = 'C' AND ", " a.fecha BETWEEN ? AND ? AND ",criterio CLIPPED PREPARE comando FROM selec DECLARE busca CURSOR FOR comando OPEN busca USING fecha1,fecha2 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_c.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT cheq_canc(cheques_c.*) END FOREACH FINISH REPORT cheq_canc CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT cheq_canc(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, "cgprrp018", 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 Cancelados")) / 2 PRINT COLUMN l, "Relacion de Cheques Cancelados", COLUMN 75, hora PRINT COLUMN 01, " FECHA: DEL ",fecha1 using "dd/mm/yy", " AL ",fecha2 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