*PSDCAA
      PROGRAMA 'Localizar un programa por DBD-SIS-GRU'
      DOCUMENTACION 1 2
*D
*D    ESTE PROGRAMA SIRVE PARA LOCALIZAR UN PROGRAMA, CONOCIENDO
*D    LA DBD A QUE PERTENECE Y SELECCIONANDO EL SISTEMA Y GRUPO
*D    EN DONDE SE ENCUENTRA.
*D
*D    SE DESPLIEGAN LAS DBD PARA QUE SELECCIONE CUAL ES
*D    PARA ELLO SE RECORRE EL R0 EN FORMA SECUENCIAL
*D    Y LOS R6 Y R7 PARA CONTAR LOS PROGRAMAS DE ESTA DBD
*D    SI TIENE CERO NO SE DESPLIEGA.
*
*     DEFINIR AREA DE SELECCION DE DBD Y AYUDA
*
      IGUAL DOCSIS INI-DBD INI-DBD-V
      VECTOR INI-DBD-V RANGO 1 100
      IGUAL AREA N10 SUB-D
      OPCION TERMINAL AREA 100 /MENU /POS. 2 3 /LONG. 10 10  $
      /MARCO /BN N-E VI NO-E $
      /COLOR MAGENTA MAGENTA NEGRO CELESTE NEGRO MAGENTA NEGRO $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£' 3 '*Ayuda' $
      /CAMPOS 'DBD' /ENC. INI-DBD-V /VAR-OP. SUB-D /VAR-SEL.
      OPCION TERMINAL AREA 101 /RENGLON 1 1 /POS. 14 3 /LONG. 5 70 $
      /MARCO /COLOR CELESTE CELESTE NEGRO /CONFIRMAR /CAMPOS $
      2 3 'Este programa sirve para seleccionar $
          $un Programa conociendo' $
      3 3  'la DBD, el Sistema y el Grupo a que $
          $pertenece.' $
      4 3 'Es necesario seleccionar la DBD.'
*
*     DESPLEGAR Y LEER DBD
*
      OPCION TERMINAL AREA 100 /DESPLEGAR
1     SUB-D = 0
      OPCION DISCO DOCSIS INICIO-G1
2     BUSCAR DISCO DOCSIS EJECUTA 5 SEC-G1
      IGUAL AREA N10 TOT-PRO-DBD
      TOT-PRO-DBD = 0
3     BUSCAR RECURRENTE DOCSIS 6 EJECUTA 2 ANT.
4     BUSCAR RECURRENTE DOCSIS 7 EJECUTA 3 ANT.
      LEER DISCO DOCSIS TOT-NUM-PRO
      TOT-PRO-DBD = TOT-PRO-DBD + TOT-NUM-PRO
      SI TOT-PRO-DBD = 0 EJECUTA 4
      SUB-D = SUB-D + 1
      LEER DISCO DOCSIS INI-DBD-V ( SUB-D )
      ESCRIBIR TERMINAL INI-DBD-V ( SUB-D )
      EJECUTA 2
5     SI SUB-D > 0 EJECUTA 6
      ERROR 'ARCHIVO SIN INFORMACION'
      FIN
6     LEER TERMINAL EJECUTA 8 SUB-D
      BUSCAR DISCO DOCSIS EJECUTA 900 PRIN-G1 INI-DBD-V ( SUB-D )
      EJECUTA 10
*
*     PROCESAR CONDICIONES EN DBD
*
8     SACAR PARAMETROS CONDICION-EJECUTA COND
      SI COND = 1 EJECUTA 1000
      SI COND = 2 EJECUTA 999
      OPCION TERMINAL AREA 101 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      OPCION TERMINAL AREA 101 /TERMINAR
      EJECUTA 6
*D
*D    DESPLEGAR LOS SISTEMAS DE ESTA DBD PARA QUE SE SELECCIONE
*D    DONDE ESTA EL PROGRAMA. PARA ELLO SE LEE EL R6 ORDENADO
*D    SE REVISA QUE TENGA PROGRAMAS.
*
*     DEFINIR AREA SELECCION DE SISTEMAS Y AYUDA
*
      IGUAL DOCSIS NUM-SIS NUM-SIS-V
      VECTOR NUM-SIS-V RANGO 1 30
      IGUAL AREA N10 SUB-NS
      IGUAL AREA N10 IND-GRU-CERO
      OPCION TERMINAL AREA 102 /MENU /POS. 5 6 /LONG. 10 54  $
      /MARCO /BN N-E VI NO-E $
      /COLOR CELESTE CELESTE NEGRO BLANCO NEGRO CELESTE NEGRO $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£' 3 '*Ayuda' $
      5 'Sel. DBD' /CAMPOS 'Sistemas' /ENC.  SUB-NS /VAR-SEL.  $
      NUM-SIS /VAR-OP. NOM-SIS /VAR-OP.
      OPCION TERMINAL AREA 103 /RENGLON 1 1 /POS. 14 6 /LONG. 7 70 $
      /MARCO /COLOR BLANCO BLANCO NEGRO $
      /CONFIRMAR /BN NO-E NO-E VI /CAMPOS $
      2 3 'Este programa sirve para seleccionar $
          $un Programa conociendo' $
      3 3 'la DBD, el Sistema y el Grupo a que $
          $pertenece.' $
      4 3 X30 /VAR. $
      5 3 'Es necesario seleccionar el Sistema.' $
      6 3 'Teclear F5 se selecciona DBD'
