Cobol - COBOL - SEARCH ALL

 
Vista:
sin imagen de perfil

COBOL - SEARCH ALL

Publicado por Moises (1 intervención) el 18/03/2023 14:30:50
Buenos días.
Estoy empezando un curso de COBOL, y tengo una pregunta un tanto simple quizás para aquellos más experimentados, pero que, para mí, es difícil encontrar respuesta.

Le agradecería a alguien que pudiese explicarme el porqué.

Adjunto código:
-----------------------------------------

05 TBL-MES-ANYO REDEFINES MESES
OCCURS 12 TIMES
ASCENDING KEY IS AUX-KEY-MES
INDEXED BY NDX-I.
10 AUX-KEY-MES PIC X(10).


-----------------------------------------

Se puede ver la declaración de una tabla con ASCENDING KEY..

Y aquí una búsqueda:
-----------------------------------------


SEARCH ALL TBL-MES-ANYO
AT END
DISPLAY 'MES NO ENCONTRADO = ' AUX-BUSCAR
WHEN AUX-KEY-MES(NDX-I) = AUX-BUSCAR
SET AUX-I-DISPLAY TO NDX-I
DISPLAY 'MES ENCONTRADO = ' TBL-MES-ANYO(NDX-I)
' IND = ' AUX-I-DISPLAY
DISPLAY AUX-KEY-MES(NDX-I)
DISPLAY TBL-MES-ANYO(NDX-I)
END-SEARCH.


-----------------------------------------

Mi pregunta es , porqué se hace uso de AUX-KEY-MES(NDX-I) si es una clave ?
Acaso AUX-KEY-MES es una copia de TBL-MES-ANYO ?
Sería posible usar también en el WHEN la variable TBL-MES-ANYO(NDX-I) ?

Se que quizá para alguno de ustedes la respuesta sea simple, pero para mí es algo confuso saber cómo se comporta exactamente AUX.-KEY-MES.

Agradecería su ayuda.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de SuperIndio
Val: 32
Ha mantenido su posición en Cobol (en relación al último mes)
Gráfica de Cobol

COBOL - SEARCH ALL

Publicado por SuperIndio (35 intervenciones) el 21/04/2023 20:30:27
( Mi pregunta es , porqué se hace uso de AUX-KEY-MES(NDX-I) si es una clave ? )

Bueno No se quien te dijo que porque sea una clave no se deba usar...
Justamente para poder hacer una busqueda exacta donde el elemento buscado sea unico y exacto se necesita igualar a ese valor clave
( Acaso AUX-KEY-MES es una copia de TBL-MES-ANYO ?)
No es una copia sino que TBL-MES-ANYO es el nombre del Occurs por lo tanto forma parte del Occurs aunque en este caso es muy sencillo y se podria usar tambien TBL-MES-ANYO(NDX-I)
pero podrias tener varios elementos a nivel 10
y ahi no se serviria mucho poner TBL-MES-ANYO(nn) sino cada elemento en particular Ej

1
2
3
4
5
6
7
05 TBL-MES-ANYO REDEFINES MESES OCCURS 12 TIMES ASCENDING KEY IS AUX-KEY-MES INDEXED BY NDX-I.
   10 AUX-KEY-MES     PIC X(10).
   10 AUX-CAN-DIAS    PIC 9(02).
   10 CuantosCumples  PIC 9(02).
   10 CuantosFeriados PIC 9(02).
   10 CuantosSabados  PIC 9(02).
   10 CuantosLunes    PIC 9(02).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar