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