184 lines
4.3 KiB
Plaintext
184 lines
4.3 KiB
Plaintext
{
|
|
==============================================================================
|
|
PROGRAMA : NOPRCS008
|
|
OBJETIVO : CONSULTA LOS MOVIMIENTOS TOTALIZADOS POR ANO
|
|
PROGRAMADOR : JUAN F. SOTO
|
|
FECHA : MARZO 3, 1995
|
|
==============================================================================
|
|
}
|
|
GLOBALS
|
|
"noprgb000.4gl"
|
|
DEFINE p_ano SMALLINT
|
|
|
|
FUNCTION noprcs008()
|
|
DEFINE datos RECORD
|
|
cod_mov SMALLINT,
|
|
descrip_mov CHAR(30),
|
|
valor DECIMAL(12,2)
|
|
END RECORD,
|
|
opt7 CHAR(1),ch_fecha CHAR(8),ch_ano CHAR(4),
|
|
fecha1,fecha2 DATE
|
|
|
|
DEFINE datos_arr ARRAY[100] OF RECORD
|
|
cod_mov SMALLINT,
|
|
descrip_mov CHAR(30),
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
OPTIONS
|
|
ERROR LINE 24,
|
|
FORM LINE 8
|
|
|
|
LET int_flag = false
|
|
OPEN FORM nofmcs008 FROM "nofmcs008"
|
|
DISPLAY FORM nofmcs008
|
|
|
|
CALL pantalla()
|
|
DISPLAY "noprcs008" AT 4,3
|
|
DISPLAY "Movimientos Acumulado Por Ano" AT 6,25
|
|
|
|
DISPLAY " " AT 22,1
|
|
|
|
INPUT BY NAME p_ano
|
|
AFTER FIELD p_ano
|
|
IF p_ano is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD p_ano
|
|
END IF
|
|
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
|
|
|
|
LET ch_ano = p_ano using "####"
|
|
LET ch_ano = ch_ano[3,4] clipped
|
|
LET ch_fecha = "0101",ch_ano clipped
|
|
LET fecha1 = ch_fecha
|
|
LET ch_fecha = "3112",ch_ano clipped
|
|
LET fecha2 = ch_fecha
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
DISPLAY "En Proceso... Espere" AT 22,1
|
|
|
|
IF p_ano != year(today) THEN
|
|
LET selec =
|
|
"SELECT a.cod_mov,b.descrip_mov,SUM(a.valor) ",
|
|
"FROM notb00016 a,notb00002 b ",
|
|
"WHERE (a.cod_mov = b.cod_mov and YEAR(a.fecha) = ?) ",
|
|
"GROUP BY 1,2 ORDER BY 1 "
|
|
ELSE
|
|
LET selec =
|
|
"SELECT a.cod_mov,b.descrip_mov,SUM(a.valor) ",
|
|
"FROM notb00008 a,notb00002 b ",
|
|
"WHERE (a.cod_mov = b.cod_mov and YEAR(a.fecha) = ? ) ",
|
|
"GROUP BY 1,2 ORDER BY 1 "
|
|
END IF
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca USING p_ano
|
|
|
|
START REPORT imp_nomi TO "nocs08"
|
|
|
|
LET idx = 1
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca INTO datos.*
|
|
IF STATUS = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
IF datos.valor < 0 THEN
|
|
LET datos.valor = datos.valor * -1
|
|
END IF
|
|
|
|
IF datos.valor > 0 THEN
|
|
OUTPUT TO REPORT imp_nomi(datos.*)
|
|
|
|
LET datos_arr[idx].cod_mov = datos.cod_mov
|
|
LET datos_arr[idx].descrip_mov = datos.descrip_mov
|
|
LET datos_arr[idx].valor = datos.valor
|
|
LET idx = idx + 1
|
|
END IF
|
|
|
|
END WHILE
|
|
|
|
FINISH REPORT imp_nomi
|
|
DISPLAY " " AT 22,1
|
|
CALL set_count(idx -1)
|
|
DISPLAY ARRAY datos_arr TO s_datos.*
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
PROMPT "DESEA IMPRIMIR REPORTE (S/N) " FOR opt7
|
|
|
|
LET opt7 = upshift(opt7)
|
|
IF opt7 = "S" THEN
|
|
RUN "$DBPRINT $HOME/nocs08"
|
|
END IF
|
|
|
|
END FUNCTION
|
|
REPORT imp_nomi(x)
|
|
DEFINE x RECORD
|
|
cod_mov SMALLINT,
|
|
descrip_mov CHAR(30),
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
OUTPUT
|
|
LEFT MARGIN 0
|
|
FORMAT
|
|
PAGE HEADER
|
|
PRINT COLUMN 1, "noprcs008",
|
|
COLUMN 20, "R A Y .O. V A C D O M I N I C A N A, S. A.",
|
|
COLUMN 70, "Pag. ",pageno USING "###"
|
|
PRINT COLUMN 25, "SISTEMA DE NOMINA DE PAGO",
|
|
COLUMN 70, today using "dd/mm/yy"
|
|
PRINT COLUMN 26, "MOVIMIENTOS TOTALIZADOS",
|
|
COLUMN 70, TIME
|
|
SKIP 1 LINE
|
|
|
|
PRINT "ANO: ",p_ano
|
|
|
|
PRINT
|
|
"===========================================================================",
|
|
"==="
|
|
PRINT COLUMN 1,"CODIGO",
|
|
COLUMN 11, "DESCRIPCION",
|
|
COLUMN 58, "VALOR"
|
|
|
|
PRINT COLUMN 58, "ACUMULADO"
|
|
|
|
PRINT
|
|
"===========================================================================",
|
|
"==="
|
|
SKIP 1 LINE
|
|
|
|
ON EVERY ROW
|
|
PRINT COLUMN 1, x.cod_mov using "&&&",
|
|
COLUMN 11, x.descrip_mov,
|
|
COLUMN 50, x.valor using "##,###,###.##"
|
|
|
|
ON LAST ROW
|
|
PRINT
|
|
PRINT "Total Registros==> ",count(*) using "###"
|
|
END REPORT
|