Grabar Nombre de Tabla en campo itab

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mogus
    Junior Member
    • oct
    • 3

    #1

    Grabar Nombre de Tabla en campo itab

    Hola Todos.

    Necesito la forma de asignar el nombre de la tabla en la que estoy haciendo un select a un campo en mi tabla itab... me explico, la consulta va a varias tablas y necesito mostrale a usuario cada registro en que tabla quedó grabado... pej en este código necesito colocarle a cada registro si proviene de la tabla A690 o de la A694.... Como puedo hacer eso? Gracias!!!!!

    CLEAR itab.
    REFRESH itab.

    SELECT KAPPL KSCHL WERKS INCO1 INCO2 MFRGR VRKME KFRST DATBI DATAB
    KBSTAT KNUMH
    INTO CORRESPONDING FIELDS OF TABLE itab
    FROM A690
    WHERE werks in werks.

    SELECT KAPPL KSCHL WERKS INCO1 INCO2 KONDM VRKME KFRST DATBI DATAB KBSTAT KNUMH
    INTO CORRESPONDING FIELDS OF TABLE itab1
    FROM A694
    WHERE werks in werks.

    LOOP AT itab1.
    APPEND itab1 TO itab.
    ENDLOOP.
  • Jesicka_21
    Junior Member
    • sep
    • 15

    #2
    Lo que se me ocurre

    Buenas tardes,

    Lo que se me ocurre que podes llegar a hacer es lo siguiente:
    Deberias realizarte un types de la siguiente manera.

    TYPES: BEGIN OF TY_ITAB,
    KAPPL TYPE A690-KAPPL,
    KSCHL TYPE A690-KSCHL,
    WERKS TYPE A690-WERKS,
    INCO1 TYPE A690-INCO1,
    INCO2 TYPE A690-INCO2,
    MFRGR TYPE A690-MFRGR,
    VRKME TYPE A690-VRKME,
    KFRST TYPE A690-KFRST,
    DATBI TYPE A690-DATBI,
    DATAB TYPE A690-DATAB,
    KBSTAT TYPE A690-KBSTAT,
    KNUMH TYPE A690-KNUMH,
    TABNAME TYPE CHAR20,
    END OF TY_ITAB.

    Agregamos un campo llamado TABNAME que contendrá el nombre de la tabla.

    Realizas tu consulta:

    CLEAR itab.
    REFRESH itab.

    SELECT KAPPL KSCHL WERKS INCO1 INCO2 MFRGR VRKME KFRST DATBI DATAB
    KBSTAT KNUMH
    INTO CORRESPONDING FIELDS OF TABLE itab
    FROM A690
    WHERE werks in werks.

    SELECT KAPPL KSCHL WERKS INCO1 INCO2 KONDM VRKME KFRST DATBI DATAB KBSTAT KNUMH
    INTO CORRESPONDING FIELDS OF TABLE itab1
    FROM A694
    WHERE werks in werks.

    Luego, realizas lo siguiente:

    *Loopeo de los datos de tabla A694.
    LOOP ITAB1.

    ITAB1-TABNAME = 'A694'.

    APPEND ITAB1 TO ITAB.

    ENDLOOP.

    * Los registros que tengan el campo TABNAME vacio, no vienen de la A694.
    LOOP ITAB
    WHERE TABNAME EQ SPACE.

    ITAB-TABNAME = 'A690'.

    MODIFY ITAB.

    ENDLOOP.

    No sabría decirte si hay otra manera, pero es lo mas sencillo que se me ocurrió.
    Saludos!,

    Jess.

    "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

    Comentario

    • mogus
      Junior Member
      • oct
      • 3

      #3
      Gracias

      Hola Jess, funcionó perfecto! Muchas Gracias.

      Comentario

      • Jesicka_21
        Junior Member
        • sep
        • 15

        #4
        Originalmente publicado por mogus
        Hola Jess, funcionó perfecto! Muchas Gracias.
        Buenisimo Mogus, me alegro que te haya podido ayudar.
        Saludos!,

        Jess.

        "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

        Comentario

        Trabajando...