{
-------------------------------------------------------------------------------
PROGRAMA              :  ADPRRP015
OBJETIVO              :  LISTA LOS ADIESTRAMIENTOS QUE HAN RECIBIDO 
                         LOS EMPLEADOS Y UN TOTAL DE LOS ADIESTRAMIENTOS 
                         QUE HA RECIBIDO CADA UNO DE ELLOS
PROGRAMADOR           :  Ing. Betania Guerrero Perez
FECHA REALIZACION     :  Junio 25, 1993
-------------------------------------------------------------------------------
}
GLOBALS "adprgb000.4gl"

FUNCTION adprrp015()

## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
    DEFINE l_adiestra RECORD
       num_emp      LIKE adtb00022.num_emp,
       departamento LIKE adtb00022.departamento,
       nivel_emp    LIKE adtb00022.nivel_emp,
       cod_puesto   LIKE adtb00022.cod_puesto,
       nom1_emp     LIKE adtb00003.nom1_emp,
       apell1_emp   LIKE adtb00003.apell1_emp,
       nom_puesto   LIKE adtb00004.nom_puesto,
       nom_evento   LIKE adtb00022.nom_evento,
       fech_evento  LIKE adtb00022.fech_evento,
       costo_evento LIKE adtb00022.costo_evento
    END RECORD

  #WHENEVER ERROR CONTINUE

    OPTIONS
       FORM LINE 8,
       ERROR LINE 23,
       COMMENT LINE 21

    CLEAR SCREEN

    OPEN FORM adfmrp005 FROM "adfmrp005"
    DISPLAY FORM adfmrp005
    CALL pantalla()
    DISPLAY "adprrp015" AT 4,3 ATTRIBUTE(RED)
    DISPLAY "Adiestramientos Empleados" 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


## DEFINICION DEL CRITERIO DE BUSQUEDA PARA LA IMPRESION DEL REPORTE
    CONSTRUCT criterio ON a.num_emp FROM num_emp

 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 a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto,b.nom1_emp, ",
     "       b.apell1_emp,c.nom_puesto,a.nom_evento,a.fech_evento, ",
     "       a.costo_evento ",
     "FROM adtb00022 a,adtb00003 b,adtb00004 c ",
     "WHERE a.num_emp = b.num_emp AND a.departamento = b.departamento AND ",
     "      a.nivel_emp = b.nivel_emp AND a.cod_puesto = b.cod_puesto AND ",
     "      a.cod_puesto= c.cod_puesto AND a.status_t is null AND ",
     criterio clipped," ORDER BY 1"

     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 

    DECLARE accion CURSOR FOR busca

      DISPLAY "                                         " AT 19,14
      DISPLAY "<< Reporte Generandose ...  Por Favor Espere. >>" 
              AT 19,14 ATTRIBUTE (REVERSE) 

    START REPORT adiestrar TO archivo
         
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE SALIDA
## AL REPORTE
    FOREACH accion INTO l_adiestra.* 

    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 adiestrar(l_adiestra.*)
       END IF
    END FOREACH
    FINISH REPORT adiestrar
    RUN imprime

    CLEAR SCREEN

END FUNCTION

## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
## EL REPORTE
    REPORT adiestrar(x)
       DEFINE x RECORD
       num_emp      LIKE adtb00022.num_emp,
       departamento LIKE adtb00022.departamento,
       nivel_emp    LIKE adtb00022.nivel_emp,
       cod_puesto   LIKE adtb00022.cod_puesto,
       nom1_emp     LIKE adtb00003.nom1_emp,
       apell1_emp   LIKE adtb00003.apell1_emp,
       nom_puesto   LIKE adtb00004.nom_puesto,
       nom_evento   LIKE adtb00022.nom_evento,
       fech_evento  LIKE adtb00022.fech_evento,
       costo_evento LIKE adtb00022.costo_evento
       END RECORD
 
## DEFINICION DE LAS VARIABLES DE IMPRESION
    DEFINE hora CHAR(5)
    DEFINE num_ad,l SMALLINT
    DEFINE monto DECIMAL(10,2)

    OUTPUT
## DEFINICION DE LOS MARGENES DE IMPRESION
     TOP MARGIN 0
      LEFT MARGIN 0
      BOTTOM MARGIN 3

    FORMAT
      PAGE HEADER
       
        LET hora = time

## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
           PRINT COLUMN  1, letras.comp_on,letras.negrillas_on 
           PRINT COLUMN   1, "adprrp015",
                 COLUMN  33, "R A Y . O . V A C  D O M I N I C A N A,  S. A.",
                 COLUMN 105, "Pag. ",pageno USING "###"
           PRINT COLUMN  33, "    Sistema de Administracion de Personal", 
                 COLUMN 105, today USING "dd/mm/yyyy"
           PRINT COLUMN  33, "          Adiestramientos Empleados",
                 COLUMN 108, hora

        PRINT COLUMN 2, "---------------------------------------------------",
                        "---------------------------------------------------",
                        "----------"

         PRINT COLUMN  2, "Adiestramientos:",
               COLUMN 51, "Fechas Eventos:",
               COLUMN 83, "Costos:"

        PRINT COLUMN 2, "----------------------------------------------------",
                        "---------------------------------------------------",
                        "---------"
        PRINT COLUMN 14, letras.negrillas_off

## AQUI SE INDICA LA IMPRESION DEL DETALLE
    BEFORE GROUP OF x.num_emp
         PRINT COLUMN  1, letras.negrillas_on,
               COLUMN  2, x.num_emp USING "&&&&","-",
               COLUMN  7, x.departamento USING "&&&&","-",
               COLUMN 12, x.nivel_emp USING "&&","-",
               COLUMN 15, x.cod_puesto USING "&&",
               COLUMN 19, x.nom1_emp clipped," ",x.apell1_emp clipped,
               COLUMN 51, x.nom_puesto,
               COLUMN 120, letras.negrillas_off
    
      ON EVERY ROW
## AQUI SE INCREMENTA LA VARIABLE QUE GUARDA LA CANTIDAD DE ADIESTRAMIENTOS
## RECIBIDOS POR CADA EMPLEADO Y EL COSTO DE CADA ADIESTRAMIENTO
         PRINT COLUMN  2, x.nom_evento CLIPPED,
               COLUMN 54, x.fech_evento USING "dd/mm/yyyy",
               COLUMN 77, x.costo_evento USING "#,###,###.##"

      AFTER GROUP OF x.num_emp
## AQUI SE IMPRIME EL TOTAL DE ADIESTRAMIENTOS RECIBIDOS POR CADA EMPLEADO
         PRINT COLUMN 77, "------------"
         PRINT COLUMN  2, "ADIESTRAMIENTOS RECIBIDOS: ", 
                         GROUP COUNT(*) USING "#<",
               COLUMN 63, "TOTAL COSTO:",
               COLUMN 77, GROUP SUM(x.costo_evento) USING "#,###,###.##"
         SKIP 1 LINE

      ON LAST ROW
## AQUI SE APAGA EL CARACTER DE IMPRESION COMPRIMIDO
         PRINT ASCII 18
         PRINT ASCII 27, ASCII 80

 END REPORT

