{ ============================================================================== PROGRAMA : TEPRRP007 SISTEMA : Sistema de Tesoreria Objetivo : Relacion de Cheque Emitidos PROGRAMADOR : Tadeo A. Ferreras FECHA : Diciembre 05, 1995 ============================================================================== } GLOBALS "teprgb000.4gl" DEFINE tipos STRING DEFINE datos_7 RECORD cuenta_no CHAR(8), 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 tasa DECIMAL(7,3) DEFINE salir CHAR(1) MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL STARTLOG("teprrp001.txt") CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_compania.* FROM companias a DISPLAY usuarios CALL teprrp007() END MAIN FUNCTION teprrp007() LET int_flag = FALSE OPTIONS FORM LINE 8 OPEN FORM tefmrp007 FROM "tefmrp007" DISPLAY FORM tefmrp007 DISPLAY "teprrp007" AT 4,3 ATTRIBUTE(RED) DISPLAY "Relacion de Cheques Emitidos" AT 6,26 ATTRIBUTE(BLACK) LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME fecha_inicial,fecha_final,tasa,tipos 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 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.cheque_no FROM cuenta_no,cheque_no AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT { 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 DISPLAY "tipos",tipos IF tipos="e" THEN LET selec = "SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ", " a.status_t,b.codigo,c.descripcion ", "FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ", "WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ", " a.cuenta_no = b.banco AND ", " a.cheque_no = b.cheque_no AND ", " b.codigo = c.codigo and a.status_t is null ", "ORDER BY 1,2" ELSE LET selec = "SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ", " a.status_t,b.codigo,c.descripcion ", "FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ", "WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ", " a.cuenta_no = b.banco AND ", " a.cheque_no = b.cheque_no AND ", " b.codigo = c.codigo and a.status_t=? ", "ORDER BY 1,2" END IF DISPLAY "<<>>" AT 19,14 ATTRIBUTE(BLUE) PREPARE comando FROM selec DECLARE busco CURSOR FOR comando # OPEN busco USING fecha_inicial,fecha_final { ELSE LET selec = "SELECT UNIQUE a.cuenta_no,a.cheque_no,a.fecha,a.portador,a.monto, ", " a.status_t,b.codigo,c.descripcion ", "FROM cgtb00005 a, tetb00006 b, outer tetb00003 c ", "WHERE ",criterio CLIPPED," AND (a.fecha BETWEEN ? AND ?) AND ", " a.cuenta_no = b.banco AND ", " a.cheque_no = b.cheque_no AND ", " b.codigo = c.codigo and a.status_t=? ", "ORDER BY 1,2" DISPLAY "<<>>" AT 19,14 ATTRIBUTE(BLUE) PREPARE comando1 FROM selec DECLARE busco1 CURSOR FOR comando1 # OPEN busco1 USING fecha_inicial,fecha_final,tipos END IF } LET idx=1 # IF tipos="e" THEN FOREACH busco USING fecha_inicial,fecha_final,tipos INTO datos_7.* IF idx=1 THEN LET r_output="PDF" IF fgl_report_loadCurrentSettings("teprrp007.4rp") THEN -- load the .4rp file LET preview=1 CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectPreview(preview) -- changing default LET handler = fgl_report_commitCurrentSettings() -- commit changes END IF # IF handler IS NOT NULL THEN -- report engine was configured ok START REPORT cheque_e TO XML HANDLER HANDLER END IF { IF idx=1 THEN IF fgl_report_loadCurrentSettings("teprrp007r.4rp") THEN -- load the .4rp file LET preview=1 CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectPreview(preview) -- changing default LET handler = fgl_report_commitCurrentSettings() -- commit changes END IF # IF handler IS NOT NULL THEN -- report engine was configured ok START REPORT cheque_e2 TO XML HANDLER HANDLER END IF } DISPLAY "<<>>" AT 19,14 ATTRIBUTE(YELLOW) DISPLAY datos_7.cuenta_no AT 21,30 DISPLAY datos_7.cheque_no AT 21,40 IF datos_7.status_t = "N" THEN LET datos_7.monto = 0 LET datos_7.portador = "NULO" END IF IF datos_7.cuenta_no = 1113 THEN LET datos_7.monto = datos_7.monto * tasa END IF # OUTPUT TO REPORT cheque_e2(datos_7.*) OUTPUT TO REPORT cheque_e(datos_7.*) LET idx=idx+1 END FOREACH IF idx > 1 THEN # FINISH REPORT cheque_e2 FINISH REPORT cheque_e ELSE CALL fgl_winmessage("ERROR","NO EXISTEN REGISTROS CON ESA CONDICION","INFO") END IF END FUNCTION REPORT cheque_e(x) DEFINE x RECORD cuenta_no CHAR(8), 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),fecha DATE DEFINE total1,total2 DEC(10,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 FORMAT PAGE HEADER LET fecha = today LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS LET total1=0 LET total2=0 BEFORE GROUP OF x.cheque_no 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 = NULL 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 IN( x.cuenta_no) AND a.status_t IS NULL END IF BEFORE GROUP OF x.cuenta_no LET total1=0 ON EVERY ROW IF x.monto IS NULL THEN LET x.monto=0 END IF DISPLAY x.cheque_no PRINTX x.*,descripcion,p_compania.*,detalle1,detalle2,hora,fecha,fecha_inicial,fecha_final AFTER GROUP OF x.cuenta_no LET total1=GROUP SUM(x.monto) PRINTX total1 ON LAST ROW LET total2=0 LET total2=SUM(x.monto) PRINTX total2 END REPORT REPORT cheque_e2(x) DEFINE x RECORD cuenta_no CHAR(8), 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), fecha DATE,total1,total2 DECIMAL(12,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.codigo FORMAT PAGE HEADER LET hora = TIME LET fecha=today ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS BEFORE GROUP OF x.cuenta_no SELECT a.descripcion INTO descripcion FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_no PRINTX descripcion ON EVERY ROW IF x.monto IS NULL THEN LET x.monto=0 END IF PRINTX x.*,p_compania.*,fecha_inicial,fecha_final AFTER GROUP OF x.codigo LET total1=0 LET total1=GROUP SUM(x.monto) PRINTX total1 ON LAST ROW LET total2=0 LET total2=SUM(x.monto) PRINTX total2 END REPORT