{ ------------------------------------------------------------------------------- PROGRAMA : NOPRRP026 OBJETIVO : LISTAR LAS HORAS EXTRAS DE LOS EMPLEADOS PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Septiembre 07, 1993 ------------------------------------------------------------------------------- } GLOBALS "noprgb000.4gl" FUNCTION noprrp026() DEFINE fecha_inicial,fecha_final DATE DEFINE tipo CHAR(1) DEFINE h_35,h_100,v_35,v_100 DECIMAL(12,2) DEFINE fecha1,fecha2 DATE ## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE DEFINE extras RECORD num_emp LIKE adtb00003.num_emp, departamento LIKE adtb00003.departamento, nivel LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp CHAR(10), apell1_emp CHAR(10), cod_mov LIKE notb00008.cod_mov, cantidad LIKE notb00008.cantidad, valor LIKE notb00008.valor END RECORD # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM nofmrp026 FROM "nofmrp026" DISPLAY FORM nofmrp026 CALL pantalla() DISPLAY "noprrp026" AT 4,3 DISPLAY "Horas Extras Empleados" AT 6,32 ## 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 fecha_inicial,fecha_final,tipo AFTER FIELD fecha_inicial IF fecha_inicial IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_inicial END IF AFTER FIELD fecha_final IF fecha_final IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_final END IF IF fecha_inicial > fecha_final THEN LET numero_msg = 51 CALL msg(numero_msg) NEXT FIELD tipo_emp END IF AFTER FIELD tipo IF tipo IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF ## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE DECLARE buscar CURSOR FOR SELECT a.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp, b.apell1_emp,a.cod_mov,SUM(a.cantidad),SUM(a.valor) FROM adtb00003 b,notb00008 a WHERE a.num_emp = b.num_emp AND a.tipo_emp = tipo AND a.cod_mov IN (1,2,3) AND a.fecha BETWEEN fecha_inicial AND fecha_final AND b.status_t IS NULL GROUP BY 1,2,3,4,5,6,7 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14 ATTRIBUTE (REVERSE,BOLD) ## SE PREPARA LA INFORMACION SELECCIONADA DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT extras10 TO "C:\\archivo" ## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE FOREACH buscar INTO extras.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF OUTPUT TO REPORT extras10(extras.*,fecha1,fecha2) END FOREACH FINISH REPORT extras10 CLEAR SCREEN RUN "type C:\\archivo > %USPRINT%" END FUNCTION ## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT extras10(x,fech1,fech2) DEFINE x RECORD num_emp LIKE notb00008.num_emp, departamento LIKE adtb00003.departamento, nivel LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp CHAR(10), apell1_emp CHAR(10), cod_mov LIKE notb00008.cod_mov, cantidad LIKE notb00008.cantidad, valor LIKE notb00008.valor 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 l smallint DEFINE varia CHAR(11) DEFINE fech1,fech2 DATE DEFINE descu,descuento,porciento1,porciento2,acumulado DECIMAL(5,2) DEFINE acumulado1,total,total1,total2,total3,total4 DECIMAL(12,2) DEFINE descuento1,porcentaje1,porcentaje2,acumula,acumula1 DECIMAL(5,2), nombre_dp CHAR(30), h_nor,v_nor DECIMAL(12,2) OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 3 ORDER BY x.departamento,x.num_emp,x.cod_mov 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 LET l = (132 - LENGTH(p_companias.nombre clipped))/2 IF tipo = "Q" THEN | fglcomp: The symbol "tipo" does not represent a defined variable. | See error number -4369. LET varia = "Horas Extras Empleados Quincenales" END IF IF tipo = "S" THEN | fglcomp: The symbol "tipo" does not represent a defined variable. | See error number -4369. LET varia = "Horas Extras Empleados Semanales" END IF ## SE CALCULA LA LONGITUD DE LA VARIABLE -VARIA- ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, comp_on,doce,negrillas_on PRINT COLUMN 2, "noprrp026", COLUMN l, p_companias.nombre CLIPPED, COLUMN 125, "Pag. ",pageno using "###" PRINT COLUMN 36, "Sistema de Nomina", COLUMN 125, today using "dd/mm/yy" LET l = (132 - LENGTH(varia CLIPPED))/2 PRINT COLUMN l, varia CLIPPED, COLUMN 128, hora SKIP 1 LINE PRINT COLUMN 1, "Del ", fecha_inicial USING "dd/mm/yy", | fglcomp: The symbol "fecha_inicial" does not represent a defined variable. | See error number -4369. " Al ", fecha_final USING "dd/mm/yy" | fglcomp: The symbol "fecha_final" does not represent a defined variable. | See error number -4369. PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------" PRINT COLUMN 1, "Empleado", COLUMN 50, "Normal", COLUMN 65, "Al 35%", COLUMN 75, " Valor", COLUMN 90, "Al 100%", COLUMN 100, " Valor", COLUMN 115, " Total" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "--------------------------------" PRINT COLUMN 1,negrillas_off ## AQUI COMIENZA LA IMPRESION DEL DETALLE BEFORE GROUP OF x.departamento SKIP 1 LINE SELECT nom_dpto INTO nombre_dp FROM adtb00001 WHERE departamento = x.departamento PRINT COLUMN 1, negrillas_on,x.departamento using "####"," ",nombre_dp , negrillas_off BEFORE GROUP OF x.num_emp LET total = 0 PRINT COLUMN 1, x.num_emp USING "&&&&","-", x.departamento USING "&&&&","-",x.nivel USING"&&", "-",x.cod_puesto USING "&&"," ",x.nom1_emp CLIPPED, " ",x.apell1_emp CLIPPED; ON EVERY ROW LET total = total + x.valor IF h_35 IS NULL THEN | fglcomp: The symbol "h_35" does not represent a defined variable. | See error number -4369. LET h_35 = 0 | fglcomp: The symbol "h_35" does not represent a defined variable. | See error number -4369. END IF IF h_100 IS NULL THEN | fglcomp: The symbol "h_100" does not represent a defined variable. | See error number -4369. LET h_100 = 0 | fglcomp: The symbol "h_100" does not represent a defined variable. | See error number -4369. END IF IF v_35 IS NULL THEN | fglcomp: The symbol "v_35" does not represent a defined variable. | See error number -4369. LET v_35 = 0 | fglcomp: The symbol "v_35" does not represent a defined variable. | See error number -4369. END IF IF v_100 IS NULL THEN | fglcomp: The symbol "v_100" does not represent a defined variable. | See error number -4369. LET v_100 = 0 | fglcomp: The symbol "v_100" does not represent a defined variable. | See error number -4369. END IF IF x.cod_mov = 1 THEN LET h_nor = h_nor + x.cantidad LET v_nor = v_nor + x.valor PRINT COLUMN 50, x.valor USING "#,###,###.##"; END IF IF x.cod_mov = 2 THEN LET h_35 = h_35 + x.cantidad | fglcomp: The symbol "h_35" does not represent a defined variable. | See error number -4369. | fglcomp: The symbol "h_35" does not represent a defined variable. | See error number -4369. LET v_35 = v_35 + x.valor | fglcomp: The symbol "v_35" does not represent a defined variable. | See error number -4369. | fglcomp: The symbol "v_35" does not represent a defined variable. | See error number -4369. PRINT COLUMN 65, x.cantidad USING "###,###.##", COLUMN 75, x.valor USING "#,###,###.##"; ELSE IF x.cod_mov = 3 THEN LET h_100 = h_100 + x.cantidad | fglcomp: The symbol "h_100" does not represent a defined variable. | See error number -4369. | fglcomp: The symbol "h_100" does not represent a defined variable. | See error number -4369. LET v_100 = v_100 + x.valor | fglcomp: The symbol "v_100" does not represent a defined variable. | See error number -4369. | fglcomp: The symbol "v_100" does not represent a defined variable. | See error number -4369. PRINT COLUMN 90, x.cantidad USING "###,###.##", COLUMN 100, x.valor USING "#,###,###.##"; END IF END IF AFTER GROUP OF x.num_emp PRINT COLUMN 115, total USING "#,###,###.##" AFTER GROUP OF x.departamento SKIP 1 LINE PRINT COLUMN 50, GROUP SUM(x.valor) WHERE x.cod_mov = 1 USING "#,###,###.##", COLUMN 65, GROUP SUM(x.cantidad) WHERE x.cod_mov = 2 USING "###,###.##", COLUMN 75, GROUP SUM(x.valor) WHERE x.cod_mov = 2 USING "#,###,###.##", COLUMN 90, GROUP SUM(x.cantidad) WHERE x.cod_mov = 3 USING "###,###.##", COLUMN 100, GROUP SUM(x.valor) WHERE x.cod_mov = 3 USING "#,###,###.##", COLUMN 115, GROUP SUM(x.valor) USING "#,###,###.##" ON LAST ROW SKIP 1 LINE PRINT COLUMN 1, "Total General ", COLUMN 50, SUM(x.valor) WHERE x.cod_mov = 1 USING "#,###,###.##", COLUMN 65, SUM(x.cantidad) WHERE x.cod_mov = 2 USING "###,###.##", COLUMN 75, SUM(x.valor) WHERE x.cod_mov = 2 USING "#,###,###.##", COLUMN 90, SUM(x.cantidad) WHERE x.cod_mov = 3 USING "###,###.##", COLUMN 100, SUM(x.valor) WHERE x.cod_mov = 3 USING "#,###,###.##", COLUMN 115,SUM(x.valor) USING "#,###,###.##" END REPORT