{ ============================================================================== 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) MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL STARTLOG("teprmt002.txt") CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_compania.* FROM companias a CALL teprrp014() END MAIN 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) INPUT BY NAME fecha_inicial,fecha_final 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" 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 cheque_no,cuenta_no 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 "<<>>" AT 19,14 ATTRIBUTE(YELLOW) PREPARE comando FROM selec DECLARE busco CURSOR FOR comando # OPEN busco USING fecha_inicial,fecha_final LET idx=1 FOREACH busco USING fecha_inicial,fecha_final INTO datos_14.* IF idx=1 THEN LET r_output="PDF" IF fgl_report_loadCurrentSettings("teprrp014.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 START REPORT cheque_ep TO XML HANDLER HANDLER END IF DISPLAY "<<>>" AT 19,14 ATTRIBUTE(YELLOW) 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.*) LET idx=idx+1 END FOREACH IF idx > 1 THEN FINISH REPORT cheque_ep ELSE CALL fgl_winmessage("ERROR","NO EXISTEN REGISTROS CON ESA CONDICION","INFO") END IF 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),fecha DATE DEFINE total1,total2 DECIMAL(12,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 FORMAT FIRST PAGE HEADER LET hora = TIME LET fecha=today ## AQUI SE INDICA LA IMPRESION DEL DETALLE BEFORE GROUP OF x.codigo LET total1=0 PRINTX x.codigo,x.descripcion 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 IN( x.cuenta_no) AND a.status_t IS NULL END IF PRINTX x.cheque_no,x.fecha,x.portador,detalle1,detalle2,x.cuenta_no,x.descripc_cta,x.monto,p_compania.nombre, fecha_inicial,fecha_final,hora,fecha AFTER GROUP OF x.codigo LET total1=GROUP SUM(x.monto) PRINTX total1 ON LAST ROW LET total2 =0 LET total2=SUM(x.monto) PRINTX total2 END REPORT