Files
MBS/PROYECTO/nodir/noprrp031.4gl
T

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