Skip to Content
avatar image
Former Member

Dynamic Internal Table..

Hi, I want to creat an Internal table which should take the rows of an existing unternal table as columns of the new table and viceversa. The existing Internal table is as follows:

TIME1 TIME2 TIME3 TIME4 TLT TOT TST

WC1 xxx xxx xxx xxx xxx xxx xxx

WC2 xxx xxx xxx xxx xxx xxx xxx

WC3 xxx xxx xxx xxx xxx xxx xxx

Please help me out.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

3 Answers

  • avatar image
    Former Member
    Mar 31, 2006 at 09:03 AM

    Sagar,

    Could you please explain in detail with the structure of the existing internal table?

    This weblog can show you how to create a internal table at runtime.

    /people/ravikumar.allampallam/blog/2005/05/31/expand-the-list-of-columns-in-a-report-dynamically

    You can also do

    CREATE DATA table TYPE mara.

    Regards,

    Ravi

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Mar 31, 2006 at 09:05 AM

    for creating dynmic int table follow the following steps.

    example:

    data: begin of itab occurs 0,

    sno type i,

    sname(10),

    marks type i,

    end of itab.

    Now my requirement is like below, marks should become headings of alv grid.

    we donno how many marks will come. so , the requirement is dynamic.

    sno| sname| 80 | 90 | 78 | 77...........

    build a LVC fieldcat like below.

    ls_fieldcat-fieldname = 'SNO'.

    ls_fieldcat-col_text = 'SNO'.

    append ls_fieldcat to lt_fieldcat.

    ls_fieldcat-fieldname = 'SNAME'.

    ls_fieldcat-col_text = 'SNAME'.

    append ls_fieldcat to lt_fieldcat.

    *******for marks*********

    loop at itab

    ls_fieldcat-fieldname = itab-marks.

    ls_fieldcat-col_text = itab-marks.

    append ls_fieldcat to lt_fieldcat.

    endloop.

    **************

    2. NOW THE FIELDCAT IS UILT. WE HAVE TO BUILD AN INTERNAL TABLE FROM THE FIELDCAT.

    DATA: DREF TYPE REF TO DATA,WA_REF TYPE REF TO DATA.

    FIELD-SYMBOLS: <TEMP_TAB> TYPE TABLE, <TEMP_WA> TYPE ANY.

    CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE

    EXPORTING

    IT_FIELDCATALOG = LT_LVCFIELDCAT

    IMPORTING

    EP_TABLE = DREF.

    ASSIGN dref->* TO <TEMP_TAB>.

    <temp_tab> is the dynamic internal table built from fieldcat.

    3. NOW FILL THE DYNAMIC INTERNAL TABLE.

    CREATE DATA WA_REF LIKE LINE OF <TEMP_TAB>.

    ASSIGN WA_REF->* TO <TEMP_WA>.

    LOOP AT ITAB.

    MOVE-CORRESPONDING ITAB TO <TEMP_WA>.

    APPEND <TEMP_WA> TO <TEMP_TAB>.

    CLEAR IT_ITAB.

    ENDLOOP.

    ENDFORM. " FILL_DYN_TAB

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi

      You can try to do something like this:

      DATA: BEGIN OF itab_in OCCURS 0,

      field1,

      field2,

      field3,

      fieldn,

      END OF itab_in.

      DATA: index(3) TYPE n.

      DATA: t_lvc TYPE lvc_t_fcat,

      w_lvc TYPE lvc_s_fcat.

      FIELD-SYMBOLS: <new_itab> TYPE table,

      <wa_itab> TYPE table.

      DATA: new_tab TYPE REF TO data,

      wa_tab TYPE REF TO data.

      FIELD-SYMBOLS: <wa_out>, <wa_in>.

      DATA: field_idx TYPE i.

      START-OF-SELECTION.

      • Create the structure of new table

      LOOP AT itab_in.

      MOVE sy-tabix TO index.

      CONCATENATE 'WC' index INTO w_lvc-fieldname.

      .....................

      APPEND w_lvc TO t_lvc.

      ENDLOOP.

      • Create new table

      CALL METHOD cl_alv_table_create=>create_dynamic_table

      EXPORTING

      it_fieldcatalog = t_lvc

      IMPORTING

      ep_table = new_tab.

      ASSIGN new_tab->* TO <new_itab>.

      • Create workarea

      CREATE DATA wa_tab LIKE LINE OF <new_itab>.

      ASSIGN wa_tab->* TO <wa_itab>.

      • Transfer data: n = Number of fields of ITAB_IN

      DATA: n TYPE i.

      do n times.

      field_idx = field_idx + 1.

      LOOP AT itab_in.

      ASSIGN COMPONENT sy-tabix OF STRUCTURE <wa_itab> TO <wa_out>.

      ASSIGN COMPONENT field_idx OF STRUCTURE itab_in TO <wa_in>.

      ENDLOOP.

      IF sy-subrc = 0.

      APPEND <wa_itab> TO <new_itab>.

      ENDIF.

      ENDDO.

      Max

  • avatar image
    Former Member
    Mar 31, 2006 at 09:13 AM

    Hi

    You can use the LIKE statement and try the report i hope it will solve your problem.

    Thanks

    Mrutyunjaya Tripathy

    Add comment
    10|10000 characters needed characters exceeded