{ ============================================================================== PROGRAMA : CGPRRP006 SISTEMA : Sistema de Contabilidad General Objetivo : Imprimir el mayor general PROGRAMADOR : Tadeo A. Ferreras FECHA : Oct. 05, 1993 ============================================================================== } GLOBALS "cgprgb000.4gl" DEFINE mayor1 RECORD fecha DATE, tipo SMALLINT, ref CHAR(14), cuenta_no CHAR(8), descripcion CHAR(30), detalles CHAR(30), detalle1 CHAR(30), detalle2 CHAR(30), debito DECIMAL(12,2), credito DECIMAL(12,2) END RECORD DEFINE fecha_inicial,fecha_final DATE FUNCTION cgprrp006() LET int_flag = FALSE OPTIONS FORM LINE 8 OPEN FORM cgfmrp006 FROM "cgfmrp006" DISPLAY FORM cgfmrp006 DISPLAY "cgprrp006" AT 4,3 DISPLAY "Mayor General Sumarizado" AT 6,27 LET tipo_papel = 1 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 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 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET selec = "SELECT a.fecha,a.tipo,a.ref,a.cuenta_no,b.descripcion, ", " a.detalles,a.detalle_1,a.detalle_2,", "a.debito,a.credito ", "FROM cgtb00004 a,cgtb00001 b ", "WHERE a.cuenta_no = b.cuenta_no AND ", " a.status_t IS NULL AND a.fecha BETWEEN ? AND ? AND ", criterio CLIPPED DISPLAY "<<>>" AT 19,14 ATTRIBUTE(blue) PREPARE comando FROM selec DECLARE busco CURSOR FOR comando OPEN busco USING fecha_inicial,fecha_final START REPORT mayor_gral1 TO PIPE "lp" # START REPORT mayor_gral1 TO "aa1" DISPLAY "<<>>" AT 19,14 ATTRIBUTE(blue) WHILE status != NOTFOUND FETCH busco INTO mayor1.* IF STATUS = NOTFOUND THEN EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE FINISH REPORT mayor_gral1 EXIT WHILE END IF OUTPUT TO REPORT mayor_gral1(mayor1.*,fecha_inicial,fecha_final) END WHILE FINISH REPORT mayor_gral1 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT mayor_gral1(x,fecha1,fecha2) DEFINE x RECORD fecha DATE, tipo SMALLINT, ref CHAR(14), cuenta_no CHAR(8), descripcion CHAR(30), detalles CHAR(30), detalle1 CHAR(30), detalle2 CHAR(30), debito DECIMAL(12,2), credito DECIMAL(12,2) END RECORD DEFINE fecha1,fecha2 DATE DEFINE total1,total2,total3,total4,total5,total6,debito,credito,balance DECIMAL(12,2) ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE doble_on CHAR(2) DEFINE doble_off CHAR(2) DEFINE negrillas_on CHAR(2) DEFINE negrillas_off CHAR(2) DEFINE comp_on CHAR(2) DEFINE comp_off CHAR(2) DEFINE doce CHAR(2) DEFINE normal CHAR(2) DEFINE hora CHAR(5) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.cuenta_no,x.fecha,x.ref 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 31 LET comp_off = ASCII 30 LET doce = ASCII 30 LET normal = ASCII 029 LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, comp_on, COLUMN 2, "cgprrp006", COLUMN 14, negrillas_on, COLUMN 15, doble_on, COLUMN 17, "M A R M O T E C H, S. A.", COLUMN 65, negrillas_off, COLUMN 66, doble_off, COLUMN 83, "Pag. ",pageno using "###" PRINT COLUMN 43, "Sistema de Contabilidad General", COLUMN 124, today using "dd/mm/yy" PRINT COLUMN 47, "Mayor General Sumarizado", COLUMN 127, hora PRINT COLUMN 47, "Del ",fecha1 USING "dd/mm/yy", " Al ", fecha2 USING "dd/mm/yy" PRINT COLUMN 1, "---------------------------------------------------", "---------------------------------------------------", "-----------------------------" PRINT COLUMN 1, "fecha", COLUMN 11, "Documento", COLUMN 27, "Detalle", COLUMN 70, "Debito", COLUMN 93, "Credito", COLUMN 113,"Balance" PRINT COLUMN 1, "----------------------------------------------------", "----------------------------------------------------" , "---------------------------" skip 1 line ## AQUI SE INDICA LA IMPRESION DEL DETALLE BEFORE GROUP OF x.cuenta_no LET balance = 0 SELECT sum(b.debito-b.credito) INTO balance FROM cgtb00004 b WHERE b.status_t IS NULL AND b.cuenta_no = x.cuenta_no AND b.fecha < fecha1 IF balance IS NULL THEN LET balance = 0 END IF PRINT COLUMN 1, negrillas_on PRINT COLUMN 2,"Cuenta Numero : ", x.cuenta_no CLIPPED," ", x.descripcion CLIPPED, COLUMN 55,"Balance Inicial: ", COLUMN 110,balance USING "(((,(((,(((.##)" PRINT COLUMN 1, negrillas_off LET total3 = 0 LET total4 = 0 LET total1 = 0 LET total2 = 0 ON EVERY ROW LET total1 = total1 + x.debito LET total2 = total2 + x.credito # LET balance = balance + (x.debito-x.credito) PRINT COLUMN 1,x.fecha USING "dd/mm/yy", COLUMN 11,x.ref CLIPPED, COLUMN 27,x.detalle1 CLIPPED," ",x.detalle2 CLIPPED, COLUMN 70,x.debito USING "###,###,###.##", COLUMN 90,x.credito USING "###,###,###.##" AFTER GROUP OF x.cuenta_no PRINT COLUMN 70,"--------------", COLUMN 90,"--------------", COLUMN 110,"--------------" PRINT COLUMN 1, "Total cuenta -->", COLUMN 70,total1 USING "###,###,###.##", COLUMN 90,total2 USING "###,###,###.##", COLUMN 110,(balance + total1) - total2 USING "(((,(((,(((.##)" PRINT COLUMN 70,"==============", COLUMN 90,"==============", COLUMN 110,"==============" ON LAST ROW PRINT ASCII 30 END REPORT