*
*     DESPLEGAR Y LEER SISTEMAS
*
10    OPCION TERMINAL AREA 102 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
11    SUB-NS = 0
      OPCION DISCO DOCSIS ORD-R6 A NUM-SIS
12    BUSCAR RECURRENTE DOCSIS 6 EJECUTA 14 ORD.
      LEER DISCO DOCSIS NUM-SIS NOM-SIS TOT-NUM-GRU
      SI TOT-NUM-GRU = 0 EJECUTA 12
      IGUAL AREA N10 TOT-PRO-SIS
      TOT-PRO-SIS = 0
13    BUSCAR RECURRENTE DOCSIS 7 EJECUTA 12 ANT.
      LEER DISCO DOCSIS TOT-NUM-PRO
      TOT-PRO-SIS = TOT-PRO-SIS + TOT-NUM-PRO
      SI TOT-NUM-PRO = 0 EJECUTA 13
      SUB-NS = SUB-NS + 1
      NUM-SIS-V ( SUB-NS ) = NUM-SIS
      ESCRIBIR TERMINAL NUM-SIS NOM-SIS
      EJECUTA 12
14    SI SUB-NS > 0 EJECUTA 15
      ERROR 'ERROR 2 PSDCAA' 'DBD sin sistemas'
      FIN
15    LEER TERMINAL EJECUTA 17  SUB-NS
      BUSCAR RECURRENTE DOCSIS 6 EJECUTA 901 INF. NUM-SIS-V ( SUB-NS )
      LEER DISCO DOCSIS NOM-SIS TOT-NUM-GRU
*
*     CASO ESPECIAL DE CERO GRUPOS
*
      IND-GRU-CERO = 0
      SI TOT-NUM-GRU <> 1 EJECUTA 20
      NUM-GRU = 0
      BUSCAR RECURRENTE DOCSIS 7 EJECUTA 20 INF. NUM-GRU
      IND-GRU-CERO = 1
      MOVER ' ' A NOM-GRU
      EJECUTA 30
*
*     PROCESAR CONDICIONES EN SISTEMAS
*
17    SACAR PARAMETROS CONDICION-EJECUTA COND
      SI COND = 1 EJECUTA 1000
      SI COND = 2 EJECUTA 999
      SI COND = 5 EJECUTA 18
      OPCION TERMINAL AREA 103 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      MOVER 'La DBD seleccionada es la' A X30
      MOVER INI-DBD-V ( SUB-D ) A X30 /AGREGAR
      ESCRIBIR TERMINAL X30  
      OPCION TERMINAL AREA 103 /TERMINAR
      EJECUTA 15
18    OPCION TERMINAL AREA 102 /TERMINAR
      OPCION TERMINAL AREA 100 /INICIO-USO-PRIMARIO
      EJECUTA 1
*D
*D    DESPLEGAR LOS GRUPOS DE ESTE SISTEMA Y DBD PARA QUE SE SELECCIONE
*D    DONDE ESTA EL PROGRAMA. PARA ELLO SE LEE EL R7 ORDENADO
*
*     DEFINIR AREA SELECCION DE GRUPOS Y AYUDA
*
      IGUAL DOCSIS NUM-GRU NUM-GRU-V
      VECTOR NUM-GRU-V RANGO 1 30
      IGUAL AREA N10 SUB-NG
      OPCION TERMINAL AREA 104 /MENU /POS. 8 9 /LONG. 10 54  $
      /MARCO /BN N-E VI NO-E $
      /COLOR BLANCO BLANCO NEGRO AMARILLO NEGRO BLANCO NEGRO     $
      /TECLAS-DE-FUNCION 1 'Terminar' 2 'Men£' 3 '*Ayuda' $
      5 'Sel. DBD' 6 'Sel. SIS' $
      /CAMPOS 'Grupos' /ENC.  SUB-NG /VAR-SEL.  $
      NUM-GRU /VAR-OP. NOM-GRU /VAR-OP.
      OPCION TERMINAL AREA 105 /RENGLON 1 1 /POS. 13 9 /LONG. 9 70 $
      /MARCO /COLOR AMARILLO AMARILLO NEGRO $
      /CONFIRMAR /BN NO-E NO-E VI /CAMPOS $
      2 3 'Este programa sirve para seleccionar $
          $un Programa conociendo' $
      3 3 'la DBD, el Sistema y el Grupo a que $
          $pertenece.' $
      4 3 X30 /VAR.  $
      5 3 X50  /VAR.  $
      6 3 'Es necesario seleccionar el Grupo.' $
      7 3 'Teclear F5 es seleccionar DBD' $
      8 3 'Teclear F6 es seleccionar sistema'
*
*     DESPLEGAR Y LEER GRUPOS
*
20    OPCION TERMINAL AREA 104 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
21    SUB-NG = 0
      OPCION DISCO DOCSIS ORD-R7 A NUM-GRU
