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

267 lines
8.2 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ADPRRP024
OBJETIVO : INFORMA A LOS VIGILANTES LA ENTRADA DE UN NUEVO
EMPLEADO
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Junio 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
FUNCTION adprrp024()
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE entrada RECORD
fech_efec LIKE adtb00020.fech_efec,
nom1_sol LIKE adtb00012.nom1_sol,
apell1_sol LIKE adtb00012.apell1_sol,
nom2_sol LIKE adtb00012.nom1_sol,
apell2_sol LIKE adtb00012.apell2_sol,
cedula LIKE adtb00012.cedula,
serie LIKE adtb00012.serie,
nom_dpto LIKE adtb00001.nom_dpto,
nom1_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp,
cod_sol LIKE adtb00012.cod_sol,
departamento LIKE adtb00020.departamento,
num_emp LIKE adtb00038.num_emp
END RECORD
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM adfmrp014 FROM "adfmrp014"
DISPLAY FORM adfmrp014
CALL pantalla()
DISPLAY "adprrp024" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Entrada de Empleado" AT 6,30 ATTRIBUTE(BLACK)
## 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)
CALL defecto(impresor) RETURNING imprime, letras.*, archivo
## SE INDICA LA FECHA EN QUE VA A ENTRAR EL NUEVO EMPLEADO
LET rango.fech_in = today
INPUT BY NAME rango.fech_in WITHOUT DEFAULTS
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*, archivo
AFTER FIELD fech_in
IF rango.fech_in IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fech_in
END IF
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
## DEFINICION DEL CRITERIO DE BUSQUEDA PARA LA IMPRESION DEL REPORTE
CONSTRUCT criterio ON a.cod_sol FROM cod_sol
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
LET SELEC =
"SELECT b.fech_efec,a.nom1_sol,a.apell1_sol,a.nom2_sol,a.apell2_sol, ",
" a.cedula,a.serie,c.nom_dpto,d.nom1_emp,d.apell1_emp,a.cod_sol, ",
" b.departamento ",
"FROM adtb00012 a,adtb00020 b,adtb00001 c,adtb00003 d ",
"WHERE b.cod_mto = 1 AND a.cod_sol = b.cod_sol AND ",
" b.departamento = c.departamento AND d.num_emp = b.num1_emp AND ",
" a.status_t is null AND (d.status_t is null OR ",
" d.status_t NOT IN ('D','T','E')) AND ",criterio clipped," ORDER BY 9"
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
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
## SE DECLARA UN 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 memo TO archivo
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
FOREACH accion INTO entrada.*
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 memo(entrada.*)
END IF
END FOREACH
FINISH REPORT memo
RUN imprime
CLEAR SCREEN
END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT memo(x)
DEFINE x RECORD
fech_efec LIKE adtb00020.fech_efec,
nom1_sol LIKE adtb00012.nom1_sol,
apell1_sol LIKE adtb00012.apell1_sol,
nom2_sol LIKE adtb00012.nom1_sol,
apell2_sol LIKE adtb00012.apell2_sol,
cedula LIKE adtb00012.cedula,
serie LIKE adtb00012.serie,
nom_dpto LIKE adtb00001.nom_dpto,
nom1_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp,
cod_sol LIKE adtb00012.cod_sol,
departamento LIKE adtb00020.departamento,
num_emp LIKE adtb00038.num_emp
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE hora CHAR(5),
m_cedula LIKE adtb00038.cedula_n
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 3
LEFT MARGIN 0
BOTTOM MARGIN 3
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.normal,
COLUMN 2, "adprrp024",
COLUMN 14, letras.negrillas_on,
COLUMN 15, letras.doble_on,
COLUMN 16, letras.comp_on,
COLUMN 17, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 65, letras.negrillas_off,
COLUMN 66, letras.doble_off,
COLUMN 67, letras.comp_off,
COLUMN 75, "Pag. ",pageno using "###"
PRINT COLUMN 22, "Sistema de Administracion de Personal",
COLUMN 73, today using "dd/mm/yyyy"
PRINT COLUMN 30, "Entrada de Empleado",
COLUMN 76, hora
INITIALIZE m_cedula TO NULL
SELECT a.cedula_n
INTO m_cedula
FROM adtb00038 a
WHERE a.num_emp = x.num_emp
Skip 3 lines
PRINT COLUMN 5, "A",
COLUMN 12, ":",
COLUMN 14, "Todos los Vigilantes"
SKIP 1 LINE
PRINT COLUMN 5, "DE",
COLUMN 12, ":",
COLUMN 14, "Gerencia de Personal"
SKIP 1 LINE
PRINT COLUMN 5, "ASUNTO",
COLUMN 12, ":",
COLUMN 14, "Entrada de Empleado"
SKIP 1 LINE
PRINT COLUMN 5, "FECHA",
COLUMN 12, ":",
COLUMN 14, rango.fech_in using "dd/mm/yyyy"
skip 4 lines
## AQUI SE IMPRIME EL TEXTO DEL REPORTE
PRINT COLUMN 5, "A partir del dia",
COLUMN 22, x.fech_efec using "dd/mm/yyyy",", el(la) Senor(a) ",
COLUMN 48, x.nom1_sol clipped," ",x.nom2_sol clipped," ",
x.apell1_sol clipped," ",x.apell2_sol clipped
skip 1 line
PRINT COLUMN 5, "cedula no. ",m_cedula CLIPPED, #x.cedula using "<<<<<<<<<<"," Serie ",
#x.serie using "<<<<",
", comenzara a laborar para esta compania en el "
skip 1 line
PRINT COLUMN 5, "departamento de ",x.nom_dpto clipped,"."
Skip 4 line
## AQUI SE IMPRIME EL EMPLEADO QUE FIRMA EL REPORTE
SELECT a.nom1_emp,a.apell1_emp INTO x.nom1_emp,x.apell1_emp FROM adtb00003 a
WHERE a.departamento = 3000 AND a.cod_puesto = 5 AND (a.status_t IS NULL OR
a.status_t NOT IN ("T","D","E"))
PRINT COLUMN 29, "Atentamente,"
Skip 4 lines
PRINT COLUMN 29, x.nom1_emp clipped," ",x.apell1_emp clipped
PRINT COLUMN 29, "Gerente de Personal"
END REPORT