* PSDCBB
      PROGRAMA 'Programas que usan un recurrente'
      DOCUMENTACION 1 2
*D
*D    ESTE PROGRAMA SIRVE PARA BUSCAR QUE PROGRAMAS USAN
*D    UN RECURRENTE DE UN ARCHIVO ESPECIFICO, LA INFORMACION
*D    SE DESPLIEGA EN LA TERMINAL O SE IMPRIME.
*
*     DEFINIR AREAS PARA PREGUNTAR POR ARCHIVO, RECURRENTE Y AYUDA
*
      OPCION TERMINAL AREA 100 /RENGLON /POS. 3 5 /LONG. 9 70 $
      /MARCO /BN NO-E VI NO-E $
      /COLOR AMARILLO AMARILLO NEGRO AZUL BLANCO $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£' 3 '*Ayuda' $
      /CONDICION-EJECUTA '/F' '/M' $
      /INF-GLOBAL /TAB. 5 45 /CAMPOS 3 5 PREARC PRE-NOM-PER $
         PREREC PRE-NUM-REC TOI
*
      OPCION TERMINAL AREA 101 /COLUMNA 3 /POS. 9 20 /LONG. 11 60 $
      /MARCO /COLOR CELESTE CELESTE NEGRO /BN VI NO-E $
      /CAMPOS 'DBD' INI-DBD /VAR. NOM-PER /ESC. /CONTROL-DE-GRUPO $
       NOM-PER-EXT /VAR.
*
      OPCION TERMINAL AREA 102 /COLUMNA  /POS. 9 20   /LONG. 11 50 $
      /MARCO /COLOR CELESTE CELESTE NEGRO /BN VI NO-E $
      /CAMPOS NUM-REC /ESC. NOM-REC /ESC.
*
      OPCION TERMINAL AREA 103 /RENGLON 1 1 /POS. 10 5 /LONG. 11 70 $
      /MARCO /COLOR CELESTE CELESTE NEGRO /CONFIRMAR /CAMPOS $
      2 3 'Esta opcion sirve para desplegar $
          $o imprimir los programas que' $
      3 3 'usen un recurrente de un $
          $archivo permanente y como se usa.'   $
      4 3 '-Contestar SI a la PRIMER pregunta $
          $ocacionara se despliegen los' $
      5 4 'nombres de los archivos de las DBD $
          $para seleccionar uno.' $
      6 3 '-La SEGUNDA pregunta se debe contestar $
          $con el nombre del ARCHIVO.' $
      7 3 '-Contestar SI a la TERCER pregunta $
          $ocacionara se despliegen los' $
      8 4 'numeros y nombres de los recurrentes $
          $para seleccionalo.' $
      9 3 '-En la CUARTA pregunta se debe dar $
          $el numero del recurrente.' $
      10 3 '-Se pueden desplegar los programas por $
          $Terminal o bien Imprimir.'
*D
*D    PREGUNTAR SI SE DEPLIEGAN LOS DIFERENTES ARCHIVOS QUE HAY
*D    PARA ELLO SE RECORRE EL R0 EN FORMA SECUENCIAL Y SE
*D    DESPLIEGA EL CONTENIDO DEL R1
*
1     OPCION TERMINAL AREA 100 /DESPLEGAR
      LEER TERMINAL EJECUTA 25 PREARC
      SI PREARC = 'NO' EJECUTA 5
      OPCION TERMINAL AREA 101 /DESPLEGAR /SALVAR-ANTERIORES $
         /EMPALMAR
2     BUSCAR DISCO DOCSIS EJECUTA 4 SEC-G1
      LEER DISCO DOCSIS INI-DBD
      OPCION DISCO DOCSIS ORD-R1 A NOM-PER
      BUSCAR RECURRENTE DOCSIS 1 EJECUTA 2 ORD.
      LEER DISCO DOCSIS NOM-PER NOM-PER-EXT
      ESCRIBIR TERMINAL NOM-PER NOM-PER-EXT INI-DBD
3     BUSCAR RECURRENTE DOCSIS 1 EJECUTA 2 ORD.
      LEER DISCO DOCSIS NOM-PER NOM-PER-EXT
      ESCRIBIR TERMINAL NOM-PER NOM-PER-EXT
      EJECUTA 3
4     OPCION TERMINAL AREA 101 /TERMINAR
*D
*D    SE LEE EL NOMBRE DEL ARCHIVO Y SE BUSCA EL PRIMER
*D    PROGRAMA QUE LO USE EN EL R9. SE SACA LA FECHA DE ACTUALIZACION
*D    DEL R15  Y EL NOMBRE EXTENDIDO DEL R1
*
5     LEER TERMINAL EJECUTA 25 PRE-NOM-PER
      MOVER PRE-NOM-PER A NOM-PER-PRO
      BUSCAR DISCO DOCSIS EJECUTA 8 PRIN-G3 NOM-PER-PRO
      BUSCAR RECURRENTE DOCSIS 15 EJECUTA 6 SUP.
      LEER DISCO DOCSIS FEC-ACT HOR-ACT
      MOVER PRE-NOM-PER A NOM-PER
      BUSCAR RECURRENTE DOCSIS 1 EJECUTA 7 INF. NOM-PER
      LEER DISCO DOCSIS NOM-PER-EXT
      EJECUTA 10
