{ ============================================================================== PROGRAMA : CGPRRP009 SISTEMA : Sistema de Contabilidad General Objetivo : Imprimir el gastos general PROGRAMADOR : Tadeo A. Ferreras FECHA : Oct. 05, 1993 ============================================================================== } GLOBALS "cgprgb000.4gl" DEFINE gastos RECORD cuenta_no CHAR(8), descripcion CHAR(30), departamento SMALLINT, nom_dpto CHAR(30), debito DECIMAL(12,2), credito DECIMAL(12,2) END RECORD DEFINE fecha_inicial,fecha_final DATE FUNCTION cgprrp009() LET int_flag = FALSE OPTIONS FORM LINE 9 OPEN FORM cgfmrp009 FROM "cgfmrp004" DISPLAY FORM cgfmrp009 DISPLAY "cgprrp009" AT 4,3 ATTRIBUTE(YELLOW) DISPLAY "Analisis de Gastos Por Departamento" AT 6,22 ATTRIBUTE(YELLOW) 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,a.departamento FROM cuenta_no,departamento IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET selec = "SELECT a.cuenta_no,b.descripcion, ", " a.departamento,c.nom_dpto, ", " a.debito,a.credito ", "FROM cgtb00004 a,cgtb00001 b,adtb00001 c ", "WHERE a.cuenta_no = b.cuenta_no AND ", " a.departamento = c.departamento AND ", " a.status_t IS NULL AND a.fecha BETWEEN ? AND ? AND ", criterio CLIPPED DISPLAY "<<>>" AT 19,14 ATTRIBUTE(YELLOW) PREPARE comando FROM selec DECLARE busco CURSOR FOR comando OPEN busco USING fecha_inicial,fecha_final START REPORT gastos_gral TO PIPE "lp -dcentral" DISPLAY "<<>>" AT 19,14 ATTRIBUTE(YELLOW) WHILE status != NOTFOUND FETCH busco INTO gastos.* 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 gastos_gral EXIT WHILE END IF OUTPUT TO REPORT gastos_gral(gastos.*,fecha_inicial,fecha_final) END WHILE FINISH REPORT gastos_gral CLEAR SCREEN END FUNCTION REPORT gastos_gral(x,fecha1,fecha2) DEFINE x RECORD cuenta_no CHAR(8), descripcion CHAR(30), departamento SMALLINT, nom_dpto 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) 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 TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.departamento,x.cuenta_no,x.fecha 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 PRINT COLUMN 1, comp_on, COLUMN 2, "cgprrp009", COLUMN 14, negrillas_on, COLUMN 15, doble_on, COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, 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 41, "Analisis de Gastos Por Departamento", COLUMN 127, hora PRINT COLUMN 47, "Del ",fecha1 USING "dd/mm/yy"," Al ", fecha2 USING "dd/mm/yy" PRINT COLUMN 1, "---------------------------------------------------", "---------------------------------------------------", "-----------------------------" PRINT COLUMN 1, "Centro", COLUMN 8, "Cuenta", COLUMN 60, "Acumulado", COLUMN 80, "Gasto dentro", COLUMN 100,"Acumulado A" PRINT COLUMN 1, "Costo", COLUMN 8, "Cont.", COLUMN 22, "Descripcion", COLUMN 60, "Anterior", COLUMN 80, "del Rango", COLUMN 100,"la Fecha" PRINT COLUMN 1, "----------------------------------------------------", "----------------------------------------------------" , "-------------------------" skip 1 line BEFORE GROUP OF x.cuenta_no PRINT COLUMN 1, negrillas_on PRINT COLUMN 2, "Cuenta No. ",x.cuenta_no CLIPPED," ", x.descripcion CLIPPED PRINT COLUMN 1, negrillas_off LET total3 = 0 LET total4 = 0 BEFORE GROUP OF x.departamento LET balance = 0 SELECT SUM(b.debito - b.credito) INTO balance FROM cgtb00004 b WHERE b.cuenta_no = x.cuenta_no AND b.departamento = x.departamento AND b.status_t IS NULL AND b.fecha < fecha1 IF balance IS NULL THEN LET balance = 0 END IF PRINT COLUMN 1, negrillas_on PRINT COLUMN 2, "Depto.: ",x.departamento USING "&&&&"," ", x.nom_dpto CLIPPED PRINT COLUMN 1, negrillas_off PRINT COLUMN 1,fecha1-1 USING "dd/mm/yy", COLUMN 11,"Resumen", COLUMN 27,"Balance al Cierre", COLUMN 68,balance USING "###,###,###.##", COLUMN 90,balance - balance USING "###,###,###.##", COLUMN 110,balance USING "(((,(((,(((.##)" LET total1 = balance 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 68,x.debito USING "###,###,###.##", COLUMN 90,x.credito USING "###,###,###.##", COLUMN 110,balance USING "(((,(((,(((.##)" AFTER GROUP OF x.departamento PRINT COLUMN 68,"--------------", COLUMN 90,"--------------", COLUMN 110,"--------------" PRINT COLUMN 1, "Total Departamento -->", COLUMN 68,total1 USING "###,###,###.##", COLUMN 90,total2 USING "###,###,###.##", COLUMN 110,balance USING "(((,(((,(((.##)" LET total3 = total3 + total1 LET total4 = total4 + total2 AFTER GROUP OF x.cuenta_no PRINT COLUMN 68,"--------------", COLUMN 90,"--------------", COLUMN 110,"--------------" PRINT COLUMN 1, "Total cuenta -->", COLUMN 68,total3 USING "###,###,###.##", COLUMN 90,total4 USING "###,###,###.##", COLUMN 110,total3 - total4 USING "(((,(((,(((.##)" PRINT COLUMN 68,"==============", COLUMN 90,"==============", COLUMN 110,"==============" ON LAST ROW PRINT COLUMN 1,comp_off END REPORT