Files

245 lines
7.1 KiB
Plaintext

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