6     ERROR 'ERROR 2 EN PSDCBB' 'NO TIENE FECHA DE ACTUALIZACION'
      FIN
7     ERROR 'ERROR 2 EN PSDCBB' 'NO EXISTE PERMANENTE'
      FIN
8     ERROR 'ARCHIVO INEXISTENTE O NO USADO'
      EJECUTA 5
*D
*D    PREGUNTAR SI SE DEPLIEGAN LOS DIFERENTES RECURENTES QUE HAY
*D    PARA ELLO SE RECORRE EL R2 EN FORMA ORDENADA
*
10    LEER TERMINAL EJECUTA 25 PREREC
      SI PREREC = 'NO' EJECUTA 15
      OPCION TERMINAL AREA 102 /DESPLEGAR /SALVAR-ANTERIORES $
         /EMPALMAR
11    BUSCAR RECURRENTE DOCSIS 2 EJECUTA 12 ANT.
      LEER DISCO DOCSIS NUM-REC NOM-REC
      ESCRIBIR TERMINAL NUM-REC NOM-REC
      EJECUTA 11
12    OPCION TERMINAL AREA 102 /TERMINAR
*D
*D    SE LEE EL RECURRENTE CUYOS PROGRAMAS SE DESEAN BUSCAR
*D    Y SE VALIDA CON INFORMACION DE R1 QUE EXISTA.
15    LEER TERMINAL EJECUTA 25 PRE-NUM-REC
      NUM-REC = PRE-NUM-REC
      BUSCAR RECURRENTE DOCSIS 2 EJECUTA 16 INF. NUM-REC
      LEER DISCO DOCSIS NOM-REC
      NUM-REC-PRO = NUM-REC
      EJECUTA 20
16    ERROR 'Recurrente NO existe'
      EJECUTA 15
*D
*D    PREGUNTA SI POR TERMINAL O IMPRESORA. Y DEFINE LOS LETREROS
*
20    LEER TERMINAL EJECUTA 25 TOI
      SI TOI =  'T' EJECUTA 50
      SI TOI =  'I' EJECUTA 30
      ERROR 'No tecleo T O I'
      EJECUTA 20
*D
*D    INVESTIGAR EJECUTA #
*
25    SACAR PARAMETROS CONDICION-EJECUTA COND
      SI COND = -1 EJECUTA 1000
      SI COND = 1  EJECUTA 1000
      SI COND = -4 EJECUTA 1000
      SI COND = 2  EJECUTA 999
      SI COND = -5 EJECUTA 999
      OPCION TERMINAL AREA 103 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      OPCION TERMINAL AREA 103 /TERMINAR
      EJECUTA 1
*D
*D    SE BUSCA EN EL GRUPO DE LLAVES 3, POR NO PRINCIPAL
*D    CON EL NOMBRE DEL ARCHIVO.
*D    SE REVISA SI SE USA EL RECURRENTE EN CADA PROGRAMA QUE USA
*D    EL ARCHIVO, PARA ELLO SE REVISA QUE EN R10 ESTE
*D    EL RECURRENTE Y QUE SU USO NO SEA 0.
*D    DE LOS ENCONTRADOS SE DESPLIEGA LA INFORMACION
*
30    OPCION   IMPRIMIR    COL. 120      FECHA   FEC                 $
      LET. 'PROGRAMAS QUE USAN UN RECURRENTE'                        $
      ENC.       2 GUION40   42 GUION40      82 GUION40              $
      ENC.       2 ULT-ACT   40 FEC-ACT VAR. 50 HOR-ACT     VAR.     $
      ENC. 1 '0' 2 NOM-PER   10 NOM-PER VAR. 40 NOM-PER-EXT VAR.     $
      ENC.      10 'R'       11 NUM-REC-PRO VAR. 40 NOM-REC VAR.     $
      ENC. 1 '0' 2 NOM-PRO-EXT  50 'DBD/SIS/GRU' 63 DIS-PRO 95 'USO' $
      ENC.       2 GUION40      42 GUION40       82 GUION40
*
      SACAR PARAMETROS FECHA FEC
      OPCION DISCO DOCSIS INICIO-G3
31    BUSCAR DISCO DOCSIS EJECUTA 999 NO-PRIN-G3 NOM-PER-PRO
      BUSCAR RECURRENTE DOCSIS 10 EJECUTA 31 INF. NUM-REC-PRO
      LEER DISCO DOCSIS USO-REC-PRO
      SI USO-REC-PRO = 0 EJECUTA 31
      LEER DISCO DOCSIS NOM-PRO NOM-PRO-EXT DIS-PRO
      LEER DISCO DOCSIS INI-DBD
      LEER DISCO DOCSIS NUM-SIS
      LEER DISCO DOCSIS NUM-GRU
