{ ============================================================================== PROGRAMA : CGPRRP012 SISTEMA : Sistema de Contabilidad General OBJETIVO : Imprimir Balance para las Cuentas con Estado_M Activo PROGRAMADOR : Tadeo A. Ferreras FECHA : Octubre 05, 1993 ============================================================================== } GLOBALS "cgprgb000.4gl" DEFINE estado2 RECORD estado_a CHAR(8), balance_ant DECIMAL(12,2), actividad DECIMAL(12,2), balance_act DECIMAL(12,2), descripcion VARCHAR(40), grupo VARCHAR(40), orden_grupo SMALLINT END RECORD, p_ano,p_mes SMALLINT DEFINE fecha_inicial,fecha_final DATE MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_compania.* FROM companias a CALL cgprrp012() END MAIN FUNCTION cgprrp012() LET int_flag = FALSE OPTIONS FORM LINE 9 OPEN FORM cgfmrp008 FROM "cgfmrp013" DISPLAY FORM cgfmrp008 DISPLAY "cgprrp012" AT 4,3 DISPLAY "Catalogo / Estado-A" AT 6,30 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME p_ano,p_mes BEFORE INPUT LET p_ano = YEAR(TODAY) USING "&&&&" SELECT MAX(a.mes) INTO p_mes FROM cgtb00016 a WHERE a.ano=p_ano DISPLAY BY NAME p_ano,p_mes AFTER input IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF EXIT INPUT END INPUT CALL configureoutput("SVG") RETURNING HANDLER # CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of, # doble_on,doble_off,comp_on,comp_off, # doce,normal,archivo,copia # Crea un archivo en ASCII para el llenado de los estados financieros en # EXCEL {UNLOAD TO "/users/usccxpc/estado/aym.csv" SELECT a.estado_a,SUM(a.balance_ant),SUM(a.actividad),SUM(a.balance_act) FROM cgtb00016 a GROUP BY 1 ORDER BY 1} #------------------------------------------------------------------------------ DECLARE busco CURSOR FOR SELECT a.estado_a,SUM(a.balance_ant),SUM(a.actividad),SUM(a.balance_act),b.descripcion,b.grupo, b.orden_grupos FROM cgtb00016 a,cgtb00036 b WHERE a.estado_a is not null and a.estado_a[1] != " " AND a.ano = p_Ano AND a.mes = p_mes AND a.estado_a = b.estado GROUP BY a.estado_a,b.descripcion,b.grupo,b.orden_grupos ORDER BY b.orden_grupos,b.grupo LET idx=1 FOREACH busco INTO estado2.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE FINISH REPORT reporte_12 EXIT FOREACH END IF IF idx=1 THEN START REPORT reporte_12 TO XML HANDLER HANDLER END IF OUTPUT TO REPORT reporte_12(estado2.*,fecha_inicial,fecha_final) LET idx = idx+1 END FOREACH IF idx > 1 THEN FINISH REPORT reporte_12 ELSE CALL fgl_Winmessage("INFO","NOEXISTEN DATOS","INFO") END IF # RUN imprime END FUNCTION REPORT reporte_12(x,fecha1,fecha2) DEFINE x RECORD estado_a CHAR(8), balance_ant DECIMAL(12,2), actividad DECIMAL(12,2), balance_act DECIMAL(12,2), descripcion VARCHAR(40), grupo VARCHAR(40), orden_grupo SMALLINT END RECORD DEFINE fecha1,fecha2 DATE DEFINE total1,total2,total3,total4,total5,total6,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.orden_grupo,x.grupo,x.estado_a FORMAT PAGE HEADER { LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 } LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS LET l = (90 - LENGTH(p_compania.nombre CLIPPED)) / 2 PRINT COLUMN 1,comp_on, "cgprrp012", COLUMN 11, negrillas_on, COLUMN l, p_compania.nombre CLIPPED, COLUMN 67, negrillas_off, COLUMN 80, "Pag. ",pageno using "###" PRINT COLUMN 19, " Sistema de Contabilidad General ", COLUMN 81, today using "dd/mm/yyyy" PRINT COLUMN 19, " Catalogo / Estado-A ", COLUMN 84, hora PRINT COLUMN 17, " ",p_Ano, " MES ",p_mes PRINT COLUMN 1, "---------------------------------------------------", "-------------------------------------" PRINT COLUMN 3, "Estado-A", COLUMN 25, "Balance Anter.", COLUMN 58, "Actividad Mes", COLUMN 80, "Balance Actual" PRINT COLUMN 1, "----------------------------------------------------", "------------------------------------" skip 1 LINE BEFORE GROUP OF x.orden_grupo PRINT COLUMN 1, x.grupo SKIP 1 LINE ## AQUI SE INDICA LA IMPRESION DEL DETALLE ON EVERY ROW PRINT COLUMN 3,x.estado_a," ",x.descripcion, COLUMN 54,x.balance_ant USING "((,(((,(((,(((.##)", COLUMN 79,x.actividad USING "((,(((,(((,(((.##)", COLUMN 104,x.balance_act USING "((,(((,(((,(((.##)" ON LAST ROW PRINT COLUMN 1,negrillas_on PRINT COLUMN 55,"--------------", COLUMN 80,"--------------", COLUMN 105,"--------------" PRINT COLUMN 54,SUM(x.balance_ant) USING "((,(((,(((,(((.##)", COLUMN 79,SUM(x.actividad) USING "((,(((,(((,(((.##)", COLUMN 104,SUM(x.balance_act) USING "((,(((,(((,(((.##)" PRINT COLUMN 55,"==============", COLUMN 80,"==============", COLUMN 105,"==============" PRINT COLUMN 1,negrillas_off,comp_off END REPORT