{ ------------------------------------------------------------------------------- PROGRAMA : NOPRRP010 OBJETIVO : LISTAR LOS PAGOS A INFOTEP PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Septiembre 06, 1993 ------------------------------------------------------------------------------- } GLOBALS "noprgb000.4gl" FUNCTION noprrp010() DEFINE ano,ano1,mes,mes1,semanas INTEGER ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE infotep RECORD nomina LIKE adtb00003.nomina, num_nomi LIKE notb00008.num_nomi, num_emp LIKE notb00008.num_emp, fecha_del LIKE notb00010.fecha_del, fecha_al LIKE notb00010.fecha_al, sueldo_ac LIKE adtb00003.sueldo_ac END RECORD # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM nofmrp010 FROM "nofmrp010" DISPLAY FORM nofmrp010 CALL pantalla() DISPLAY "noprrp010" AT 4,3 DISPLAY "Pago INFOTEP" AT 6,34 ## INDICA EL TIPO DE PAPEL NECESARIO PARA EL REPORTE. 1 - PAPEL 9 1/2 X 11 ## 2 - PAPEL 14 7/8 X 11 LET tipo_papel = 1 CALL msgrp000(tipo_papel) ## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE INPUT BY NAME ano,mes AFTER FIELD ano IF ano IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD ano END IF IF ano > YEAR(TODAY) THEN LET numero_msg = 160 CALL msg(numero_msg) NEXT FIELD ano END IF AFTER FIELD mes IF mes IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD mes END IF IF mes > MONTH(TODAY) AND ano >= YEAR(TODAY) THEN LET numero_msg = 160 CALL msg(numero_msg) NEXT FIELD mes END IF LET mes1 = mes LET ano1 = ano SELECT a.descrip INTO nombre_mes FROM mestable a WHERE a.mes = mes1 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 ## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE Y ## SE DECLARA EL CURSOR PARA BUSCAR LA INFORMACION SELECCIONADA DECLARE accion CURSOR FOR SELECT UNIQUE a.tipo_emp,a.num_nomi,a.num_emp,b.fecha_del,b.fecha_al, SUM(a.valor) FROM notb00010 b, notb00008 a WHERE a.tipo_emp = b.tipo_emp AND a.num_nomi = b.num_nomi AND b.ano = ano1 AND b.mes = mes1 AND a.status_t is null AND a.cod_mov IN (1,31,33) GROUP BY 1,2,3,4,5 HAVING SUM(a.valor) <> 0 DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 START REPORT list_infotep TO "C:\\archivo" DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE FOREACH accion INTO infotep.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT list_infotep(infotep.*,ano,mes,nombre_mes) END FOREACH FINISH REPORT list_infotep CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT list_infotep(x,ano1,mes1,nombrem) DEFINE x RECORD nomina LIKE adtb00003.nomina, num_nomi LIKE notb00008.num_nomi, num_emp LIKE notb00008.num_emp, fecha_del LIKE notb00010.fecha_del, fecha_al LIKE notb00010.fecha_al, monto1 DECIMAL(10,2) END RECORD ## 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) DEFINE ano1,mes1,semana1 INTEGER DEFINE nombrem CHAR(10) DEFINE total,total2,porciento DECIMAL(10,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.nomina,x.num_nomi FORMAT PAGE HEADER LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS LET l = (82 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1, normal,negrillas_on PRINT COLUMN 2, "noprrp010", COLUMN l, p_companias.nombre CLIPPED, COLUMN 75, "Pag. ",pageno using "###" PRINT COLUMN 32, "Sistema de Nomina", COLUMN 75, today using "dd/mm/yy" PRINT COLUMN 35, "Pago INFOTEP", COLUMN 78, hora SKIP 1 LINE PRINT COLUMN 2, "Mes de", COLUMN 9, nombrem clipped, COLUMN 21, "De", COLUMN 24, ano1 using "<<<<" PRINT COLUMN 1, negrillas_on ## AQUI SE INDICA LA IMPRESION DEL DETALLE BEFORE GROUP OF x.nomina LET descr = null IF x.nomina = "Q" THEN LET descr = "QUINCENAL" ELSE IF x.nomina = "V" THEN LET descr = "VENDEDORES" ELSE LET descr = "SEMANAL" END IF END IF PRINT COLUMN 1, negrillas_on PRINT COLUMN 2, "Numero", COLUMN 34, "Cantidad", COLUMN 52, "Monto" PRINT COLUMN 2, "Nomina", COLUMN 34, "Empleado", COLUMN 52, "Nomina" PRINT COLUMN 20, negrillas_off AFTER GROUP OF x.num_nomi PRINT COLUMN 2, x.num_nomi using "&&&&", " Del ", x.fecha_del using "dd/mm/yy", " Al ", x.fecha_al using "dd/mm/yy", COLUMN 36, GROUP COUNT(*) USING "#,###", COLUMN 48, GROUP SUM(x.monto1) using "#,###,###.##" AFTER GROUP OF x.nomina SKIP 1 LINE PRINT COLUMN 2, "Total Nomina ",descr, COLUMN 48, GROUP SUM(x.monto1) USING "#,###,###.##" SKIP 2 LINES ON LAST ROW SKIP 1 LINE PRINT COLUMN 2, "TOTAL GENERAL", COLUMN 48, SUM(x.monto1) using "#,###,###.##" SKIP 1 LINE PRINT COLUMN 2, "TOTAL A PAGAR 1%", COLUMN 48, SUM(x.monto1) * 0.01 using "#,###,###.##" END REPORT