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

210 lines
5.9 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : ADPRRP027
OBJETIVO : RESUMEN HIJOS DE EMPLEADOS
PROGRAMADOR : Ing. Betania Guerrero Perez
FECHA REALIZACION : Noviembre 30, 1993
-------------------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"
DEFINE edad_h SMALLINT
FUNCTION adprrp027()
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
DEFINE resumen RECORD
fecha_nac LIKE adtb00021.fecha_nac,
sexo LIKE adtb00021.sexo,
edad INTEGER,
descripcion CHAR(15)
END RECORD,
edad1 INTEGER
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
CLEAR SCREEN
OPEN FORM adfmrp027 FROM "adfmrp027"
DISPLAY FORM adfmrp027
CALL pantalla()
DISPLAY "adprrp027" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Resumen Hijos de Empleados" AT 6,29 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 EL CRITERIO DE BUSQUEDA PARA LA IMPRESION DEL REPORTE
INPUT BY NAME edad_h
ON KEY(CONTROL-P)
CALL busca_printer() RETURNING imprime,letras.*, archivo
AFTER INPUT
EXIT INPUT
END INPUT
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 a.fecha_nac,a.sexo ",
"FROM adtb00021 a ",
"WHERE a.cod_par = 4 AND a.status_t is null "
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
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
START REPORT resu_hijo TO archivo
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE SALIDA
## AL REPORTE
FOREACH accion INTO resumen.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET resumen.descripcion = " "
LET resumen.edad = 0
LET edad1 = 0
LET edad1 = TODAY - resumen.fecha_nac
IF edad1 < 30 THEN
LET resumen.descripcion = "ADia(s)"
LET resumen.edad = edad1
END IF
IF edad1 >= 30 AND edad1 < 365 THEN
LET resumen.descripcion = "BMes(es)"
LET resumen.edad = edad1/30
END IF
IF edad1 >= 365 THEN
LET resumen.descripcion = "CAno(s)"
LET resumen.edad = edad1/365
END IF
IF resumen.edad <= edad_h AND
resumen.descripcion = "CAno(s)" THEN
OUTPUT TO REPORT resu_hijo(resumen.*)
END IF
IF resumen.descripcion = "BMes(es)" THEN
OUTPUT TO REPORT resu_hijo(resumen.*)
END IF
END FOREACH
FINISH REPORT resu_hijo
RUN imprime
CLEAR SCREEN
END FUNCTION
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
REPORT resu_hijo(x)
DEFINE x RECORD
fecha_nac LIKE adtb00021.fecha_nac,
sexo LIKE adtb00021.sexo,
edad INTEGER,
descripcion CHAR(15)
END RECORD
## DEFINICION DE LAS VARIABLES DE IMPRESION
DEFINE hora CHAR(5)
DEFINE bandera CHAR(1)
OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 3
ORDER BY x.descripcion,x.edad,x.sexo DESC
FORMAT
PAGE HEADER
LET hora = time
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
PRINT COLUMN 1, letras.normal,
COLUMN 2, "adprrp027",
COLUMN 14, letras.doble_on,
COLUMN 15, letras.negrillas_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 77, "Pag. ",pageno using "###"
PRINT COLUMN 23, "Sistema de Administracion de Personal",
COLUMN 76, today using "dd/mm/yyyy"
PRINT COLUMN 29, "Resumen Hijos de Empleados",
COLUMN 79, hora
SKIP 1 LINE
PRINT COLUMN 1, "---------------------------------------------------",
"--------------------------------"
PRINT COLUMN 1, letras.negrillas_on,
COLUMN 2, "EDAD",
COLUMN 17, "MASCULINO",
COLUMN 30, "FEMENINO",
COLUMN 42, "TOTAL",
COLUMN 50, letras.negrillas_off
PRINT COLUMN 1, "---------------------------------------------------",
"--------------------------------"
skip 1 line
## AQUI SE INDICA LA IMPRESION DEL DETALLE
BEFORE GROUP OF x.edad
PRINT COLUMN 1, x.edad using "##",
COLUMN 4, x.descripcion[2,15] clipped;
AFTER GROUP OF x.sexo
IF x.sexo = "M" THEN
PRINT COLUMN 18, GROUP COUNT(*) using "##";
ELSE
PRINT COLUMN 31, GROUP COUNT(*) using "##";
END IF
AFTER GROUP OF x.edad
PRINT COLUMN 42, GROUP COUNT(*) using "##"
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 1, letras.negrillas_on,
COLUMN 2, "TOTALES: ",
COLUMN 43, COUNT(*) using "###",
COLUMN 50, letras.negrillas_off
END REPORT