{ ------------------------------------------------------------------------------- PROGRAMA : NOPRRP020 OBJETIVO : LISTAR LA RELACION DE CHEQUES NO EMITIDOS PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Septiembre 02, 1993 ------------------------------------------------------------------------------- } GLOBALS "cgprgb000.4gl" DEFINE fecha1,fecha2 DATE FUNCTION cgprrp020() ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE cheques_n RECORD cuenta_no LIKE cgtb00005.cuenta_no, descripcion CHAR(30) END RECORD # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM cgfmrp020 FROM "cgfmrp016" DISPLAY FORM cgfmrp020 CALL pantalla() DISPLAY "cgprrp020" AT 4,3 DISPLAY "Relacion de Cheques No Emitidos" 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,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 OR fecha1 > fecha2 THEN LET numero_msg = 16 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 LET selec = "SELECT UNIQUE a.cuenta_no,b.descripcion ", "FROM cgtb00005 a,cgtb00001 b ", "WHERE a.cuenta_no = b.cuenta_no AND a.fecha BETWEEN ? AND ? AND ", " a.status_t IS NULL AND ",criterio CLIPPED," ORDER BY 1 " 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) START REPORT cheq_emit TO "C:\\archivo" 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_n.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT cheq_emit(cheques_n.*) END FOREACH FINISH REPORT cheq_emit CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT cheq_emit(x) DEFINE x RECORD cuenta_no LIKE cgtb00005.cuenta_no, descripcion CHAR(30) 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 c,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 FORMAT PAGE HEADER LET doble_on = ASCII 001 LET doble_off = ASCII 002 LET negrillas_on = ASCII 027, ASCII 098 LET negrillas_off = ASCII 027, ASCII 099 LET comp_on = ASCII 31 LET comp_off = ASCII 029 LET doce = ASCII 030 LET normal = ASCII 029 LET hora = time PRINT COLUMN 1, negrillas_on PRINT COLUMN 1, "cgprrp020", COLUMN 17, "M A R M O T E C H, S. A.", COLUMN 72, "Pag. ",pageno using "###" PRINT COLUMN 17, " Sistema de Contabilidad", COLUMN 72, today using "dd/mm/yy" PRINT COLUMN 17, " Relacion de Cheques No Emitidos", COLUMN 75, hora PRINT COLUMN 1, "FECHA: Del"," ",fecha1 using "dd/mm/yy", " Al ",fecha2 using "dd/mm/yy" PRINT COLUMN 2, "---------------------------------------------------", "------------------------------" PRINT COLUMN 2, "Cheque No Emitidos" PRINT COLUMN 2, "----------------------------------------------------", "-----------------------------" PRINT COLUMN 1,negrillas_off ## AQUI SE INDICA LA IMPRESION DEL DETALLE 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 inicio = 0 SELECT MAX(a.cheque_no) INTO inicio FROM cgtb00005 a WHERE a.cuenta_no = x.cuenta_no AND a.fecha <= fecha1 SELECT MAX(a.cheque_no) INTO final FROM cgtb00005 a WHERE a.cuenta_no=x.cuenta_no AND a.fecha BETWEEN fecha1 AND fecha2 LET total = 0 LET tot_che = 0 IF inicio IS NULL THEN LET inicio = 0 END IF IF final IS NULL THEN LET final = 0 END IF LET tot_che = 0 LET c = 1 FOR i = inicio TO final SELECT UNIQUE a.cheque_no FROM cgtb00005 a WHERE a.cheque_no = i AND a.cuenta_no = x.cuenta_no IF STATUS = NOTFOUND THEN LET cheque= i LET tot_che = tot_che + 1 PRINT COLUMN c, cheque using "&&&&&&&"," "; LET c = c + 9 IF c > 80 THEN PRINT COLUMN c," " LET c = 1 END IF END IF END FOR PRINT COLUMN c," " AFTER GROUP OF x.cuenta_no PRINT COLUMN 1, negrillas_on IF tot_che IS NOT NULL AND tot_che > 0 THEN PRINT COLUMN 4, "Total Cheques No Emitidos ",tot_che USING "####" ELSE PRINT COLUMN 4, "Todos Los Estan Cheques Emitidos" END IF PRINT COLUMN 1, negrillas_off SKIP TO TOP OF PAGE END REPORT