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

229 lines
7.3 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ADPRRP036
OBJETIVO : Listar las informaciones generales de los
Empleados Quincenales y Semanales
PROGRAMADOR : Juan F. Soto
FECHA REALIZACION : Marzo 22, 1996
-------------------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
DEFINE tipo_l CHAR(1)
FUNCTION adprrp036()
## SE DEFINE EL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA EL REPORTE
DEFINE list_emp RECORD
num_emp LIKE adtb00003.num_emp,
nivel_emp LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom2_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell2_emp,
cedula LIKE adtb00003.cedula,
serie LIKE adtb00003.serie,
nom_puesto LIKE adtb00004.nom_puesto,
tipo_sangre LIKE adtb00003.tipo_sangre
END RECORD
#WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
CALL pantalla()
DISPLAY "adprrp036" AT 4,3
DISPLAY "Maestra Empleado Resumen" AT 6,28
## 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
LABEL pide:
PROMPT "Listado Numerico o Alfabetico (N/A)? " FOR CHAR tipo_l
LET tipo_l = UPSHIFT(tipo_l)
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
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 tipo_l = "N" THEN
LET SELEC =
"SELECT UNIQUE a.num_emp,a.nivel_emp,a.cod_puesto, ",
" a.nom1_emp,a.nom2_emp,a.apell1_emp,a.apell2_emp,a.cedula,a.serie, ",
" b.nom_puesto,a.tipo_sangre ",
"FROM adtb00003 a,adtb00004 b ",
"WHERE a.cod_puesto=b.cod_puesto AND ",
" a.num_emp != 888 AND ",
" (a.status_t is null OR ",
" a.status_t NOT IN('D','E','T')) ",
"ORDER BY 1 "
ELSE
LET SELEC =
"SELECT UNIQUE a.num_emp,a.nivel_emp,a.cod_puesto, ",
" a.nom1_emp,a.nom2_emp,a.apell1_emp,a.apell2_emp,a.cedula,a.serie, ",
" b.nom_puesto,a.tipo_sangre ",
"FROM adtb00003 a,adtb00004 b ",
"WHERE a.cod_puesto=b.cod_puesto AND ",
" a.num_emp != 888 AND ",
" (a.status_t is null OR ",
" a.status_t NOT IN('D','E','T')) ",
"ORDER BY 6,7,4,5 "
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 emplear1 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 emplear1(list_emp.*)
END WHILE
FINISH REPORT emplear1
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
## AQUI SE DEFINE EL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT emplear1(x)
DEFINE x RECORD
num_emp LIKE adtb00003.num_emp,
nivel_emp LIKE adtb00003.nivel_emp,
cod_puesto LIKE adtb00003.cod_puesto,
nom1_emp LIKE adtb00003.nom1_emp,
nom2_emp LIKE adtb00003.nom2_emp,
apell1_emp LIKE adtb00003.apell1_emp,
apell2_emp LIKE adtb00003.apell2_emp,
cedula LIKE adtb00003.cedula,
serie LIKE adtb00003.serie,
nom_puesto LIKE adtb00004.nom_puesto,
tipo_sangre LIKE adtb00003.tipo_sangre
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)
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,negrillas_on
PRINT COLUMN 1, "adprrp036",
COLUMN 44, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 128, "Pag. ",pageno using "###"
PRINT COLUMN 44, " Sistema de Administracion de Personal",
COLUMN 128, today using "dd/mm/yy"
PRINT COLUMN 44, " Maestra de Personal ",
COLUMN 131, hora
PRINT COLUMN 2, "---------------------------------------------------",
"---------------------------------------------------" ,
"-------------------------------"
PRINT COLUMN 2, "FICHA NO.",
COLUMN 12, "NOMBRE EMPLEADO",
COLUMN 70, "CARGO",
COLUMN 110, "CEDULA",
COLUMN 125, "TIPO SANGRE"
PRINT COLUMN 2, "---------------------------------------------------",
"---------------------------------------------------" ,
"-------------------------------"
PRINT negrillas_off
## AQUI SE INDICA LA IMPRESION DEL DETALLE
ON EVERY ROW
PRINT COLUMN 3, x.num_emp USING "&&&&";
IF tipo_l = "N" THEN
PRINT COLUMN 12, x.nom1_emp clipped," ",x.nom2_emp clipped," ",
x.apell1_emp clipped," ",x.apell2_emp;
ELSE
PRINT COLUMN 12,x.apell1_emp clipped," ",x.apell2_emp clipped, " ",
x.nom1_emp clipped," ",x.nom2_emp;
END IF
PRINT COLUMN 70, x.nom_puesto,
COLUMN 105, x.cedula using "#<<<<<<<<","-",x.serie using "&&&&",
COLUMN 125, x.tipo_sangre
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) using "###"
PRINT comp_off
END REPORT