Duda itab

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • funkeeiads
    Member
    • mar
    • 47

    #1

    Duda itab

    Hola muchachos..
    Este es mi primer post.
    he estado aprendiendo abap casi 1 mes.
    pero tengo una duda que no me deja dormir, lo he buscado pero no me ha quedado claro. Espero que alguien sepa.

    Que es la cabecera de una tabla interna?
    como se declara?
    cual es la diferencia si tiene cabecera o no ?.


    Les pregunto a ustedes por que google no me dejó claro.
    Un abrazo
  • vtsuchida
    Junior Member
    • dic
    • 21

    #2
    Hola,

    La cabecera en una tabla es un workarea del tipo de la tabla y te sirve para hacer append, collect e insert. A su vez, te permite realizar loops.
    Por ejemplo, podrías hacer lo siguiente para agregar un registro a la tabla itab:

    itab-campo1 = '1'.
    itab-campo2 = '2'.
    itab-campo3 = '3'.
    itab-campo4 = '4'.
    itab-campo5 = '5'.

    append itab.

    Para ver registro por registro, bastaría con que loopees la tabla sin necesidad de un workarea externo:

    loop at itab.

    Por otro lado, si no usas cabecera, necesitarías usar un workarea para poder realizar las operaciones anteriores:

    wa-campo1 = '1'.
    wa-campo2 = '2'.
    wa-campo3 = '3'.
    wa-campo4 = '4'.
    wa-campo5 = '5'.

    append wa to itab.

    loop at itab into wa.

    La declaración es simple.

    Con cabecera:
    DATA: itab type table of ty_tab with header line.

    Sin cabecera:
    DATA: itab type table of ty_tab.
    Saludos

    Comentario

    • funkeeiads
      Member
      • mar
      • 47

      #3
      duda

      Por lo que entendí.
      1) Para hacer modificaciones, insert, etc. Necesitas una tabla con cabecera?
      2) entonces un tabla sin cabecera para que sirve?
      3) para manipular la tabla con (insert,modify,etc) necesitas pasar los datos a una tabla con cabecera para poder manipular los datos?

      Saludos.

      Comentario

      • vtsuchida
        Junior Member
        • dic
        • 21

        #4
        Puedes hacer las mismas operaciones para ambos tipos de tablas. Solo que, para el caso de las tablas sin cabecera, necesitas apoyarte en un workarea (append,insert,collect,modify,etc). Aunque también podrías hacer uso de un field-symbol (puntero) para mejorar la performance.

        Las tablas con cabeceras tienen cierta limitancia, como por ejemplo, no son soportadas en el entorno de objetos.

        Por lo general yo uso tablas sin cabeceras, un workarea si es que necesitase agregar registros y un field-symbol para loops.
        Saludos

        Comentario

        • funkeeiads
          Member
          • mar
          • 47

          #5
          Originalmente publicado por vtsuchida
          para el caso de las tablas sin cabecera, necesitas apoyarte en un workarea (append,insert,collect,modify,etc).
          Que es exactamente un workarea ?
          Saludos y paciencia. soy novato en esto.

          Comentario

          • vtsuchida
            Junior Member
            • dic
            • 21

            #6
            Es el 'wa' del ejemplo que puse. Soy paciente, pero al menos tómate la molestia de googlear un poco, pues la info que pides está en toda la red y en español.
            Saludos

            Comentario

            • Desmoquattro
              Junior Member
              • may
              • 27

              #7
              Originalmente publicado por funkeeiads
              Que es exactamente un workarea ?
              Saludos y paciencia. soy novato en esto.
              También se le llama "estructura", es una lista de campos a nivel plano. La tabla interna sería un conjunto de lineas.

              Comentario

              Trabajando...