Files
MBS/PROYECTO/nodir/adprrp033.4gl
T

273 lines
8.5 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ADPRRP033
OBJETIVO : Listar las informaciones Complementarias del reporte
ADPRRP011
PROGRAMADOR : JUAN F. SOTO
FECHA REALIZACION : Noviembre 7, 1995
-------------------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
DEFINE tipo_l CHAR(1)
FUNCTION adprrp033()
## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE
DEFINE list_emp RECORD
num_emp LIKE adtb00003.num_emp,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell1_emp,
cedula LIKE adtb00003.cedula,
serie LIKE adtb00003.serie,
fech_nac LIKE adtb00003.fech_nac,
fech_efec LIKE adtb00003.fech_efec,
estado_civil LIKE adtb00003.estado_civil,
sexo LIKE adtb00034.sexo
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM adfmrp033 FROM "adfmrp033"
DISPLAY FORM adfmrp033
CALL pantalla()
DISPLAY "adprrp033" AT 4,3
DISPLAY "Empleados Activos" AT 6,34
## 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)
## AQUI SE DIGITA LA VARIABLE QUE INDICA LA CONDICION DEL REPORTE, ES DECIR
## SI SE TRATA DE EMPLEADOS SEMANALES O QUINCENALES
CONSTRUCT BY NAME criterio ON a.num_emp,a.nomina
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LABEL pide:
PROMPT "Listado Numerico o Alfabetico (N/A)? " FOR CHAR tipo_l
LET tipo_l = UPSHIFT(tipo_l)
IF tipo_l IS NULL THEN
LET tipo_l = "K"
END IF
IF tipo_l != "N" AND tipo_l != "A" THEN
GOTO pide
END IF
IF decide IS NULL THEN
LET decide = "S"
END IF
## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE DE LOS QUINCENALES
IF decide = "N" THEN
LET SELEC =
"SELECT UNIQUE a.num_emp,a.nom1_emp,a.nom2_emp,",
" a.apell1_emp,a.apell2_emp,a.cedula,a.serie,a.fech_nac, ",
" a.fech_efec,a.estado_civil ",
"FROM adtb00003 a ",
"WHERE ",criterio clipped,
" AND a.status_t is null OR a.status_t = 'I' ",
"ORDER BY 1 "
ELSE
LET SELEC =
"SELECT UNIQUE a.num_emp,a.nom1_emp,a.nom2_emp,",
" a.apell1_emp,a.apell2_emp,a.cedula,a.serie,a.fech_nac, ",
" a.fech_efec,a.estado_civil ",
"FROM adtb00003 a ",
"WHERE ",criterio clipped,
" AND a.status_t is null OR a.status_t = 'I' ",
"ORDER BY 4 "
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
## AQUI SE PREPARA LA INFORMACION SELECCIONADA
PREPARE busca FROM selec
DECLARE accion CURSOR FOR busca
OPEN accion
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT nace TO "C:\\archivo"
## AQUI SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
## SALIDA AL REPORTE
WHILE STATUS != NOTFOUND
FETCH accion INTO list_emp.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT nace(list_emp.*)
END WHILE
FINISH REPORT nace
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT nace(x)
DEFINE x RECORD
num_emp LIKE adtb00003.num_emp,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell1_emp,
cedula LIKE adtb00003.cedula,
serie LIKE adtb00003.serie,
fech_nac LIKE adtb00003.fech_nac,
fech_efec LIKE adtb00003.fech_efec,
estado_civil LIKE adtb00003.estado_civil,
sexo LIKE adtb00034.sexo
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(12),
m_sexo,m_civil CHAR(10),
nom_provincia CHAR(20),
cod_prov,codigo_sol SMALLINT
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 2
BOTTOM MARGIN 4
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
PRINT COLUMN 1, comp_on,
COLUMN 2, "adprrp033",
COLUMN 16, 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, negrillas_off,
COLUMN 133, "Pag.",pageno using "###"
PRINT COLUMN 1,
COLUMN 44, "Sistema de Administracion de Personal",
COLUMN 128, today using "dd/mm/yy"
PRINT COLUMN 1,
COLUMN 44, " Maestra de Personal ",
COLUMN 131, hora
PRINT doce,comp_on
PRINT COLUMN 2, "---------------------------------------------------",
"---------------------------------------------------",
"------------------------------------------------------"
PRINT COLUMN 103, "Estado",
COLUMN 115, "Fecha de",
COLUMN 127, "Lugar de",
COLUMN 148, "Fecha de"
PRINT COLUMN 2, "Codigo No.",
COLUMN 13, "Nombre Empleado",
COLUMN 74, "Cedula-Serie",
COLUMN 91, "Sexo",
COLUMN 103, "Civil ",
COLUMN 115, "Entrada",
COLUMN 127, "Nacimiento",
COLUMN 148, "Nacimiento"
PRINT COLUMN 2, "---------------------------------------------------",
"---------------------------------------------------",
"------------------------------------------------------"
ON EVERY ROW
# Busca el sexo de cada empleado y como la tabla esta estructurada para el
# Sexo de los familiares tambien, entonces para identificar el sexo del empleado
# hay distinguirlo con el codigo del parentesco(cod_par) que es cero(0).
SELECT @sexo INTO x.sexo
FROM adtb00021
WHERE @num_emp = x.num_emp and
cod_par = 0
IF x.sexo = "M" THEN
LET m_sexo = "MASCULINO"
ELSE
LET m_sexo = "FEMENINO"
END IF
IF x.estado_civil = "C" THEN
LET m_civil = "CASADO"
ELSE
LET m_civil = "SOLTERO"
END IF
# Busqueda del codigo del solicitante
SELECT MAX(cod_sol) INTO codigo_sol
FROM adtb00017
WHERE num_emp = x.num_emp
# Busqueda del codigo de la provincia en que nacio
SELECT unique cod_provincia INTO cod_prov
FROM adtb00012
WHERE cod_sol = codigo_sol
# Busqueda del nombre de la provincia en que nacio
SELECT unique nombre_provincia INTO nom_provincia
FROM vetb00020
WHERE cod_provincia = cod_prov
PRINT COLUMN 3, x.num_emp USING "&&&&",
COLUMN 14, x.apell1_emp clipped," ",x.apell2_emp clipped," ",
x.nom1_emp clipped," ",x.nom2_emp clipped," ",
COLUMN 72, x.cedula using "#########","-",x.serie using "&&&&",
COLUMN 91, m_sexo clipped,
COLUMN 103, m_civil clipped,
COLUMN 115, x.fech_efec using "dd/mm/yy",
COLUMN 125, nom_provincia,
COLUMN 148, x.fech_nac using "dd/mm/yy"
ON LAST ROW
skip 1 line
PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) using "###"
PRINT comp_off
END REPORT