Files
MBS/PROYECTO/addir/adprrp026.4gl
T

263 lines
8.5 KiB
Plaintext

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