{ ------------------------------------------------------------------------------- PROGRAMA : ADPRRP026 OBJETIVO : Listar las informaciones generales de los Ex-Empleados PROGRAMADOR : Ing. Betania Guerrero Perez FECHA REALIZACION : Julio 16, 1993 ------------------------------------------------------------------------------- } GLOBALS "adprgb000.4gl" FUNCTION adprrp026() ## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE DEFINE lista_ex RECORD num_emp LIKE adtb00003.num_emp, departamento LIKE adtb00003.departamento, nivel_emp LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, telefono LIKE adtb00003.telefono, fech_efec LIKE adtb00003.fech_efec, sueldo_ac LIKE adtb00003.sueldo_ac, nomina LIKE adtb00003.nomina, nom_dpto LIKE adtb00001.nom_dpto, nom_puesto LIKE adtb00004.nom_puesto, calle LIKE adtb00003.calle, casa_num LIKE adtb00003.casa_num, barrio LIKE adtb00003.barrio, urbanizacion LIKE adtb00003.urbanizacion END RECORD WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 CLEAR SCREEN OPEN FORM adfmrp016 FROM "adfmrp016" DISPLAY FORM adfmrp016 CALL pantalla() DISPLAY "adprrp026" AT 4,3 ATTRIBUTE(RED) DISPLAY "Ex-Empleados" AT 6,37 ATTRIBUTE(BLACK) ## INDICA EL PAPEL NECESARIO PARA IMPRIMIR EL REPORTE. 1 - PAPEL 9 1/2 X 11 ## 2 - PAPEL 14 7/8 X 11 LET tipo_papel = 2 CALL msgrp000(tipo_papel) CALL defecto(impresor) RETURNING imprime, letras.*, archivo ## DEFINICION DEL CRITERIO DE BUSQUEDA PARA LA IMPRESION DEL REPORTE CONSTRUCT criterio ON a.num_emp FROM num_emp ON KEY(CONTROL-P) CALL busca_printer() RETURNING imprime,letras.*, archivo AFTER CONSTRUCT EXIT CONSTRUCT END CONSTRUCT 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 DE EX-EMPLEADOS LET SELEC = "SELECT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto,a.nom1_emp, ", " a.apell1_emp,a.cedula,a.serie,a.telefono,a.fech_efec, ", " a.sueldo_ac,a.nomina,b.nom_puesto,c.nom_dpto,a.calle,a.casa_num, ", " a.barrio,a.urbanizacion ", "FROM adtb00003 a,adtb00004 b,adtb00001 c ", "WHERE a.cod_puesto=b.cod_puesto AND a.departamento = c.departamento AND ", " a.status_t IN ('D','T') ORDER BY 1,2,3,4" 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) ## AQUI SE PREPARA LA INFORMACION SELECCIONADA PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF ## DECLARACION DEL CURSOR PARA BUSCAR LA INFORMACION SELECCIONADA DECLARE accion CURSOR FOR busca DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) START REPORT ex_emp TO archivo ## AQUI SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE ## SALIDA AL REPORTE FOREACH accion INTO lista_ex.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF status = NOTFOUND THEN EXIT FOREACH ELSE OUTPUT TO REPORT ex_emp(lista_ex.*) END IF END FOREACH FINISH REPORT ex_emp RUN imprime CLEAR SCREEN END FUNCTION ## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA ## EL REPORTE REPORT ex_emp(x) DEFINE x RECORD num_emp LIKE adtb00003.num_emp, departamento LIKE adtb00003.departamento, nivel_emp LIKE adtb00003.nivel_emp, cod_puesto LIKE adtb00003.cod_puesto, nom1_emp LIKE adtb00003.nom1_emp, apell1_emp LIKE adtb00003.apell1_emp, cedula LIKE adtb00003.cedula, serie LIKE adtb00003.serie, telefono LIKE adtb00003.telefono, fech_efec LIKE adtb00003.fech_efec, sueldo_ac LIKE adtb00003.sueldo_ac, nomina LIKE adtb00003.nomina, nom_dpto LIKE adtb00001.nom_dpto, nom_puesto LIKE adtb00004.nom_puesto, calle LIKE adtb00003.calle, casa_num LIKE adtb00003.casa_num, barrio LIKE adtb00003.barrio, urbanizacion LIKE adtb00003.urbanizacion END RECORD ## DEFINICION DE LAS VARIABLES DE IMPRESION DEFINE hora CHAR(5) DEFINE fecha_sal DATE OUTPUT ## DEFINICION DE LOS MARGENES DE IMPRESION TOP MARGIN 0 LEFT MARGIN 2 BOTTOM MARGIN 4 FORMAT PAGE HEADER LET hora = time ## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS PRINT COLUMN 1, letras.normal, COLUMN 2, "adprrp026", COLUMN 16, letras.negrillas_on, COLUMN 43, "R A Y . O . V A C D O M I N I C A N A, S. A.", COLUMN 90, letras.negrillas_off, COLUMN 131, "Pag. ",pageno using "###" PRINT COLUMN 1, COLUMN 44, "Sistema de Administracion de Personal", COLUMN 125, today using "dd/mm/yyyy" PRINT COLUMN 1, COLUMN 56, "Ex-Empleados", COLUMN 128, hora PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------", "-----------------------------" PRINT COLUMN 2, "Codigo No.", COLUMN 18, "Nombre Empleado", COLUMN 49, "Cedula", COLUMN 60, "Serie", COLUMN 66, "Telefono", COLUMN 75, "Fecha Entrada", COLUMN 89, "Fecha Salida", COLUMN 103, "Salario Mes", COLUMN 116, "Nomina" PRINT COLUMN 2, "---------------------------------------------------", "---------------------------------------------------", "-----------------------------" skip 1 line ## AQUI SE INDICA LA IMPRESION DEL DETALLE Y SE SELECCIONA EL TIPO DE NOMINA ## A LA PERTENECE EL EMPLEADO ON EVERY ROW SELECT nomina INTO x.nomina FROM adtb00003 WHERE num_emp = x.num_emp IF x.nomina = "Q" THEN LET descrip = "Quincenal" ELSE LET descrip = "Semanal" END IF SELECT fech_efec INTO fecha_sal FROM adtb00017 WHERE num_emp = x.num_emp and cod_mto = 4 PRINT COLUMN 1, letras.negrillas_on, COLUMN 3, x.num_emp USING "&&&&","-", COLUMN 8, x.departamento USING "&&&&","-", COLUMN 13, x.nivel_emp USING "&&","-", COLUMN 16, x.cod_puesto USING "&&", COLUMN 19, x.nom1_emp clipped," ",x.apell1_emp clipped, COLUMN 48, letras.negrillas_off, COLUMN 52, x.cedula using "#<<<<<<<<<", COLUMN 64, x.serie using "&&&&", COLUMN 70, x.telefono, COLUMN 82, x.fech_efec using "dd/mm/yyyy", COLUMN 95, fecha_sal using "dd/mm/yyyy", COLUMN 106, x.sueldo_ac using "#,###,###.##", COLUMN 120, descrip PRINT COLUMN 1, "Departamento:", COLUMN 15, x.nom_dpto, COLUMN 46, "Puesto:", COLUMN 54, x.nom_puesto, COLUMN 85, "Direccion:", COLUMN 96, x.calle clipped," ",x.casa_num clipped," ", x.barrio clipped," ",x.urbanizacion clipped AFTER GROUP OF x.num_emp skip 1 line ON LAST ROW skip 1 line PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) using "###" END REPORT