22    BUSCAR RECURRENTE DOCSIS 7 EJECUTA 23 ORD.
      LEER DISCO DOCSIS NUM-GRU NOM-GRU TOT-NUM-PRO
      SI TOT-NUM-PRO = 0 EJECUTA 22
      SUB-NG = SUB-NG + 1
      NUM-GRU-V ( SUB-NG ) = NUM-GRU
      ESCRIBIR TERMINAL NUM-GRU NOM-GRU
      EJECUTA 22
23    SI SUB-NG > 0 EJECUTA 24
      ERROR 'ERROR 2 PSDCAA' 'SISTEMA SIN GRUPOS'
      FIN
24    LEER TERMINAL EJECUTA 25  SUB-NG
      BUSCAR RECURRENTE DOCSIS 7 EJECUTA 902 INF. NUM-GRU-V ( SUB-NG )
      LEER DISCO DOCSIS NOM-GRU
      EJECUTA 30
*
*     PROCESAR CONDICIONES EN GRUPOS
*
25    SACAR PARAMETROS CONDICION-EJECUTA COND
      SI COND = 1 EJECUTA 1000
      SI COND = 2 EJECUTA 999
      SI COND = 5 EJECUTA 26
      SI COND = 6 EJECUTA 27
      OPCION TERMINAL AREA 105 /DESPLEGAR /SALVAR-ANTERIORES /EMPALMAR
      MOVER 'La DBD seleccionada es la' A X30
      MOVER INI-DBD-V ( SUB-D ) A X30 /AGREGAR
      MOVER 'El SISTEMA seleccionado es' A X50
      MOVER NOM-SIS A X50 /AGREGAR
      ESCRIBIR TERMINAL X30 X50 
      OPCION TERMINAL AREA 105 /TERMINAR
      EJECUTA 23
26    OPCION TERMINAL AREA 104 /TERMINAR
      OPCION TERMINAL AREA 102 /TERMINAR
      OPCION TERMINAL AREA 100 /INICIO-USO-PRIMARIO
      EJECUTA 1
27    OPCION TERMINAL AREA 104 /TERMINAR
      OPCION TERMINAL AREA 102 /INICIO-USO-PRIMARIO
      EJECUTA 11
*D
*D    DESPLEGAR PROGRAMAS DE ESTA DBD-SISTEMA-GRUPO, PARA ELLO
*D    RECORRER EL R8 EN FORMA ORDENADA
*
*     DEFINIR AREAS PARA DESPLEGARLOS
*
      OPCION TERMINAL AREA 106 /RENGLON /POS. 2 20 /LONG. 5 55 $
      /MARCO /BN NO-E NO-E VI /TAB. 3 13 $
      /COLOR AMARILLO AMARILLO NEGRO  /CAMPOS $
      'DBD' INI-DBD-V /VAR. 'Sistema' NOM-SIS /VAR. /LONG. 30 $
       'Grupo' NOM-GRU /VAR. /LONG. 30
      OPCION TERMINAL AREA 107 /COLUMNA /POS. 11 20 /LONG. 10 55 $
      /BN VI NO-E /MARCO /COLOR AMARILLO AMARILLO NEGRO /CAMPOS $
       NOM-PRO /ESC. NOM-PRO-EXT /VAR.
*
30    OPCION TERMINAL AREA 106 107 /DESPLEGAR /SALVAR-ANTERIORES $
         /EMPALMAR
      ESCRIBIR TERMINAL INI-DBD-V ( SUB-D ) NOM-SIS NOM-GRU
*
      OPCION DISCO DOCSIS ORD-R8 A NOM-PRO
31    BUSCAR RECURRENTE DOCSIS 8 EJECUTA 32 ORD.
      LEER DISCO DOCSIS NOM-PRO NOM-PRO-EXT
      ESCRIBIR TERMINAL NOM-PRO NOM-PRO-EXT
      EJECUTA 31
*
*D    TERMINAR. REGRESA DENTRO DE ESTE PROGRAMA A GRUPOS
*D    O SISTEMAS O BIEN AL PSDCAB SI ESTE LO LLAMO.
*
32    OPCION TERMINAL AREA 106 107 /TERMINAR
      IGUAL AREA X4 XPRO
      SACAR PARAMETROS PROGRAMA-ANTERIOR XPRO
      SI XPRO = 'DCAB' EJECUTA 34
      SI IND-GRU-CERO = 1 EJECUTA 33
      OPCION TERMINAL AREA 104 /INICIO-USO-PRIMARIO
      EJECUTA 21
33    OPCION TERMINAL AREA 102 /INICIO-USO-PRIMARIO
      EJECUTA 11
34    FIN 'DCAB'
*
*     ERRORES
*
900   ERROR 'ERROR 1 EN PSDCAA' 'NO EXISTE DBD'
      FIN
901   ERROR 'ERROR 1 EN PSDCAA' 'NO EXISTE SISTEMA'
      FIN
902   ERROR 'ERROR 1 EN PSDCAA' 'NO EXISTE GRUPO'
      FIN
999   FIN 'DCME'
1000  FIN
