Files
DECOMARMOL/PROYECTO/cgdir/cgprrp019.4gl
T
2026-09-22 20:38:51 -04:00

310 lines
8.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : NOPRRP019
OBJETIVO : LISTAR LA RELACION DE CHEQUES ELIMINADOS
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Septiembre 02, 1993
-------------------------------------------------------------------------------
}
GLOBALS "cgprgb000.4gl"
DEFINE opt1 char(3)
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 "decomarmol" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
CALL cgprrp019()
END MAIN
FUNCTION cgprrp019()
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE cheques_e RECORD
cuenta_no LIKE cgtb00005.cuenta_no,
descripcion CHAR(100),
cheque_no LIKE cgtb00005.cheque_no,
portador LIKE cgtb00005.portador,
fecha DATE,
monto LIKE cgtb00005.monto,
tipo_doc CHAR(2)
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM cgfmrp019 FROM "cgfmrp018"
DISPLAY FORM cgfmrp019
CALL pantalla()
DISPLAY "cgprrp019" AT 4,3
DISPLAY "Relacion de Cheques Nulos" AT 6,27
## 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,a.tipo_doc FROM cuenta_no,tipo_doc
LET selec = "SELECT UNIQUE a.cuenta_no,b.descripcion,a.cheque_no, ",
" a.portador,a.fecha,a.monto,a.tipo_doc ",
"FROM cgtb00005 a,cgtb00001 b ",
"WHERE a.cuenta_no = b.cuenta_no AND a.status_t = 'N' 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)
LET r_filename ="cgprrp019.4rp"
LET r_output = "PDF"
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(1)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
ELSE
EXIT PROGRAM
END IF
START REPORT cheq_elim TO XML HANDLER handler
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_e.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT cheq_elim(cheques_e.*)
END FOREACH
FINISH REPORT cheq_elim
CLEAR SCREEN
#RUN "type C:\\archivo > %USPRINT%"
END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
{ REPORT cheq_elim(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 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 027, ASCII 098
LET negrillas_off = ASCII 027, ASCII 099
LET comp_on = ASCII 031
LET comp_off = ASCII 029
LET doce = ASCII 030
LET normal = ASCII 029
LET hora = time
PRINT COLUMN 1, negrillas_on
PRINT COLUMN 1, "cgprrp019",
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 Nulos",
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 ",
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 x.monto = 0
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
}
REPORT cheq_elim(x)
DEFINE x RECORD
cuenta_no LIKE cgtb00005.cuenta_no,
descripcion CHAR(100),
cheque_no LIKE cgtb00005.cheque_no,
portador LIKE cgtb00005.portador,
fecha DATE,
monto LIKE cgtb00005.monto,
tipo_doc CHAR(2)
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),fecha DATE,documento CHAR(50)
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
FIRST PAGE HEADER
LET fecha =TODAY
IF x.tipo_doc='TR' THEN
LET documento="Transferencias Nulas"
ELSE
LET documento="Cheques Nulos"
END IF
BEFORE GROUP OF x.cuenta_no
LET total = 0
LET tot_che = 0
## AQUI SE INDICA LA IMPRESION DEL DETALLE
ON EVERY ROW
# LET x.monto = 0
LET total = total + x.monto
PRINTX x.*,p_compania.*,fecha,hora,fecha1,fecha2,documento
AFTER GROUP OF x.cuenta_no
#LET total = total + x.monto
PRINTX total
END REPORT