*D
*D    SE DESPLIEGA COMO SE USA EL RECURRENTE, PARA ELLO CON LA TABLA
*D    CUP SE CONVIERTE EL VALOR NUMERICO DEL USO EN LAS LETRAS
*D    CORRESPONDIENTES.
*
      IGUAL AREA N10 COL
      IGUAL AREA N10 POS
      IGUAL AREA N20 USO
      IGUAL AREA X12 DESC
      COL = 95
      POS = 8
*
*     PARA UN CARAACTER DE *USO-REC-PRO* A *USO* Y BUSCAR EN CUP
*
33    USO = 0
      CONVERTIR USO-REC-PRO A USO POS. POS POS EJECUTA 37
      SI USO = 0 EJECUTA 34
      BUSCAR TABLA CUP EJECUTA 38 IGUAL USO DESC
      DETALLE COL DESC
*
*     TOMAR OTRO USO (SE ASUME NO MAS DE 5 CAMPOS)
*
34    COL = COL + 5
      POS = POS - 1
      SI POS >= 4 EJECUTA 33
*
*     TERMINAR EL RECURRENTE, IMPRIMIR INFORMACION
*
      IMPRIMIR  DETALLE                                              $
      2  NOM-PRO     10 NOM-PRO-EXT      50 INI-DBD                  $
      54 NUM-SIS     58 NUM-GRU          63 DIS-PRO 
      EJECUTA 31
*
*     ERRORES
*
37    ERROR 'ERROR 1 EN PSSIAH' 'ERROR AL CONVERTIR'
      FIN
38    ERROR 'ERROR 2 EN PSSIAH' 'ERROR AL BUSCAR EN CUP'
      FIN
*D
*D    DEFINIR EL AREA PARA DESPLEGARLOS Y USAR LA MISMA
*D    LOGICA DE IMPRESION.
*
      OPCION TERMINAL AREA 104 /RENGLON /POS. 5 5 /LONG. 5 70 $
      /MARCO /COLOR CELESTE CELESTE NEGRO /BN VI $
      /TAB. 5 20 /CAMPOS NOM-PER /ESC. 3 20 NOM-PER-EXT /VAR. $
              'R'4 6 NUM-REC-PRO /VAR.  NOM-REC /VAR.
*
      IGUAL AREA X1 XLEC
      IGUAL AREA X1 XESC
      IGUAL AREA X1 XINS
      IGUAL AREA X1 XBOR
      IGUAL AREA X2 XEXC
      OPCION TERMINAL AREA 105 /COLUMNA 2 /POS. 11 5 /LONG. 10 70 $
      /MARCO /COLOR AMARILLO AMARILLO NEGRO /BN VI NO-E NO-E $
      /CAMPOS NOM-PRO /ESC. NOM-PRO-EXT /ESC.  $
        2 53 'Uso: Lec/Esc/Ins' 3 53 '     Bor/Exc    ' $
       4 53 XLEC /VAR. XESC /VAR. XINS /VAR. XBOR /VAR. XEXC /VAR.
50    OPCION TERMINAL AREA 104 105 /DESPLEGAR
      ESCRIBIR TERMINAL NOM-PER NOM-PER-EXT  NOM-REC  NUM-REC-PRO
      OPCION DISCO DOCSIS INICIO-G3
51    BUSCAR DISCO DOCSIS EJECUTA 60 NO-PRIN-G3 NOM-PER-PRO
      LEER DISCO DOCSIS NOM-PRO NOM-PRO-EXT
      BUSCAR RECURRENTE DOCSIS 10 EJECUTA 51 INF. NUM-REC-PRO
      LEER DISCO DOCSIS USO-REC-PRO
      SI USO-REC-PRO = 0 EJECUTA 51
      ESCRIBIR TERMINAL NOM-PRO NOM-PRO-EXT
      USO = 0
      CONVERTIR USO-REC-PRO A USO POS. 8 8 EJECUTA 37
      SI USO = 0 EJECUTA 52
      MOVER 'L' A XLEC
      ESCRIBIR TERMINAL XLEC
      USO = 0
52    CONVERTIR USO-REC-PRO A USO POS. 7 8 EJECUTA 37
      SI USO = 0 EJECUTA 53
      MOVER 'E' A XESC
      ESCRIBIR TERMINAL XESC
      USO = 0
53    CONVERTIR USO-REC-PRO A USO POS. 6 8 EJECUTA 37
      SI USO = 0 EJECUTA 54
      MOVER 'I' A XINS
      ESCRIBIR TERMINAL XINS
      USO = 0
54    CONVERTIR USO-REC-PRO A USO POS. 5 8 EJECUTA 37
      SI USO = 0 EJECUTA 55
      MOVER 'B' A XBOR
      ESCRIBIR TERMINAL XBOR
      USO = 0
55    CONVERTIR USO-REC-PRO A USO POS. 4 8 EJECUTA 37
      SI USO = 0 EJECUTA 51
      MOVER 'EX' A XEXC
      ESCRIBIR TERMINAL XEXC
      EJECUTA 51
60    OPCION TERMINAL AREA 104 105 /TERMINAR
*
999   FIN  'DCME'
1000 FIN
