811 lines
24 KiB
Plaintext
811 lines
24 KiB
Plaintext
{
|
|
==============================================================================
|
|
PROGRAMA : CGPRRP007
|
|
SISTEMA : Sistema de Contabilidad General
|
|
Objetivo : Imprimir el estado de resultado Sin deptos 4102,4103
|
|
PROGRAMADOR : Tadeo A. Ferreras
|
|
FECHA : Oct. 05, 1993
|
|
==============================================================================
|
|
}
|
|
GLOBALS
|
|
"cgprgb000.4gl"
|
|
|
|
DEFINE comentario CHAR(30)
|
|
###### Registro que almacena la informacion a imprimir ######
|
|
DEFINE resultado RECORD
|
|
cuenta_no CHAR(8),
|
|
descripcion CHAR(30),
|
|
estado_a CHAR(4),
|
|
estado_m CHAR(4),
|
|
nivel SMALLINT,
|
|
aplica_a CHAR(8),
|
|
mes SMALLINT,
|
|
valor DECIMAL(12,2),
|
|
valor_ant DECIMAL(12,2),
|
|
presupuesto DECIMAL(12,2)
|
|
END RECORD,
|
|
ent_diario CHAR(14),
|
|
ch_ano CHAR(4)
|
|
|
|
DEFINE resultado1 RECORD
|
|
cuenta_no CHAR(8),
|
|
mes SMALLINT,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE resultado3 RECORD
|
|
cuenta_no CHAR(8),
|
|
mes SMALLINT,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE resultado4 RECORD
|
|
cuenta_no CHAR(8),
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE resultado5 RECORD
|
|
cuenta_no CHAR(8),
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE resultado2 RECORD
|
|
cuenta_no CHAR(8),
|
|
mes SMALLINT,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
### Variable que almacena la fecha de corte
|
|
DEFINE fecha_ant1,fecha_ant2 DATE
|
|
DEFINE ano1,mes1 SMALLINT
|
|
DEFINE salir,salir11,salir112,salir113,salir4,salir5,salir6,salir7,
|
|
salir8,salir9 CHAR(1)
|
|
DEFINE cant_dias,jj,idx1,idx2,idx3,idx4,idx5,idx6,idx7,idx8,
|
|
idx9 INTEGER
|
|
DEFINE selec12,selec13,selec11,selec14,selec15,selec6,selec7,
|
|
selec8,selec9 CHAR(1000)
|
|
DEFINE ano2,anoss CHAR(4)
|
|
DEFINE total_gral DECIMAL(12,2)
|
|
|
|
FUNCTION cgprrp007()
|
|
LET int_flag = FALSE
|
|
|
|
OPTIONS
|
|
FORM LINE 8
|
|
|
|
OPEN FORM cgfmrp007 FROM "cgfmrp007"
|
|
DISPLAY FORM cgfmrp007
|
|
DISPLAY "cgprrp007" AT 4,3
|
|
DISPLAY "Estado de Resultado Comparativo Sin 4102 y 4103" AT 6,17
|
|
|
|
LET tipo_papel = 2
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME ano1,mes1,comentario
|
|
|
|
AFTER FIELD ano1
|
|
IF ano1 IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD ano1
|
|
END IF
|
|
|
|
LET ano2 = (ano1 - 1) USING "&&&&"
|
|
|
|
SELECT fecha_inicio INTO fecha_ant1 FROM prdtable
|
|
WHERE ano = ano2 AND mes = 1
|
|
|
|
LET ch_ano = ano1 using "&&&&"
|
|
LET ch_ano = ch_ano[3,4]
|
|
LET ent_diario = "ED.99-999/12",ch_ano clipped
|
|
|
|
AFTER FIELD mes1
|
|
IF mes1 IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes1
|
|
END IF
|
|
|
|
IF mes1 > 12 THEN
|
|
LET numero_msg = 173
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes1
|
|
END IF
|
|
|
|
LET anoss = ano1 USING "&&&&"
|
|
|
|
SELECT a.fecha_corte INTO fecha_ant2 FROM prdtable a
|
|
WHERE a.ano = ano2 AND a.mes = mes1
|
|
|
|
END INPUT
|
|
|
|
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,a.descripcion,a.estado_a,a.estado_m,a.nivel,",
|
|
" a.aplica_a ",
|
|
"FROM cgtb00001 a ",
|
|
"WHERE a.status_t IS NULL AND a.cuenta_no[1] BETWEEN '4' AND '8' AND ",
|
|
" a.aplica_a IS NOT NULL ORDER BY 1 "
|
|
|
|
LET selec1 =
|
|
"SELECT COUNT(*) FROM cgtb00001 a ",
|
|
"WHERE a.status_t IS NULL AND a.cuenta_no[1] BETWEEN '4' AND '8' AND ",
|
|
" a.aplica_a IS NOT NULL "
|
|
|
|
DISPLAY "<<<Buscando Informacion... Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comamdo30 FROM selec1
|
|
DECLARE busca30 CURSOR FOR comamdo30
|
|
OPEN busca30
|
|
|
|
FETCH busca30 INTO regi
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busco CURSOR FOR comando
|
|
OPEN busco
|
|
|
|
LET selec11 =
|
|
"SELECT a.cuenta_no,b.mes,SUM(a.debito-a.credito),a.status_t ",
|
|
"FROM cgtb00004 a,prdtable b ",
|
|
"WHERE YEAR(a.fecha) = b.ano AND (a.fecha BETWEEN b.fecha_inicio AND ",
|
|
" b.fecha_corte) AND b.ano=? AND b.mes<=? AND a.status_t IS NULL AND ",
|
|
" ((a.departamento not in (4102,4103) or a.departamento is null) AND ",
|
|
" a.cuenta_no[1] BETWEEN '4' AND '8') GROUP BY 1,2,4 ORDER BY 1,2 "
|
|
|
|
DISPLAY "<<<Buscando Valores ... Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando1 FROM selec11
|
|
DECLARE busco1 SCROLL CURSOR FOR comando1
|
|
OPEN busco1 USING ano1,mes1
|
|
|
|
LET selec12 =
|
|
"SELECT a.cuenta_no[1],b.mes,SUM(a.debito-a.credito),a.status_t ",
|
|
"FROM cgtb00004 a,prdtable b ",
|
|
"WHERE (a.fecha BETWEEN b.fecha_inicio AND ",
|
|
" b.fecha_corte AND b.ano = ?) AND b.mes <= ? and ",
|
|
" (a.departamento not in (4102,4103) or a.departamento is null) AND ",
|
|
" a.status_t IS NULL AND (a.cuenta_no[1] > '3') ",
|
|
"GROUP BY 1,2,4 ORDER BY 1,2 "
|
|
|
|
DISPLAY "<<<Buscando Acumulados ... Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando2 FROM selec12
|
|
DECLARE busco2 SCROLL CURSOR FOR comando2
|
|
OPEN busco2 USING ano1,mes1
|
|
|
|
LET selec13 =
|
|
"SELECT a.cuenta_no[1,2],b.mes,SUM(a.debito-a.credito),a.status_t ",
|
|
"FROM cgtb00004 a,prdtable b ",
|
|
"WHERE a.status_t is null and a.departamento not in (4102,4103) or ",
|
|
" a.departamento is null) and a.cuenta_no[1,2] >= '40') and ",
|
|
" (a.fecha BETWEEN b.fecha_inicio AND b.fecha_corte) AND ",
|
|
" (b.ano = ?) AND (b.mes <= ?) GROUP BY 1,2,4 ORDER BY 1,2 "
|
|
|
|
DISPLAY "<<<Buscando Ctas Control...Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando3 FROM selec13
|
|
DECLARE busco3 SCROLL CURSOR FOR comando3
|
|
OPEN busco3 USING ano1,mes1
|
|
|
|
LET selec14 =
|
|
"SELECT a.cuenta_no[1],SUM(a.debito-a.credito) ",
|
|
"FROM cgtb00004 a ",
|
|
"WHERE (a.fecha <= ?) AND a.status_t IS NULL AND ",
|
|
" (a.departamento not in (4102,4103) AND a.cuenta_no[1] ",
|
|
" BETWEEN '4' AND '8') and year(a.fecha) = ? and (a.ref != ?) ",
|
|
"GROUP BY 1 ORDER BY 1 "
|
|
|
|
DISPLAY "<<<Buscando Ano Anterior...Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando4 FROM selec14
|
|
DECLARE busco4 SCROLL CURSOR FOR comando4
|
|
OPEN busco4 USING fecha_ant2,ano2,ent_diario
|
|
|
|
LET selec7 =
|
|
"SELECT a.cuenta_no[1,2],SUM(a.debito-a.credito) ",
|
|
"FROM cgtb00004 a ",
|
|
"WHERE (a.fecha <= ?) AND a.status_t IS NULL AND ",
|
|
" (a.departamento not in (4102,4103) AND a.cuenta_no[1] BETWEEN ",
|
|
" '4' AND '8') and year(a.fecha) = ? and (a.ref != ?) ",
|
|
"GROUP BY 1 ORDER BY 1 "
|
|
|
|
DISPLAY "<<<Buscando Cta Ctrol Ant. Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando7 FROM selec7
|
|
DECLARE busco7 SCROLL CURSOR FOR comando7
|
|
OPEN busco7 USING fecha_ant2,ano2,ent_diario
|
|
|
|
LET selec15 =
|
|
"SELECT a.cuenta_no,SUM(a.valor) ",
|
|
"FROM pgtb00003 a ",
|
|
"WHERE a.ano=? AND a.mes <= ? and a.departamento not in (4102,4103) and ",
|
|
" a.status_t IS NULL AND a.cuenta_no[1] BETWEEN '4' AND '8' ",
|
|
"GROUP BY 1 ORDER BY 1 "
|
|
|
|
DISPLAY "<<<Buscando Presupuesto ...Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando5 FROM selec15
|
|
DECLARE busco5 SCROLL CURSOR FOR comando5
|
|
OPEN busco5 USING ano1,mes1
|
|
|
|
LET selec8 =
|
|
"SELECT a.cuenta_no[1],SUM(a.valor) ",
|
|
"FROM pgtb00003 a ",
|
|
"WHERE a.ano = ? AND a.mes <= ? and a.status_t IS NULL AND ",
|
|
" a.departamento not in (4102,4103) and a.cuenta_no[1] BETWEEN ",
|
|
" '4' AND '8' GROUP BY 1 ORDER BY 1 "
|
|
|
|
DISPLAY "<<<Buscando Presup. Acum...Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando8 FROM selec8
|
|
DECLARE busco8 SCROLL CURSOR FOR comando8
|
|
OPEN busco8 USING ano1,mes1
|
|
|
|
LET selec9 =
|
|
"SELECT a.cuenta_no[1,2],SUM(a.valor) ",
|
|
"FROM pgtb00003 a ",
|
|
"WHERE a.ano = ? AND a.mes <= ? and a.status_t IS NULL AND ",
|
|
" a.cuenta_no[1] BETWEEN '4' AND '8' AND a.departamento not in ",
|
|
" (4102,4103) GROUP BY 1 ORDER BY 1 "
|
|
|
|
DISPLAY "<<<Buscando Cta Ctrl Pres. Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
PREPARE comando9 FROM selec9
|
|
DECLARE busco9 SCROLL CURSOR FOR comando9
|
|
OPEN busco9 USING ano1,mes1
|
|
|
|
START REPORT resulta1 TO "cgrp07"
|
|
DISPLAY "<<<Reporte Generandose... Espere por Favor>>>" AT 17,14
|
|
ATTRIBUTE(blue)
|
|
|
|
# Loop principal del reporte
|
|
LET p_param = "S"
|
|
LET salir = "N"
|
|
WHILE salir != "S"
|
|
FETCH busco INTO resultado.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CALL termometro(regi,p_param)
|
|
LET p_param = "N"
|
|
|
|
LET resultado.mes = 1
|
|
LET resultado.valor = null
|
|
LET resultado.valor_ant = 0
|
|
LET resultado.presupuesto= 0
|
|
|
|
|
|
# Si la cuenta es control
|
|
|
|
IF resultado.nivel = 1 THEN
|
|
|
|
# Busca el balance anterior
|
|
LET jj = 0
|
|
LET idx6 = 1
|
|
LET salir6 = "N"
|
|
WHILE salir6 != "S"
|
|
FETCH ABSOLUTE idx6 busco4 INTO resultado4.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir6 = "S"
|
|
LET idx6 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx6 = idx6 + 1
|
|
IF resultado.cuenta_no = resultado4.cuenta_no THEN
|
|
LET resultado.valor_ant = resultado4.valor
|
|
|
|
|
|
LET idx6 = 1
|
|
LET salir6 = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
END WHILE
|
|
|
|
IF resultado.valor_ant IS NULL THEN
|
|
LET resultado.valor_ant = 0
|
|
END IF
|
|
|
|
# Presupuesto
|
|
|
|
LET idx8 = 1
|
|
LET salir8 = "N"
|
|
WHILE salir8 != "S"
|
|
FETCH ABSOLUTE idx8 busco8 INTO resultado5.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir8 = "S"
|
|
LET idx8 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx8 = idx8 + 1
|
|
IF resultado.cuenta_no = resultado5.cuenta_no THEN
|
|
LET resultado.presupuesto = resultado5.valor
|
|
LET idx8 = 1
|
|
LET salir8 = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
END WHILE
|
|
|
|
IF resultado.presupuesto IS NULL THEN
|
|
LET resultado.presupuesto = 0
|
|
END IF
|
|
|
|
LET salir112 = "N"
|
|
LET idx2 = 1
|
|
WHILE salir112 != "S"
|
|
FETCH ABSOLUTE idx2 busco2 INTO resultado1.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir112 = "S"
|
|
LET idx2 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx2 = idx2 + 1
|
|
LET jj = jj + 1
|
|
IF resultado1.cuenta_no = resultado.cuenta_no THEN
|
|
|
|
LET resultado.mes = resultado1.mes
|
|
LET resultado.valor = resultado1.valor
|
|
LET resultado1.valor = 0
|
|
OUTPUT TO REPORT resulta1(resultado.*,ano1,mes1)
|
|
LET resultado.valor = 0
|
|
END IF
|
|
END WHILE
|
|
|
|
END IF
|
|
|
|
IF resultado.nivel = 2 THEN
|
|
|
|
LET jj = 0
|
|
LET idx7 = 1
|
|
LET salir7 = "N"
|
|
WHILE salir7 != "S"
|
|
FETCH ABSOLUTE idx7 busco7 INTO resultado4.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir7 = "S"
|
|
LET idx7 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx7 = idx7 + 1
|
|
IF resultado.cuenta_no = resultado4.cuenta_no THEN
|
|
LET resultado.valor_ant = resultado4.valor
|
|
|
|
LET idx7 = 1
|
|
LET salir7 = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
END WHILE
|
|
|
|
IF resultado.valor_ant IS NULL THEN
|
|
LET resultado.valor_ant = 0
|
|
END IF
|
|
|
|
LET idx9 = 1
|
|
LET salir9 = "N"
|
|
WHILE salir9 != "S"
|
|
FETCH ABSOLUTE idx9 busco9 INTO resultado5.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir9 = "S"
|
|
LET idx9 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx9 = idx9 + 1
|
|
IF resultado.cuenta_no = resultado5.cuenta_no THEN
|
|
LET resultado.presupuesto = resultado5.valor
|
|
|
|
LET idx9 = 1
|
|
LET salir9 = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
END WHILE
|
|
|
|
IF resultado.presupuesto IS NULL THEN
|
|
LET resultado.presupuesto = 0
|
|
END IF
|
|
|
|
LET salir113 = "N"
|
|
LET idx3 = 1
|
|
WHILE salir113 != "S"
|
|
FETCH ABSOLUTE idx3 busco3 INTO resultado1.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir113 = "S"
|
|
LET idx3 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx3 = idx3 + 1
|
|
LET jj = jj + 1
|
|
IF resultado1.cuenta_no = resultado.cuenta_no THEN
|
|
|
|
LET resultado.mes = resultado1.mes
|
|
LET resultado.valor = resultado1.valor
|
|
LET resultado1.valor = 0
|
|
|
|
OUTPUT TO REPORT resulta1(resultado.*,ano1,mes1)
|
|
LET resultado.valor = 0
|
|
END IF
|
|
END WHILE
|
|
|
|
END IF
|
|
|
|
IF resultado.nivel = 3 THEN
|
|
|
|
# Buysqueda del ano anterior
|
|
LET jj = 0
|
|
LET idx4 = 1
|
|
LET salir4 = "N"
|
|
WHILE salir4 != "S"
|
|
FETCH ABSOLUTE idx4 busco4 INTO resultado4.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir4 = "S"
|
|
LET idx4 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx4 = idx4 + 1
|
|
IF resultado.cuenta_no = resultado4.cuenta_no THEN
|
|
LET resultado.valor_ant = resultado4.valor
|
|
|
|
LET idx4 = 1
|
|
LET salir4 = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
END WHILE
|
|
|
|
IF resultado.valor_ant IS NULL THEN
|
|
LET resultado.valor_ant = 0
|
|
END IF
|
|
|
|
# Busqueda del presupuesto
|
|
LET idx5 = 1
|
|
LET salir5 = "N"
|
|
WHILE salir5 != "S"
|
|
FETCH ABSOLUTE idx5 busco5 INTO resultado5.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir5 = "S"
|
|
LET idx5 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx5 = idx5 + 1
|
|
IF resultado.cuenta_no = resultado5.cuenta_no THEN
|
|
LET resultado.presupuesto = resultado5.valor
|
|
|
|
LET idx5 = 1
|
|
LET salir5 = "S"
|
|
EXIT WHILE
|
|
END IF
|
|
END WHILE
|
|
|
|
# Valor de las auxiliares
|
|
IF resultado.presupuesto IS NULL THEN
|
|
LET resultado.presupuesto = 0
|
|
END IF
|
|
|
|
LET jj = 0
|
|
LET salir11 = "N"
|
|
LET idx1 = 1
|
|
WHILE salir11 != "S"
|
|
FETCH ABSOLUTE idx1 busco1 INTO resultado1.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET salir11 = "S"
|
|
LET idx1 = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx1 = idx1 + 1
|
|
LET jj = jj + 1
|
|
IF resultado.cuenta_no = resultado1.cuenta_no THEN
|
|
|
|
LET resultado.mes = resultado1.mes
|
|
LET resultado.valor = resultado1.valor
|
|
LET resultado1.valor = 0
|
|
OUTPUT TO REPORT resulta1(resultado.*,ano1,mes1)
|
|
LET resultado.valor = 0
|
|
END IF
|
|
END WHILE
|
|
END IF
|
|
IF resultado.valor IS NULL THEN
|
|
LET resultado.mes = 1
|
|
LET resultado.valor = 0
|
|
OUTPUT TO REPORT resulta1(resultado.*,ano1,mes1)
|
|
LET resultado.valor = 0
|
|
END IF
|
|
|
|
END WHILE
|
|
FINISH REPORT resulta1
|
|
DISPLAY BY NAME total_gral
|
|
LABEL atras:
|
|
PROMPT "Desea Imprimir Este Reporte [S/N]... ? " FOR CHAR opcion
|
|
LET opcion = upshift(opcion)
|
|
|
|
IF (opcion != "S" AND opcion != "N") OR opcion IS NULL THEN
|
|
LET numero_msg =-1301
|
|
CALL msg(numero_msg)
|
|
GOTO atras
|
|
END IF
|
|
|
|
IF opcion = "S" THEN
|
|
RUN "lp cgrp07"
|
|
END IF
|
|
|
|
CLEAR SCREEN
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT resulta1(x,ano3,mes2)
|
|
DEFINE x RECORD
|
|
cuenta_no CHAR(8),
|
|
descripcion CHAR(30),
|
|
estado_a CHAR(4),
|
|
estado_m CHAR(4),
|
|
nivel SMALLINT,
|
|
aplica_a CHAR(8),
|
|
mes SMALLINT,
|
|
valor DECIMAL(12,2),
|
|
valor_ant DECIMAL(12,2),
|
|
presupuesto DECIMAL(12,2)
|
|
END RECORD
|
|
DEFINE n_1 CHAR (1)
|
|
DEFINE n_2 CHAR(2)
|
|
|
|
DEFINE total_irs,valor1,valor_ant1 ARRAY[14] OF DECIMAL(12,2)
|
|
DEFINE valor ARRAY[5,14] OF DECIMAL(12,2)
|
|
DEFINE valor_88,valor2 ARRAY[14] OF DECIMAL(12,2)
|
|
DEFINE descr ARRAY[5] OF CHAR(30)
|
|
DEFINE cuenta_num ARRAY[5] OF CHAR(1)
|
|
DEFINE j,k INTEGER
|
|
DEFINE ano2 CHAR(4)
|
|
DEFINE ano3,mes2,a,b SMALLINT
|
|
DEFINE fecha1,fecha2 DATE
|
|
DEFINE balance,total_a,total_p,total_c,total_c1,total_c2,credito1,credito2
|
|
DECIMAL(12,2)
|
|
DEFINE descrip ARRAY[12] OF CHAR(4)
|
|
DEFINE descrip1 CHAR(4)
|
|
DEFINE codigo CHAR(2)
|
|
DEFINE codigo1 CHAR(8)
|
|
|
|
## 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
|
|
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 029
|
|
LET doce = ASCII 30
|
|
LET normal = ASCII 029
|
|
LET hora = time
|
|
|
|
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
|
|
PRINT COLUMN 1, comp_on,"cgprrp007",negrillas_on,doble_on,
|
|
COLUMN 12, "M A R M O T E C H, S. A.",
|
|
negrillas_off,doble_off,
|
|
COLUMN 109, "Pag. ",pageno using "###"
|
|
PRINT COLUMN 37, "Sistema de Contabilidad General",
|
|
COLUMN 109, today using "dd/mm/yy"
|
|
|
|
LET descrip[1] = "ENE."
|
|
LET descrip[2] = "FEB."
|
|
LET descrip[3] = "MAR."
|
|
LET descrip[4] = "ABR."
|
|
LET descrip[5] = "MAY."
|
|
LET descrip[6] = "JUN."
|
|
LET descrip[7] = "JUL."
|
|
LET descrip[8] = "AGO."
|
|
LET descrip[9] = "SEP."
|
|
LET descrip[10] = "OCT."
|
|
LET descrip[11] = "NOV."
|
|
LET descrip[12] = "DIC."
|
|
|
|
LET descrip1 = descrip[mes2]
|
|
|
|
PRINT COLUMN 17, "Estado de Resultado Comparativo Sin 4102 y 4103",
|
|
" (De ENE./",ano3 USING "####"," A ",
|
|
descrip1 CLIPPED,"/",ano3 USING "####",
|
|
COLUMN 110, hora
|
|
PRINT COLUMN 35, "Cantidades Expresadas en Miles (1000)"
|
|
|
|
PRINT COLUMN 1, comentario
|
|
PRINT COLUMN 1, "----------------------------------------------------",
|
|
"----------------------------------------------------" ,
|
|
"----------------------------------------------"
|
|
|
|
PRINT COLUMN 13, "Estado"
|
|
PRINT COLUMN 1, "Cuenta",
|
|
COLUMN 10, "A M",
|
|
COLUMN 27, "Descripcion";
|
|
|
|
LET b = 50
|
|
FOR a = 1 to mes2
|
|
LET b = b + 10
|
|
PRINT COLUMN b,descrip[a] CLIPPED;
|
|
END FOR
|
|
PRINT COLUMN b+12,"Total",
|
|
COLUMN b+24,"Ano Ant.",
|
|
COLUMN b+36,"Presup."
|
|
PRINT COLUMN 1, "----------------------------------------------------",
|
|
"----------------------------------------------------" ,
|
|
"----------------------------------------------",
|
|
negrillas_off
|
|
|
|
skip 1 line
|
|
## AQUI SE INDICA LA IMPRESION DEL DETALLE
|
|
BEFORE GROUP OF x.cuenta_no
|
|
LET ano2 = ano3
|
|
IF x.nivel = 1 OR x.nivel = 2 THEN
|
|
PRINT COLUMN 1,negrillas_on
|
|
END IF
|
|
PRINT COLUMN 1, x.cuenta_no,
|
|
COLUMN 10, x.estado_a," ",x.estado_m,
|
|
COLUMN 27, x.descripcion;
|
|
|
|
LET total_c1 = 0
|
|
LET b = 49
|
|
LET a = 0
|
|
IF x.presupuesto is null THEN
|
|
LET x.presupuesto = 0
|
|
END IF
|
|
ON EVERY ROW
|
|
|
|
LET a = x.mes
|
|
LET valor1[a]= 0
|
|
LET valor1[a]= x.valor/1000
|
|
LET x.valor = 0
|
|
LET x.mes = 0
|
|
LET a = 0
|
|
|
|
AFTER GROUP OF x.cuenta_no
|
|
|
|
IF x.nivel = 1 THEN
|
|
|
|
IF j IS NULL THEN
|
|
LET j = 0
|
|
END IF
|
|
|
|
LET j = j + 1
|
|
LET cuenta_num[j] = x.cuenta_no
|
|
LET descr[j] = x.descripcion
|
|
LET valor_ant1[j] = x.valor_ant/1000
|
|
LET valor2[j] = x.presupuesto/1000
|
|
END IF
|
|
|
|
LET total_c1 = 0
|
|
FOR i = 1 TO mes2
|
|
LET b = b + 10
|
|
IF valor1[i] IS NULL THEN
|
|
LET valor1[i] = 0
|
|
END IF
|
|
|
|
IF x.nivel = 1 THEN
|
|
LET valor[j,i]=valor1[i]
|
|
END IF
|
|
|
|
IF x.cuenta_no = "88" THEN
|
|
LET valor_88[i] = valor1[i]
|
|
END IF
|
|
|
|
PRINT COLUMN b,valor1[i] USING "(((,(#&)";
|
|
LET total_c1 = total_c1 + valor1[i]
|
|
LET valor1[i] = 0
|
|
END FOR
|
|
PRINT COLUMN b+12,total_c1 USING "(((,(#&)",
|
|
COLUMN b+24,x.valor_ant/1000 USING "(((,(#&)",
|
|
COLUMN b+36,x.presupuesto/1000 USING "((((,(#&)",negrillas_off
|
|
|
|
ON LAST ROW
|
|
PRINT COLUMN 1, negrillas_on
|
|
PRINT COLUMN 1, "----------------------------------------------------",
|
|
"----------------------------------------------------" ,
|
|
"----------"
|
|
SKIP TO TOP OF PAGE
|
|
PRINT COLUMN 35, " R e s u m e n d e C u e n t a s "
|
|
PRINT COLUMN 35, " ----------------------------------- "
|
|
SKIP 1 LINE
|
|
|
|
LET total_c1 = 0
|
|
LET total_p = 0
|
|
FOR k = 1 TO j
|
|
PRINT COLUMN 1, cuenta_num[k],
|
|
COLUMN 27, descr[k];
|
|
|
|
LET b = 49
|
|
LET total_c = 0
|
|
FOR a = 1 TO mes2
|
|
LET b = b + 10
|
|
|
|
IF cuenta_num[k] = "8" THEN
|
|
LET valor[k,a] = valor[k,a] - valor_88[a]
|
|
END IF
|
|
IF total_irs[a] is null THEN
|
|
LET total_irs[a] = 0
|
|
END IF
|
|
PRINT COLUMN b,valor[k,a] USING "(((,(#&)";
|
|
LET total_c = total_c + valor[k,a]
|
|
LET total_irs[a] = total_irs[a] + valor[k,a]
|
|
END FOR
|
|
|
|
PRINT COLUMN b+12,total_c USING "(((,(#&)",
|
|
COLUMN b+24,valor_ant1[k] USING "(((,(#&)",
|
|
COLUMN b+36,valor2[k] USING "((((,(#&)"
|
|
IF total_a is null THEN
|
|
LET total_a = 0
|
|
END IF
|
|
LET total_p = total_p + valor2[k]
|
|
LET total_a = total_a + valor_ant1[k]
|
|
LET total_c1 = total_c1 + total_c
|
|
END FOR
|
|
|
|
PRINT COLUMN 1, "----------------------------------------------------",
|
|
"----------------------------------------------------" ,
|
|
"----------",negrillas_off
|
|
|
|
PRINT COLUMN 1, "Beneficios antes de IRS...";
|
|
|
|
LET b = 49
|
|
FOR a = 1 to mes2
|
|
LET b = b + 10
|
|
|
|
PRINT COLUMN b,total_irs[a] USING "((((,(#&)";
|
|
END FOR
|
|
|
|
PRINT COLUMN b+12,total_c1 USING "(((,(#&)",
|
|
COLUMN b+24,total_a USING "(((,(#&)",
|
|
COLUMN b+36,total_p USING "((((,(#&)"
|
|
|
|
LET total_gral = total_c1
|
|
LET total_c1= 0
|
|
LET total_c = 0
|
|
LET total_p = 0
|
|
|
|
PRINT COLUMN 1, "====================================================",
|
|
"====================================================" ,
|
|
"=========="
|
|
|
|
PRINT COLUMN 1, negrillas_off,comp_off
|
|
|
|
END REPORT
|