{ ------------------------------------------------------------------------ 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