220 lines
6.1 KiB
Plaintext
220 lines
6.1 KiB
Plaintext
{
|
|
------------------------------------------------------------------------
|
|
FORMULARIO : NOPRRP031
|
|
OBJETIVO : Movimientos Totalizados Comparativos
|
|
PROGRAMADOR : Tadeo A. Ferreras F.
|
|
FECHA REALIZACION : Abril 18, 1996
|
|
------------------------------------------------------------------------
|
|
}
|
|
DATABASE marmotech
|
|
GLOBALS "noprgb000.4gl"
|
|
|
|
DEFINE rep_31 RECORD
|
|
cod_mov INTEGER,
|
|
descrip_mov CHAR(30),
|
|
ano INTEGER,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
DEFINE ano1,mes1 INTEGER,
|
|
descrip_m CHAR(15),
|
|
fecha1,fecha2 DATE
|
|
|
|
FUNCTION noprrp031()
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 22
|
|
|
|
# Desplegue de pantalla y de formulario para la captura de informacion
|
|
CALL pantalla()
|
|
OPEN FORM nofmrp031 FROM "nofmrp031"
|
|
DISPLAY FORM nofmrp031
|
|
DISPLAY "noprrp031" AT 4,3
|
|
DISPLAY "Movimientos Totalizados Comparativos" AT 6,22
|
|
|
|
LET tipo_papel = 1
|
|
CALL msgrp000(tipo_papel)
|
|
|
|
INPUT BY NAME ano1,mes1
|
|
AFTER FIELD ano1
|
|
|
|
### Controlando que el ano a digitar no sea nulo ni mayor al ano actual
|
|
IF ano1 IS NULL OR ano1 > YEAR(TODAY) THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD ano1
|
|
END IF
|
|
|
|
AFTER FIELD mes1
|
|
IF mes1 IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes1
|
|
END IF
|
|
|
|
##### Buscando nombre del mes y verificando que exista
|
|
|
|
SELECT a.descrip INTO descrip_m FROM mestable a
|
|
WHERE a.mes = mes1
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD mes1
|
|
END IF
|
|
|
|
SELECT MAX(fecha_al) INTO fecha1 FROM notb00010 a
|
|
WHERE a.ano = ano1-1 AND a.mes = mes1
|
|
|
|
SELECT MAX(fecha_al) INTO fecha2 FROM notb00010 a
|
|
WHERE a.ano = ano1 AND a.mes = mes1
|
|
END INPUT
|
|
|
|
### Paso Para Cancelar Proceso
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
CONSTRUCT criterio ON a.cod_mov FROM cod_mov
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET selec =
|
|
"SELECT a.cod_mov,b.descrip_mov,YEAR(a.fecha),SUM(a.valor) ",
|
|
"FROM notb00016 a,notb00002 b ",
|
|
"WHERE (a.cod_mov = b.cod_mov AND YEAR(a.fecha)= YEAR(?)) AND ",
|
|
" (a.fecha >= ?) AND (a.status_t IS NULL) AND ",criterio CLIPPED,
|
|
" GROUP BY 1,2,3 "
|
|
|
|
DISPLAY "Buscando Informacion1... Espere Por Favor" AT 17,14
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca USING fecha1,fecha1
|
|
|
|
START REPORT reporte_31 TO "C:\\archivo"
|
|
DISPLAY "Reporte Generendose... Espere Por Favor " AT 17,14
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca INTO rep_31.*
|
|
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
|
|
OUTPUT TO REPORT reporte_31(rep_31.*)
|
|
END WHILE
|
|
|
|
IF ano1 = YEAR(TODAY) THEN
|
|
#IF ano1 = 1997 THEN
|
|
LET selec =
|
|
"SELECT a.cod_mov,b.descrip_mov,YEAR(a.fecha),SUM(a.valor) ",
|
|
"FROM notb00008 a,notb00002 b ",
|
|
"WHERE (a.cod_mov = b.cod_mov AND YEAR(a.fecha)= YEAR(?)) AND ",
|
|
" (a.fecha <= ?) AND (a.status_t IS NULL) AND ",criterio CLIPPED,
|
|
" GROUP BY 1,2,3 "
|
|
ELSE
|
|
LET selec =
|
|
"SELECT a.cod_mov,b.descrip_mov,YEAR(a.fecha),SUM(a.valor) ",
|
|
"FROM notb00016 a,notb00002 b ",
|
|
"WHERE (a.cod_mov = b.cod_mov AND YEAR(a.fecha)= YEAR(?)) AND ",
|
|
" (a.fecha <= ?) AND (a.status_t IS NULL) AND ",criterio CLIPPED,
|
|
" GROUP BY 1,2,3 "
|
|
END IF
|
|
|
|
DISPLAY "Buscando Informacion2... Espere Por Favor" AT 17,14
|
|
|
|
#LET fecha2="311296"
|
|
PREPARE comando1 FROM selec
|
|
DECLARE busca2 CURSOR FOR comando1
|
|
OPEN busca2 USING fecha2,fecha2
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca2 INTO rep_31.*
|
|
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
|
|
OUTPUT TO REPORT reporte_31(rep_31.*)
|
|
END WHILE
|
|
FINISH REPORT reporte_31
|
|
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
|
|
|
|
REPORT reporte_31(x)
|
|
|
|
DEFINE x RECORD
|
|
cod_mov INTEGER,
|
|
descrip_mov CHAR(30),
|
|
ano INTEGER,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
DEFINE negrillas_on,negrillas_off CHAR(2),
|
|
hora CHAR(5)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 1
|
|
LEFT MARGIN 0
|
|
ORDER BY x.cod_mov,x.ano
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET negrillas_on = ASCII 27, ASCII 69
|
|
LET negrillas_off = ASCII 27, ASCII 70
|
|
LET hora = TIME
|
|
PRINT COLUMN 1, negrillas_on
|
|
PRINT COLUMN 1, "noprrp031",
|
|
COLUMN 17, p_companias.nombre CLIPPED,
|
|
COLUMN 73, "Pag. ",PAGENO USING "###"
|
|
PRINT COLUMN 17, " Sistema de Nomina ",
|
|
COLUMN 73, TODAY USING "dd/mm/yy"
|
|
PRINT COLUMN 17, " Movimientos Totalizados Comparativos",
|
|
COLUMN 76, hora
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 1, "Acumulado a ", descrip_m CLIPPED,
|
|
" Del ",ano1 USING "&&&&"
|
|
PRINT COLUMN 1, "----------------------------------------",
|
|
"----------------------------------------"
|
|
PRINT COLUMN 1, "Movimiento",
|
|
COLUMN 60, ano1 USING "&&&&",
|
|
COLUMN 77, ano1-1 USING "&&&&"
|
|
PRINT COLUMN 1, "----------------------------------------",
|
|
"----------------------------------------"
|
|
PRINT negrillas_off
|
|
|
|
BEFORE GROUP OF x.cod_mov
|
|
PRINT COLUMN 1, x.cod_mov USING "&&&"," ",x.descrip_mov CLIPPED;
|
|
|
|
AFTER GROUP OF x.cod_mov
|
|
PRINT COLUMN 50, GROUP SUM(x.valor) WHERE x.ano = ano1
|
|
USING "###,###,###.##",
|
|
COLUMN 67, GROUP SUM(x.valor) WHERE x.ano = ano1 - 1
|
|
USING "###,###,###.##"
|
|
ON LAST ROW
|
|
PRINT COLUMN 50, "--------------",
|
|
COLUMN 67, "--------------"
|
|
PRINT COLUMN 1, "Totales --->",
|
|
COLUMN 50, SUM(x.valor) WHERE x.ano = ano1
|
|
USING "###,###,###.##",
|
|
COLUMN 67, SUM(x.valor) WHERE x.ano = ano1 - 1
|
|
USING "###,###,###.##"
|
|
END REPORT
|