Resultados 1 al 5 de 5

Tema: ¿Definir una tabla de referencias de objetos?

  1. #1
      Representante Oficial
    Avatar de KTSnowy

    Registrado
    enero de 2023
    Ubicación
    Rio De Janeiro
    Edad
    26
    Mensajes
    16
    Última visita
    07.12.2023

    Agradecimientos
     
    Recibidos
    26
    Enviados
    9

    Citaciones y menciones
     
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    1 Post(s)
    Poder de Reputación
    0

    Predeterminado ¿Definir una tabla de referencias de objetos?

    ¿Hay alguna manera de definir una tabla de referencias de objetos?

    Estoy tratando de averiguar si es posible definir una tabla donde cada elemento tenga un uso de referencia de objeto.

    Recientemente me pidieron que apareciera en una presentación en vivo para mostrar el compilador Otterkit y quería mostrar algo interesante sobre COBOL.

    De acuerdo con el último estándar COBOL, la referencia del objeto de uso solo se puede definir en un elemento de datos de nivel 01 y las tablas no se pueden definir en elementos de datos de nivel 01. ¿Quizás un TYPEDEF funcionaría?

    Estoy tratando de escribir algo como List<T> usando tablas y genéricos, pero este problema haría imposible hacer una lista genérica de objetos. ¿Me estoy perdiendo de algo? ¿Es posible definir una tabla de objetos?

    0 Not allowed!

  2. #2
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @KTSnowy, no entiendo muy bien tu propuesta.

    Te refieres a una tabla con elementos diferentes ?

    Algo como esto:

    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.        PROGRAM-ID. YOUR-PROGRAM-NAME.
    3.        DATA DIVISION.
    4.        FILE SECTION.
    5.        WORKING-STORAGE SECTION.
    6.        01 tabla OCCURS 999 times.
    7.          02 tipo pic x.
    8.          02 tipo1.
    9.              03 descripcion1 pic x(100).
    10.          02 tipo2 redefines tipo1.
    11.              03 importe2 pic 9(10).
    12.          02 tipo3 redefines tipo1.
    13.              03 importe3 pic s9(10)v99.    
    14.        01 i pic 9(4).      
    15.        01 tope pic 9(4).      
    16.        PROCEDURE DIVISION.
    17.        MAIN-PROCEDURE.
    18.             move '1' to tipo(1)
    19.             move 'pepe' to descripcion1(1)
    20.             move '2' to tipo(2)
    21.             move 123 to importe2(2)
    22.             move '3' to tipo(3)
    23.             move 3.4 to importe3(3)
    24.             move '1' to tipo(4)
    25.             move 'pepa' to descripcion1(4)
    26.             move 4 to tope
    27.             perform test after varying i from 1 by 1 until i = 999
    28.                                or i = tope
    29.               evaluate tipo(i)
    30.               when '1'
    31.                  display descripcion1(i)
    32.               when '2'
    33.                  display importe2(i)
    34.               when '3'
    35.                  display importe3(i)
    36.             end-perform.                  
    37.             STOP RUN.
    38.        END PROGRAM YOUR-PROGRAM-NAME.

    Yo esto lo utilizo bastante y si son muchos elementos utilizo un fichero para simular la tabla

    0 Not allowed!

  3. #3
      Representante Oficial
    Avatar de KTSnowy

    Registrado
    enero de 2023
    Ubicación
    Rio De Janeiro
    Edad
    26
    Mensajes
    16
    Última visita
    07.12.2023

    Agradecimientos
     
    Recibidos
    26
    Enviados
    9

    Citaciones y menciones
     
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    1 Post(s)
    Poder de Reputación
    0

    Predeterminado

    @JCantero, Me refiero a una tabla de referencias de objetos usando "USAGE OBJECT REFERENCE".

    Algo como esto:

    COBOL Código:
    1. WORKING-STORAGE SECTION.
    2.     01 OBJECTS TYPEDEF STRONG.
    3.         02 OBJ USAGE OBJECT REFERENCE OCCURS X TIMES.
    4.    
    5.     01 OBJECT-TABLE TYPE OBJECTS.
    6. ...
    7.  
    8. MOVE ClassName :: "New" TO OBJ OF OBJECT-TABLE (INDEX).

    Pero no estoy seguro de si esto es sintácticamente correcto y si es posible definir una tabla de objetos como esta.

    0 Not allowed!

  4. #4
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @KTSnowy, no sabria decirte. Los compiladores de cobol que yo tengo no soportan objetos.

    0 Not allowed!

  5. #5
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,294
    Última visita
    Ayer a las 11:19

    Agradecimientos
     
    Recibidos
    1,040
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    106 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @KTSnowy, pues si he entendido bien la pregunta, en Fujitsu COBOL tienes 2 posibilidades, puedes tener arrays de objetos genéricos o específicos:

    COBOL Código:
    1.  WORKING-STORAGE SECTION.
    2.  01  misTextBox.
    3.      05  miTextBox occurs 3 times OBJECT REFERENCE AMixed-DCmTextbox-Main-with-DCfGroupItem-Main.
    4.  
    5.  01  objetosGenericos.
    6.      05  misObjetos occurs 3 times OBJECT REFERENCE.


    Otra cosa, en Cobol de toda la vida los campos "padre" no tienen tipado y son por defecto tomados como alfanuméricos:
    COBOL Código:
    1.  01  campoPadre. *>  este es aflanumérico
    2.      05  campoHijo1 PIC 9(9) COMP-5.
    3.      05  campoHijo2 PIC 9(4) COMP-5.

    Esta filosofía no permitiría definir el tipado de objetos en el nivel 01 y que los niveles inferiores heredaran dicho tipado.


    En cuanto a
    COBOL Código:
    1.      MOVE ClassName :: "New" TO OBJ OF OBJECT-TABLE (INDEX).

    lo que estamos haciendo es llamar a un método, y siendo estrictos, Cobol para ello tiene el verbo Invoke, o sea que yo lo veo más bien así:

    COBOL Código:
    1.      INVOKE ClassName "New" RETURNING OBJ(INDEX) OF OBJECT-TABLE.

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Sintaxis] Borde de celdas de una tabla
    Por Begoguay en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 1
    Último Mensaje: 06.02.2018, 22:04
  2. [Información] Definir Valores TableControl
    Por Recato53 en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 1
    Último Mensaje: 12.08.2017, 19:04
  3. [Sintaxis] Listar objetos secuencialmente
    Por Kuk en el foro Object-Oriented COBOL
    Respuestas: 0
    Último Mensaje: 23.02.2017, 09:33
  4. [Sintaxis] Borde de tabla
    Por JuanJuan77 en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 5
    Último Mensaje: 04.01.2017, 19:42
  5. [Sintaxis] Ultimo registro de una tabla
    Por Dasije en el foro WinDev
    Respuestas: 0
    Último Mensaje: 11.08.2016, 02:32

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •