{
===========================================================================
PROGRAMA        : ADPRRP001
OBJETIVO        : Listar los departamentos
FECHA           : Junio 22, 1993
REALIZADO POR   : Ing. Betania Guerrero
===========================================================================
}
GLOBALS "adprgb000.4gl"

FUNCTION adprrp001()
  DEFINE list_depto RECORD
         dpto          LIKE adtb00033.dpto,
         departamento  LIKE adtb00033.departamento,
         nom_dpto      LIKE adtb00033.nom_dpto,
         estado_a      LIKE adtb00029.estado_a,
         estado_m      LIKE adtb00029.estado_m,
         depto_ant     LIKE adtb00029.depto_ant
  END RECORD


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

    CLEAR SCREEN

    OPEN FORM adfmrp038 FROM "adfmrp038"
    DISPLAY FORM adfmrp038
    CALL pantalla()
    DISPLAY "adprrp001" AT 4,3 ATTRIBUTE(RED)
    DISPLAY "Listado de Departamentos" AT 6,34 ATTRIBUTE(BLACK)

    LET tipo_papel = 1
    CALL msgrp000(tipo_papel)
        CALL defecto(impresor) RETURNING imprime, letras.*, archivo

CONSTRUCT BY NAME criterio ON a.dpto

 ON KEY(CONTROL-P)
      CALL busca_printer() RETURNING imprime,letras.*, archivo
    AFTER CONSTRUCT
    EXIT CONSTRUCT
  END CONSTRUCT

  LET parametro = "D"
   CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*

LET selec =
       " select a.dpto,a.departamento,a.nom_dpto,b.estado_a,b.estado_m, ",
       " b.depto_ant ",
       " from adtb00033 a,adtb00029 b ",
       " where a.departamento = b.departamento AND ",criterio CLIPPED,
       " order by 1,2"

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 depto TO archivo
   
WHILE STATUS != NOTFOUND
    FETCH accion INTO list_depto.* 
      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 depto(list_depto.*) 
    END WHILE  
    FINISH REPORT depto
    #RUN imprime
    CALL fdestino(destino,archivo,imprime) 
    CLEAR SCREEN

END FUNCTION

REPORT depto(x)
  DEFINE x RECORD
      dpto          LIKE adtb00033.dpto,
      departamento  LIKE adtb00033.departamento,
      nom_dpto      LIKE adtb00033.nom_dpto,
      estado_a      LIKE adtb00029.estado_a,
      estado_m      LIKE adtb00029.estado_m,
      depto_ant     LIKE adtb00029.depto_ant
  END RECORD

define 
    hora char(5),
    l smallint


output 
    top margin 0
    bottom margin 3
    left margin 0
    


format 
 page header
  LET hora = time
  

      print column  2, "adprrp001",
            column 15, letras.negrillas_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 70, "Pag. ", pageno using "###"
      print column  1, letras.negrillas_on,
            column 22, "Sistema de Administracion de Personal",
            column 65, letras.negrillas_off,
            column 70, today using "dd/mm/yyyy"
      print column  1, letras.negrillas_on,
            column 29, "Catalogo Departamentos",
            column 65, letras.negrillas_off,
            column 73, hora

  PRINT letras.doce  
  print column 1,
"===============================================================",
"==========================="
  print column  5, "Numero",
        column 12, "Descripcion",
        column 60, "Estado A",
        column 70, "Estado M",
        column 80, "Equivalente"
  print column 1,
"===============================================================",
"==========================="

before group of x.dpto
 print letras.negrillas_on
 let l = 6

 on every row 
  print column  l, x.departamento using "&&&&",
        column l+6, x.nom_dpto,letras.negrillas_off,
        column 60, x.estado_a,
        column 70, x.estado_m,
        column 80, x.depto_ant using "&&&&"
   let l = 12

on last row
print letras.normal
END REPORT 
