Files
MBS/PROYECTO/tedirbk/teprrp014.4gl
T

254 lines
8.1 KiB
Plaintext

{
==============================================================================
PROGRAMA : TEPRRP014
SISTEMA : Sistema de Tesoreria
Objetivo : Relacion de Cheque Emitidos x Partidas
PROGRAMADOR : Abner Montalvo
FECHA : Agosto 26, 1997
==============================================================================
}
GLOBALS
"teprgb000.4gl"
DEFINE datos_14 RECORD
cuenta_no CHAR(8),
descripc_cta CHAR(30),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
DEFINE fecha_inicial,fecha_final DATE
DEFINE salir CHAR(1)
FUNCTION teprrp014()
LET int_flag = FALSE
OPTIONS
FORM LINE 8
OPEN FORM tefmrp014 FROM "tefmrp014"
DISPLAY FORM tefmrp014
DISPLAY "teprrp014" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Relacion de Cheques Emitidos por Partidas" AT 6,20 ATTRIBUTE(BLACK)
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
CALL defecto(impresor) RETURNING imprime,letras.*,archivo
INPUT BY NAME fecha_inicial,fecha_final
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_inicial > fecha_final THEN
LET numero_msg = 51
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
END INPUT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON b.codigo,a.cuenta_no FROM codigo,cuenta_no
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*,archivo
AFTER CONSTRUCT
EXIT CONSTRUCT
END CONSTRUCT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec =
"SELECT UNIQUE a.cuenta_no,d.nombre_bco,a.cheque_no,a.fecha, ",
" a.portador,a.monto,a.status_t,b.codigo,c.descripcion ",
"FROM cgtb00005 a, tetb00006 b, tetb00003 c, cgtb00012 d ",
"WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ",
" a.cuenta_no = b.banco AND ",
" d.cuenta_no = b.banco AND ",
" a.cheque_no = b.cheque_no AND ",
" b.codigo = c.codigo ",
"ORDER BY 8,3,4"
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
OPEN busco USING fecha_inicial,fecha_final
START REPORT cheque_ep TO archivo
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 19,14
ATTRIBUTE(YELLOW)
LET salir = "N"
WHILE salir != "S"
FETCH busco INTO datos_14.*
IF STATUS = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY datos_14.cuenta_no AT 21,30
DISPLAY datos_14.cheque_no AT 21,40
IF datos_14.status_t = "N" THEN
LET datos_14.monto = 0
LET datos_14.portador = "NULO"
END IF
OUTPUT TO REPORT cheque_ep(datos_14.*)
END WHILE
FINISH REPORT cheque_ep
#RUN imprime
CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
REPORT cheque_ep(x)
DEFINE x RECORD
cuenta_no CHAR(8),
descripc_cta CHAR(30),
cheque_no INTEGER,
fecha DATE,
portador CHAR(30),
monto DECIMAL(12,2),
status_t CHAR(1),
codigo INTEGER,
descripcion CHAR(30)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE numero_ch CHAR(9),
descripcion CHAR(30),
detalle1 CHAR(40),
detalle2 CHAR(37)
DEFINE hora CHAR(5)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.negrillas_on,letras.comp_on
PRINT COLUMN 1, "teprrp014",
COLUMN 83, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 178, "Pag. ",pageno using "###"
PRINT COLUMN 81, " Sistema de Tesoreria",
COLUMN 178, today using "dd/mm/yyyy"
PRINT COLUMN 87, "Relacion Cheques Emitidos x Partidas",
COLUMN 180, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: Del ",fecha_inicial USING "dd/mm/yyyy",
" Al ",fecha_final USING "dd/mm/yyyy"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------",
"-----------------------------------"
PRINT COLUMN 1, "Cheque",
COLUMN 8, "Fecha",
COLUMN 17, "Beneficiario",
COLUMN 48, "Concepto",
COLUMN 125, "Banco",
COLUMN 180, "Valor"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"--------------------------------------------------",
"-----------------------------------"
PRINT letras.negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.codigo
PRINT COLUMN 1, letras.negrillas_on
PRINT COLUMN 1, "Partida : ", x.codigo USING "<<<<<<<"," ",
x.descripcion CLIPPED," ",letras.negrillas_off
ON EVERY ROW
LET numero_ch = NULL
LET detalle1 = NULL
LET detalle2 = NULL
IF x.status_t = "N" THEN
LET detalle1 = "CHEQUE ANULADO"
LET detalle2 = " "
ELSE
LET numero_ch = "CK.",x.cheque_no USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2[1,37]
INTO detalle1,detalle2
FROM cgtb00004 a
WHERE a.tipo = 2 AND
a.cuenta_no = x.cuenta_no AND
a.ref = numero_ch AND
a.detalles matches x.cuenta_no AND
a.status_t IS NULL
END IF
PRINT COLUMN 1, x.cheque_no USING "#####"," ",
x.fecha USING "dd/mm/yyyy"," ",
COLUMN 17, x.portador," ",
COLUMN 48, detalle1,detalle2," ",
COLUMN 126, x.cuenta_no USING "&&&&"," ",x.descripc_cta,
COLUMN 171, x.monto USING "###,###,###.##"
AFTER GROUP OF x.codigo
PRINT COLUMN 171, "--------------"
PRINT COLUMN 1, "Total Cheque(s) Partida --> ", GROUP COUNT(*)
USING "<<<,<<<",
COLUMN 171, GROUP SUM(x.monto) USING "###,###,###.##"
ON LAST ROW
PRINT COLUMN 171, "--------------"
PRINT COLUMN 1, "Total Cheque(s) --> ", COUNT (*) USING "<<<,<<<",
COLUMN 171, SUM(x.monto) USING "###,###,###.##"
PRINT COLUMN 171, "=============="
PRINT letras.comp_off
END REPORT