Create dynamic internal table with dynamic structure

I have an internal table itab1 that have 12 amount fields from period1 thru period12.  I need to create a dynamic table with dynamic structure for the  period column if the total amount of each column  is > 0.  Any idea on how to do that? 
For example if my itab1 has 20 rows and the sum of period1 = 35, sum of period2 = 0, sum of period3 = 5, sum of period4 =0, sum of period5 = 2 then I need to create a dynamic structure for the field column that have the total > 0, i.e  structure struct1 have field period1, period3 and period5 only.  Then I will need to load the data to itab2 from itab1.  Can someone help.
Thanks.  I am on 4.7 and will upgrade to ERP 6.0 soon.

go throgh this....
REPORT  yusmm_text1  NO STANDARD PAGE HEADING
                     LINE-SIZE 199.
T A B L E S
TABLES: MARA,
        MAKT,
        THEAD.
GLOBAL TYPE-POOLS
TYPE-POOLS : SLIS.
   GLOBAL TYPES
TYPES : BEGIN OF TP_FINAL,
       MATNR TYPE MARA-MATNR,
       BEGRU TYPE MARA-BEGRU,
       MTART TYPE MARA-MTART,
       MAKTX TYPE MAKT-MAKTX,
       SPRAS TYPE MAKT-SPRAS,
       LTXT(2000)  TYPE C ,
       SRNO TYPE N ,
      END OF TP_FINAL.
TYPES : BEGIN OF TP_T002,
        SPRAS TYPE T002-SPRAS,
        LAISO TYPE T002-LAISO,
        SRNO TYPE N ,
        END OF TP_T002.
TYPES : BEGIN OF TP_MARA_MAKT,
        MATNR TYPE MARA-MATNR,
        BEGRU TYPE MARA-BEGRU,
        MTART TYPE MARA-MTART,
        SPRAS TYPE MAKT-SPRAS,
        MAKTX TYPE MAKT-MAKTX,
       END OF TP_MARA_MAKT.
Types: BEGIN OF tp_matnr,
       matnr TYPE mara-matnr,
       END OF tp_matnr.
   GLOBAL ELEMENTARY VARIABLES
DATA : gv_date TYPE sy-datum.
DATA : gv_repid TYPE sy-repid.
DATA : g_var1(10) TYPE C.
DATA : gv_index TYPE sy-tabix.
DATA: gv_strg TYPE string,
      gv_strg1(2000) TYPE C.
DATA : gv_lang TYPE sy-langu.
DATA : g_v(3) TYPE N .
DATA : gv_lines(3) TYPE N .
DATA : gv_var(3) TYPE N .
DATA : gv_var1(3) TYPE N.
DATA: gv_str TYPE STRING.
DATA: gv_str1 TYPE STRING.
DATA : gv_li TYPE I,
       gv_lit TYPE I,
       gv_lin TYPE I.
DATA: g_var11(3) TYPE N,
      gv_li1(3) TYPE N,
      g_var2(3) TYPE N.
DATA : gv_i1 TYPE I.
DATA : gv_i TYPE I.
DATA: gl_lenght TYPE I.
   GLOBAL STRUCTURES
DATA:   T_NEWTABLE TYPE REF TO DATA,
        T_NEWLINE  TYPE REF TO DATA,
        T_FLDCAT1   TYPE SLIS_T_FIELDCAT_ALV,
        T_FLDCAT   TYPE LVC_T_FCAT,
        WA_IT_FLDCAT TYPE LVC_S_FCAT,
        WA_IT_FLDCAT1 TYPE SLIS_FIELDCAT_ALV,
        WA_COLNO(2) TYPE N,
        WA_FLNAME(5) TYPE C,
        L_LT TYPE SLIS_LAYOUT_ALV.
   GLOBAL INTERNAL TABLES (WITH INCLUDE STRUCTURE)
DATA : IG_MARA_MAKT TYPE STANDARD TABLE OF TP_MARA_MAKT,
       WG_MARA_MAKT TYPE TP_MARA_MAKT.
DATA : IG_T002 TYPE STANDARD TABLE OF TP_T002,
       WG_T002 TYPE TP_T002.
DATA : IG_FINAL TYPE STANDARD TABLE OF TP_FINAL,
       WG_FINAL TYPE TP_FINAL.
data : IG_MATNR TYPE STANDARD TABLE OF TP_MATNR WITH HEADER  LINE,
       WG_MATNR TYPE TP_MATNR.
DATA:BEGIN OF IG_THEAD OCCURS 0.
        INCLUDE STRUCTURE THEAD .
DATA: END OF IG_THEAD.
DATA:BEGIN OF IG_TLINE OCCURS 0.
        INCLUDE STRUCTURE TLINE  .
DATA:END OF IG_TLINE.
FIELD-SYMBOLS
FIELD-SYMBOLS: <T_DYNTABLE> TYPE STANDARD TABLE,"Dynamic internal
                                                        "tablename
               <FS_DYNTABLE>,  "Field symbol to create work area
              <FS_FLDVAL> TYPE ANY.   " Field symbol to assign values
COMPULSORY
FIELD-SYMBOLS: <FS_DATA> TYPE REF TO DATA,
               <FS_DATA1> TYPE REF TO DATA,
               <FS_2>    TYPE STANDARD TABLE,
               <FS_22>   TYPE STANDARD TABLE,
               <FS_1>,
               <FS_11>,
               <F>,
               <FA>,
               <LWA_LINE_WA>,
               <LWA_LINE_WA1>.
------- Create Dyn Table From FC
DATA: LT_DATA        TYPE   REF TO DATA,
      LT_DATA1        TYPE   REF TO DATA,
      LWA_LINE       TYPE   REF TO  DATA,
      LWA_LINE1       TYPE   REF TO  DATA,
      LI_FIELD_CAT   TYPE   LVC_T_FCAT,
      LWA_FIELD_CAT  TYPE   LVC_S_FCAT.
   PARAMETERS & SELECT-OPTIONS
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_SPRAS FOR MAKT-SPRAS NO INTERVALS  DEFAULT 'EN'
                                                        OBLIGATORY ,
                 S_MATNR FOR MARA-MATNR,
                 S_MTART FOR MARA-MTART.
PARAMETERS: GP_SIZE TYPE I DEFAULT '200'.
SELECTION-SCREEN : END OF BLOCK B1.
   INITIALIZATION
INITIALIZATION.
  gv_repid = sy-repid.
  gv_date = sy-datum.
AT SELECTION-SCREEN
AT SELECTION-SCREEN.
  IF GP_SIZE < 0.
   MESSAGE E002(00).
  ENDIF.
  IF GP_SIZE > 50000.
   MESSAGE W130(26) WITH TEXT-004.
    SET CURSOR FIELD 'gp_size'.
  ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
  PERFORM FIELDCAT.
  PERFORM LAYOUT.
  PERFORM DATA_FETCH.
  PERFORM READ_DATA_TO_FINAL.
  SORT ig_final BY matnr spras.
  gv_lin = gv_li.
  gv_li = gv_li - 2.
  LOOP AT ig_final INTO wg_final.
    ASSIGN COMPONENT 1 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = 'Material Number'.
    ASSIGN COMPONENT 2 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = 'Authorization Group'.
    g_VAR11 = wg_final-srno + 2.
    gv_li1 = gv_li1 + 2.
    MOVE : g_var11 TO gv_i1.
    ASSIGN COMPONENT g_var11 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = 'MatDesc'.
    g_var2 = g_var11 + gv_lines.
    ASSIGN COMPONENT g_var2 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = 'BasicData'.
    APPEND <LWA_LINE_WA1> TO <FS_22>.
    EXIT.
   ENDLOOP.
  LOOP AT ig_final INTO wg_final.
    AT NEW matnr.
      gv_index = sy-tabix.
      ASSIGN COMPONENT 1 OF STRUCTURE <LWA_LINE_WA> TO <F>.
      <F> = wg_final-matnr.
      ENDAT.
    AT NEW MATNR.
    GV_INDEX = SY-TABIX.
    ASSIGN COMPONENT 1 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = wg_final-matnr.
     ENDAT.
    ASSIGN COMPONENT 2 OF STRUCTURE <LWA_LINE_WA> TO <F>.
    <F> = wg_final-begru.
    ASSIGN COMPONENT 2 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = wg_final-begru.
    gv_var = wg_final-srno + 2.
    gv_li = gv_li + 2.
    MOVE : gv_var TO gv_i.
    ASSIGN COMPONENT gv_var OF STRUCTURE <LWA_LINE_WA> TO <F>.
    <F> = wg_final-maktx.
    ASSIGN COMPONENT gv_var OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = wg_final-maktx.
    gv_var1 = gv_var + gv_lines  .
    ASSIGN COMPONENT gv_var1 OF STRUCTURE <LWA_LINE_WA> TO <F>.
   <F> = wg_final-ltxt.
    ASSIGN COMPONENT gv_var1 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
    <FA> = wg_final-ltxt.
    AT END OF matnr.
      APPEND <LWA_LINE_WA> TO <FS_2>.
      CLEAR <LWA_LINE_WA>.
    ENDAT.
    AT END OF matnr.
     APPEND <LWA_LINE_WA1> TO <FS_22>.
     CLEAR <LWA_LINE_WA1>.
    ENDAT.
  ENDLOOP.
  PERFORM display..
*&      Form  data_fetch
      text
-->  p1        text
<--  p2        text
FORM DATA_FETCH .
  SELECT matnr
          from mara up to gp_size rows
         appending corresponding fields of table ig_matnr
         where matnr in s_matnr
         and mtart in s_mtart.
loop at ig_matnr.
  SELECT  MARA~MATNR
          MARA~BEGRU
          MARA~MTART
          MAKT~SPRAS
          MAKT~MAKTX FROM MARA INNER JOIN MAKT
    ON MARAMATNR = MAKTMATNR
   appending corresponding fields of TABLE ig_mara_makt  UP TO GP_SIZE
ROWS
    WHERE makt~spras IN s_spras
    AND   mara~matnr IN s_matnr
    AND   mara~mtart IN s_mtart
    AND   mara~matnr EQ ig_matnr-matnr.
    endloop.
  IF sy-subrc = 0.
    SORT ig_mara_makt.
  ENDIF.
ENDFORM.                    " data_fetch
*&      Form  read_data_to_final
      text
-->  p1        text
<--  p2        text
FORM READ_DATA_TO_FINAL .
  LOOP AT ig_mara_makt INTO wg_mara_makt .
    wg_final-MATNR = wg_mara_makt-MATNR.
    wg_final-BEGRU = wg_mara_makt-BEGRU.
    wg_final-MTART = wg_mara_makt-MTART.
    wg_final-SPRAS = wg_mara_makt-SPRAS.
    wg_final-MAKTX = wg_mara_makt-MAKTX.
    READ TABLE ig_t002 INTO wg_t002 WITH KEY spras = wg_final-spras.
    IF sy-subrc = 0.
      wg_final-srno = wg_t002-srno.
    ENDIF.
    CLEAR ig_thead[].
    ig_thead-TDOBJECT = 'MATERIAL'.
    ig_thead-TDNAME   = wg_final-matnr.
    ig_thead-TDID     = 'GRUN'.
    ig_thead-TDSPRAS  = wg_final-spras.
    CALL FUNCTION 'TEXT_READ'
      EXPORTING
        I_HEADER   = IG_THEAD
        I_READONLY = 'X'
      IMPORTING
        E_HEADER   = IG_THEAD
      TABLES
        T_LINES    = IG_TLINE[]
      EXCEPTIONS
        NOTFOUND   = 1.
    IF sy-subrc  EQ 0.
      LOOP AT  ig_tline.
        gv_strg = ig_tline-tdline.
        IF gv_strg1 <> ' '.
          CONCATENATE gv_strg1 ';' gv_strg INTO gv_strg1.
        ELSE.
          gv_strg1 = gv_strg.
        ENDIF.
      ENDLOOP.
      wg_final-ltxt = gv_strg1.
      APPEND wg_final TO ig_final.
      CLEAR wg_final.
      gv_strg1 = ' '.
    ELSE.
      APPEND wg_final TO  ig_final.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " read_data_to_final
" read_data_to_final
*&      Form  layout
      text
-->  p1        text
<--  p2        text
FORM LAYOUT .
  CLEAR L_LT.
  L_LT-ZEBRA = 'X'.
  L_LT-COLWIDTH_OPTIMIZE = 'X'.
  L_LT-WINDOW_TITLEBAR = 'MATERIAL DETAILS'.
ENDFORM.                    " layout
*&      Form  fieldcat
      text
-->  p1        text
<--  p2        text
FORM FIELDCAT .
  SELECT SPRAS
           LAISO FROM t002 INTO  CORRESPONDING FIELDS OF TABLE ig_t002
      WHERE spras IN s_spras.
  DESCRIBE TABLE ig_t002 LINES gv_lines.
  LOOP AT ig_t002 INTO wg_t002.
    g_v = g_v + 1.
    Wg_t002-srno = g_v.
    MODIFY ig_t002 FROM wg_t002 TRANSPORTING SRNO.
  ENDLOOP.
  LOOP AT ig_t002 INTO wg_t002.
    CLEAR WA_IT_FLDCAT.
    MOVE SY-INDEX TO WA_COLNO.
    CONCATENATE 'MD-' wg_t002-LAISO
                      WA_COLNO
                     INTO WA_FLNAME.
    WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
    WA_IT_FLDCAT-DATATYPE = 'CHAR'.
    WA_IT_FLDCAT-SELTEXT = WA_FLNAME.
    WA_IT_FLDCAT-INTLEN = 250.
    WA_IT_FLDCAT-TABNAME = '<FS_2>'.
    APPEND WA_IT_FLDCAT TO T_FLDCAT.
    CLEAR wg_t002.
    ENDLOOP.
  LOOP AT ig_t002 INTO wg_t002.
    CLEAR WA_IT_FLDCAT.
    MOVE SY-INDEX TO WA_COLNO.
    CONCATENATE 'BD-' wg_t002-LAISO
                       WA_COLNO
                    INTO WA_FLNAME.
    WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
    WA_IT_FLDCAT-DATATYPE = 'CHAR'.
    WA_IT_FLDCAT-SELTEXT = WA_FLNAME.
    WA_IT_FLDCAT-INTLEN = 250.
    WA_IT_FLDCAT-TABNAME = '<FS_2>'.
    APPEND WA_IT_FLDCAT TO T_FLDCAT.
    CLEAR wg_t002.
    ENDLOOP.
  MOVE 'MATNR' TO WA_FLNAME.
  WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
  WA_IT_FLDCAT-DATATYPE = 'CHAR'.
  WA_IT_FLDCAT-SELTEXT = 'Material No'.
  WA_IT_FLDCAT-INTLEN = 18.
  WA_IT_FLDCAT-TABNAME = '<FS_2>'.
  INSERT WA_IT_FLDCAT INTO T_FLDCAT INDEX 1.
  MOVE 'BEGRU' TO WA_FLNAME.
  WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
  WA_IT_FLDCAT-DATATYPE = 'CHAR'.
  WA_IT_FLDCAT-SELTEXT = 'Authorization Group'.
  WA_IT_FLDCAT-INTLEN = 4.
  WA_IT_FLDCAT-TABNAME = '<FS_2>'.
  INSERT WA_IT_FLDCAT INTO T_FLDCAT INDEX 2.
  DESCRIBE TABLE T_FLDCAT LINES gv_li.
  ASSIGN LT_DATA TO <FS_DATA>.
Creating the Dynamic Internal Table
  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG           = T_FLDCAT         " Fieldcatalogue
    IMPORTING
      EP_TABLE                  = <FS_DATA>   " Dynamic Internal Table
    EXCEPTIONS
      GENERATE_SUBPOOL_DIR_FULL = 1
      OTHERS                    = 2.
Assign Dyn Table To Field Sumbol
  ASSIGN <FS_DATA>->* TO <FS_1>.
Assigning the Internal Table TYPE ANY to Standard internal Table
  ASSIGN <FS_1> TO <FS_2>.
Creating a Workarea
  CREATE DATA LWA_LINE LIKE LINE OF <FS_2> .
Assigning the Content to the workares as a Pointer
  ASSIGN LWA_LINE->* TO <LWA_LINE_WA>.
  LOOP AT T_FLDCAT INTO WA_IT_FLDCAT.
    WA_IT_FLDCAT1-FIELDNAME = WA_IT_FLDCAT-FIELDNAME.
    WA_IT_FLDCAT1-TABNAME =  WA_IT_FLDCAT-TABNAME.
    WA_IT_FLDCAT1-SELTEXT_L = WA_IT_FLDCAT-SELTEXT.
   WA_IT_FLDCAT1-REF_TABNAME = 'MARC'.
    APPEND WA_IT_FLDCAT1 TO T_FLDCAT1.
    CLEAR : WA_IT_FLDCAT,WA_IT_FLDCAT1.
  ENDLOOP.
  ASSIGN LT_DATA1 TO <FS_DATA1>.
  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG           = T_FLDCAT         " Fieldcatalogue
    IMPORTING
      EP_TABLE                  = <FS_DATA1>  " Dynamic Internal table
    EXCEPTIONS
      GENERATE_SUBPOOL_DIR_FULL = 1
      OTHERS                    = 2.
Assign Dyn Table To Field Sumbol
  ASSIGN <FS_DATA1>->* TO <FS_11>.
Assigning the Internal Table TYPE ANY to Standard internal Table
  ASSIGN <FS_11> TO <FS_22>.
Creating a Workarea
  CREATE DATA LWA_LINE1 LIKE LINE OF <FS_22> .
Assigning the Content to the workares as a Pointer
  ASSIGN LWA_LINE1->* TO <LWA_LINE_WA1>.
ENDFORM.                    " fieldcat
*&      Form  show
      text
-->  p1        text
<--  p2        text
FORM Display .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
   I_INTERFACE_CHECK                 = ' '
   I_BYPASSING_BUFFER                = ' '
   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = GV_REPID
    I_CALLBACK_PF_STATUS_SET          = 'PF_STATUS_SET'
    I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
   I_CALLBACK_TOP_OF_PAGE            = ' '
   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
   I_CALLBACK_HTML_END_OF_LIST       = ' '
   I_STRUCTURE_NAME                  =
   I_BACKGROUND_ID                   = ' '
   I_GRID_TITLE                      =
   I_GRID_SETTINGS                   =
    IS_LAYOUT                         = L_LT
     IT_FIELDCAT                       = T_FLDCAT1[]
   IT_EXCLUDING                      =
   IT_SPECIAL_GROUPS                 =
   IT_SORT                           =
   IT_FILTER                         =
   IS_SEL_HIDE                       =
   I_DEFAULT                         = 'X'
   I_SAVE                            = ' '
   IS_VARIANT                        =
   IT_EVENTS                         =
   IT_EVENT_EXIT                     =
   IS_PRINT                          =
   IS_REPREP_ID                      =
   I_SCREEN_START_COLUMN             = 0
   I_SCREEN_START_LINE               = 0
   I_SCREEN_END_COLUMN               = 0
   I_SCREEN_END_LINE                 = 0
   I_HTML_HEIGHT_TOP                 = 0
   I_HTML_HEIGHT_END                 = 0
   IT_ALV_GRAPHICS                   =
   IT_HYPERLINK                      =
   IT_ADD_FIELDCAT                   =
   IT_EXCEPT_QINFO                   =
   IR_SALV_FULLSCREEN_ADAPTER        =
IMPORTING
   E_EXIT_CAUSED_BY_CALLER           =
   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = <FS_2>
EXCEPTIONS
   PROGRAM_ERROR                     = 1
   OTHERS                            = 2
  IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " display
FORM PF_STATUS_SET USING RS_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'DISPLAY' .
ENDFORM. "PF_STATUS_SET
*& Form Name: user_command *
*& Form Desc: For Handling USER_COMMAND *
FORM USER_COMMAND USING IF_UCOMM TYPE SY-UCOMM
                     IS_SELFIELD TYPE SLIS_SELFIELD.
  CASE IF_UCOMM.
    WHEN 'DOWNLOAD'.
      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
  TITLEBAR                    = ' '
  DIAGNOSE_OBJECT             = ' '
          TEXT_QUESTION               = 'Data download to excel'
  TEXT_BUTTON_1               = 'Ja'(001)
  ICON_BUTTON_1               = ' '
  TEXT_BUTTON_2               = 'Nein'(002)
  ICON_BUTTON_2               = ' '
  DEFAULT_BUTTON              = '1'
  DISPLAY_CANCEL_BUTTON       = 'X'
  USERDEFINED_F1_HELP         = ' '
  START_COLUMN                = 25
  START_ROW                   = 6
  POPUP_TYPE                  =
IMPORTING
  ANSWER                      =
TABLES
  PARAMETER                   =
EXCEPTIONS
  TEXT_NOT_FOUND              = 1
  OTHERS                      = 2
      IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
    BIN_FILESIZE                  =
          FILENAME                     = 'C:\Material-Text.xls'
         FILETYPE                      = 'ASC'
    APPEND                        = ' '
     WRITE_FIELD_SEPARATOR         = 'X'
    HEADER                        = '00'
     TRUNC_TRAILING_BLANKS         = 'X'
    WRITE_LF                      = 'X'
    COL_SELECT                    = ' '
    COL_SELECT_MASK               = ' '
     DAT_MODE                      = 'X'
   IMPORTING
     FILELENGTH                    = GL_LENGHT
        TABLES
          DATA_TAB                      = <FS_22>
  EXCEPTIONS
    FILE_WRITE_ERROR              = 1
    NO_BATCH                      = 2
    GUI_REFUSE_FILETRANSFER       = 3
    INVALID_TYPE                  = 4
    NO_AUTHORITY                  = 5
    UNKNOWN_ERROR                 = 6
    HEADER_NOT_ALLOWED            = 7
    SEPARATOR_NOT_ALLOWED         = 8
    FILESIZE_NOT_ALLOWED          = 9
    HEADER_TOO_LONG               = 10
    DP_ERROR_CREATE               = 11
    DP_ERROR_SEND                 = 12
    DP_ERROR_WRITE                = 13
    UNKNOWN_DP_ERROR              = 14
    ACCESS_DENIED                 = 15
    DP_OUT_OF_MEMORY              = 16
    DISK_FULL                     = 17
    DP_TIMEOUT                    = 18
    FILE_NOT_FOUND                = 19
    DATAPROVIDER_EXCEPTION        = 20
    CONTROL_FLUSH_ERROR           = 21
    OTHERS                        = 22
      IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF GL_LENGHT NE 0.
        MESSAGE S398(00) WITH 'DATA downloaded to EXCEL'.
      ENDIF.
  ENDCASE.
ENDFORM.                    "user_command
Thanks

Similar Messages

  • Creating dynamic internal table with deep structure

    Hi all,
    I need to create an internal table with deep structure dynamically. I've already created tables with method 'create_dynamic_table' but I'm struggling with the deep structure.
    I would need an internal table with the following structure:
    DATA: BEGIN OF lt_t1,
    s1 TYPE REF TO data,
    s2 TYPE REF TO data,
    END OF lt_t1.
    S1 and S2 have to be tables.
    It might be possible with RTTS but all the examples in the forums (that I've found so far) are related to at least one DDIC-structure. And that's my problem because both tables are created during runtime.
    Thank you in advance
    Nicola

    Hi Frédéric,
    I hope my english is good enough to explain it correctly:
    We use a function builder for SEM-BPS which copies data from one Cube to another. This Cube is transactional, so you can't easily read a structure out of DDIC.
    The export parameter of this function builder is a table with type 'any table'.
    Until today we used a fixed definition e.g.:
      TYPES:
        BEGIN OF xtyp_chas,
         /sie/sr_ocomp TYPE /b52/oisr_ocomp,
         /sie/ts_03psp TYPE /b52/oits_03psp,
         0activity     TYPE /bi0/oiactivity,
         0acty_elemt   TYPE /bi0/oiacty_elemt,
         0costelmnt    TYPE /bi0/oicostelmnt,
         0co_area      TYPE /bi0/oico_area,
         0creditor     TYPE /bi0/oicreditor,
         0currency     TYPE /bi0/oicurrency,
         0curtype      TYPE /bi0/oicurtype,
         0db_cr_ind    TYPE /bi0/oidb_cr_ind,
         0fiscper      TYPE /bi0/oifiscper,
         0fiscper3     TYPE /bi0/oifiscper3,
         0fiscyear     TYPE /bi0/oifiscyear,
         0metype       TYPE /bi0/oimetype,
         0network      TYPE /bi0/oinetwork,
         0part_actty   TYPE /bi0/oipart_actty,
         0part_cctr    TYPE /bi0/oipart_cctr,
         0piobjsv      TYPE /bi0/oipiobjsv,
         0project      TYPE /bi0/oiproject,
         0unit         TYPE /bi0/oiunit,
         0vtdetail     TYPE /bi0/oivtdetail,
         0vtstat       TYPE /bi0/oivtstat,
         0vtype        TYPE /bi0/oivtype,
         0bus_area     TYPE /bi0/oibus_area,
         0cashdetail   TYPE /bi0/oicashdetail,
         0cashtype     TYPE /bi0/oicashtype,
         0comp_code    TYPE /bi0/oicomp_code,
         0coorder      TYPE /bi0/oicoorder,
         0cs_dimen     TYPE /bi0/oics_dimen,
         0cs_unit      TYPE /bi0/oics_unit,
         0int_bus      TYPE /bi0/oiint_bus,
         0part_abcpr   TYPE /bi0/oipart_abcpr,
         0part_coord   TYPE /bi0/oipart_coord,
         0part_wbsel   TYPE /bi0/oipart_wbsel,
         0piovalue     TYPE /bi0/oipiovalue,
         0profit_ctr   TYPE /bi0/oiprofit_ctr,
         0ps_obj       TYPE /bi0/oips_obj,
         0statussys0   TYPE /bi0/oistatussys0,
         zfbwheroj     TYPE /bic/oizfbwheroj,
        END   OF xtyp_chas,
        BEGIN OF xtyp_kyfs,
          0amount      TYPE /bi0/oiamount,
          0quantity    TYPE /bi0/oiquantity,
          zf03oaws     TYPE /bic/oizf03oaws,
          zf03oqty     TYPE /bic/oizf03oqty,
          zf03ozsta    TYPE /bic/oizf03ozsta,
        END OF xtyp_kyfs,
        BEGIN OF xtyp_zf03g003,
          s_chas TYPE xtyp_chas,
          s_kyfs TYPE xtyp_kyfs,
        END   OF xtyp_zf03g003,
        xtyp_zf03g003_t TYPE HASHED TABLE OF xtyp_zf03g003
                          WITH UNIQUE KEY s_chas.
    DATA: lt_ibm_data TYPE xtyp_zf03g003_t,
          ls_ibm_data TYPE xtyp_zf03g003.
    So one table (s_chas) contains the characteristics of the Cube and the other (s_kyfs) contains the keyfigures. That's exactly the format we need for the export parameter. At the end of the program, we use the following coding to fill the export table (eto_chas):
    loop at lt_ibm_data into ls_ibm_data.
      collect ls_ibm_data-s_chas into eto_chas.
    endloop.
    So in this moment I give this table the structure that is needed to move the data into the cube. I can't change the requirement because it is a standard interface.
    I would like to change that coding to be dynamically. Because if somebody changes a charasteristic or a keyfigure in the cube, we would have to change the function builder too. I don't think that the SEM-BPS department will let us know every time they've changed something anyway.
    So I hope that my explanation wasn't too confusing
    Nicola

  • Create dynamic internal table with deep structure;cell coloring dynamic ALV

    Hi,
    My requirement is to do cell colouring for a dynamic ALV.
    So I am creating a dynamic internal table using the following method.
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = i_fieldcatalog[]
        IMPORTING
          ep_table        = i_output.
    But how do I define field COLORS which should be again an internal table ?
    Is there any other way for cell colouring?
    Putting my problem in another way:
    How do I create a dynamic internal table with one field as another internal table.
    Quick replies are highly appreciated.
    Thanks,
    Nisha Vengal.

    halo Nisha
    Before building the display table . you can add the field in the feild catalog right . This display table gets generated from the field catalog right
    1 Create a global structute say ZEXTEND_FIELDCAT
    2 Have fields like STYLE type lvc_t_styl
                             COLOR type LVC_T_SCOL.
    3 Now you have to extend ur fieldcatalog
      l_fieldcat-fieldname = COLOR'.
      l_fieldcat-ref_field = 'COLOR'.
      l_fieldcat-ref_table = 'ZEXTEND_FIELDCAT'.
      APPEND l_fieldcat TO lt_field_catalog.
      CLEAR l_fieldcat.

  • Dynamic internal table with repeated structure

    Hi,
        I have a requirement, in which I need to create a dynamic internal table with the below structure.
       Dynamic Int. table structure: fld1 and fld2.
       If another internal table (say int2), contains 3 records, then my final output table should contain the below structure.
                    Value 1              Value 2              Value3          
         fld1     fld2     fld1     fld2     fld1     fld2     
      If in case, the int2 table contains 10 records, then my final output table should contain the structure below.
                    Value 1              Value 2           .....              Value10          
         fld1     fld2     fld1     fld2     .....     fld1     fld2     
    Please advice on how to acquire this. Thanks in advance for your help.
    Regards,
    Swetha.

    You can do it...but it won't be  table... it would be some thing like
    itab
    ref1->  strycture (field 1  field 2 field 3)
    ref2-> structure (field1 field 4 )
    ref3-> structure (field5  field7 )
    say Define a  internal table with a single field to hold  a reference of Data
    Go on creating Rows of different structures and storing the address into the table... you can use RTTS for same
    Use  the below link for RTTS (search on wiki for examples).
    http://wiki.sdn.sap.com/wiki/display/ABAP/RuntimeTypeServices+%28RTTS%29

  • How to create an dynamic internal table with the structure of a ddic table

    Hi all,
    I want to fill ddic-tables (which I already created) in my abap dictionary with data out of CSV-files (which are located on the CRM-Server).  The ddic tables have different amount of fields.
    I started with creating a table which contains the name of the tables and the path to the matching CSV-file.
    At the beginning I'm filling an internal table with part of this data (the name of the ddic-tables) - after that I am looping at this internal table.
    LOOP AT lt_struc ASSIGNING <lfs_struc>.
         LOOP AT lv_itab1 INTO lv_wa1 WHERE ztab_name = <lfs_struc>.
         lv_feld = lv_wa1-zdat_name.
        ENDLOOP.
        CONCATENATE 'C:\-tmp\Exportierte Tabellen\' lv_feld INTO lv_pfad.
        Do.
        OPEN DATASET lv_pfad FOR INPUT IN TEXT MODE ENCODING NON-UNICODE IGNORING CONVERSION ERRORS.
        READ DATASET lv_pfad INTO lv_rec.
        IF sy-subrc NE 0.
          EXIT.
        ENDIF.
        enddo.
        REPLACE ALL OCCURRENCES OF '"' IN lv_rec WITH ''.
        SPLIT lv_rec AT ';' INTO TABLE lt_str_values.
        INSERT into (<lfs_struc>) values lr_str_value.
        CLOSE DATASET lv_pfad.
    endloop.
    This is not the whole code, but it's working until
    SPLIT lv_rec AT ';' INTO TABLE lt_str_values.
    I want to split all the data of lv_rec into an internal table which has the structure of the current ddic-table, but I didn't find out how to do give the internal table the structure of the ddic-table. In the code I used an internal tyble type string but I should be the structure of the matching tabel.
    If I try to create an internal table by using a fiel symbol, I am told, that the data types are not matching.
    Has anyone an idea?

    Hi Mayari,
    though you were successfull with
    METHOD cl_alv_table_create=>create_dynamic_table
    I must warn you not to use it. The reason is that the number of tables created is limited, the method uses GENERATE SUBROUTINE statement and this triggers an unwanted database commit.
    If you know the DDIC structure, it is (starting with ECC6.0) much easier:
    field-symbols:
      <table> type standard table.
    data:
      lr_data type ref to data.
    Create data lr_data type table of (<DDIC structure>).
    assign lr_data->* to <table>.
    The split code can be simplified gaining speed loosing complexity not loosing functionality.
    field-symbols:<fs_s> type any.
    field-symbols:<fs_t> type any.
    SPLIT lv_rec AT ';' INTO table it_string.
    loop at it_string assigning <fs_s>.
      assign component sy-tabix of wa_string to <fs_t>.
    if sy-subrc = 0.
      <fs_t> = <fs_s>.
    endif.
    at last.
      append <fs_itwa3> to <ft_itab3>.
    endat.
    endloop.
    Though it may work as Keshav.T suggested, there is no need to do that way.     
    Regards,
    Clemens

  • Dynamic Internal Table with Dynamic Fields

    Hi all,
    My scenario is fairly simple----
    --> End user clicks a button on screen and he gets the list of HR tables.
    --> Then selects a table and list of all the fields for that table gets displayed.
    --> He/she selects the fields they want data to be retrieved for.
    So, the requirement is, the dynamic internal table should get created with the fields selected.
    The select statement should only retrieve fields which were selected by the end user
    and from the table selected by the end user.
    I  believe the fields selected by end user can be passed by a variable of  type string.
    something like this---
    select (fields)
    from (p_table)        " Table selected by end user
    into  dynamic internal table.   " should contain columns selected by end user"
    Appreciate your inputs and guidance.
    Warm regards,
    Hari Kiran

    TYPE-POOLS :ABAP.
    Parameters P_TAB      TYPE        DDOBJNAME.
    DATA  : GO_LINE_TYPE  TYPE REF TO CL_ABAP_STRUCTDESCR,
            GO_TABLE_DESC TYPE REF TO CL_ABAP_TABLEDESCR,
            GS_COMPONENTS TYPE        ABAP_COMPONENTDESCR,
            GT_COMPONENTS TYPE        ABAP_COMPONENT_TAB,
            GR_TAB        TYPE REF TO DATA,
            GT_FIELDS  TYPE TABLE OF DFIES WITH HEADER LINE.
    FIELD-SYMBOLS: <GT_TABLE> TYPE TABLE,
                   <GS_TABLE> TYPE ANY,
                   <GV_VALUE> TYPE ANY.
    CALL FUNCTION 'DDIF_FIELDINFO_GET'
      EXPORTING
        TABNAME              = P_TAB
    *   FIELDNAME            = ' '
    *   LANGU                = SY-LANGU
    *   LFIELDNAME           = ' '
    *   ALL_TYPES            = ' '
    *   GROUP_NAMES          = ' '
    *   UCLEN                =
    * IMPORTING
    *   X030L_WA             =
    *   DDOBJTYPE            =
    *   DFIES_WA             =
    *   LINES_DESCR          =
    TABLES
        DFIES_TAB            =  GT_FIELDS
    *   FIXED_VALUES         =
    EXCEPTIONS
       NOT_FOUND            = 1
       INTERNAL_ERROR       = 2
       OTHERS               = 3.
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT GT_FIELDS.
      CLEAR GS_COMPONENTS.
      GS_COMPONENTS-NAME  = GT_FIELDS-FIELDNAME.
      GS_COMPONENTS-TYPE ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( GT_FIELDS-ROLLNAME ).
      APPEND GS_COMPONENTS TO GT_COMPONENTS.
    ENDLOOP.
    GO_LINE_TYPE  = CL_ABAP_STRUCTDESCR=>CREATE( GT_COMPONENTS ).
    GO_TABLE_DESC = CL_ABAP_TABLEDESCR=>CREATE( GO_LINE_TYPE ).
    CREATE DATA:  GR_TAB TYPE HANDLE GO_TABLE_DESC.
    ASSIGN:  GR_TAB->* TO <GT_TABLE>.
    SELECT * FROM (P_TAB) APPENDING CORRESPONDING FIELDS OF TABLE <GT_TABLE>.
    LOOP AT <GT_TABLE> ASSIGNING <GS_TABLE>.
      NEW-LINE.
      DO.
        ASSIGN COMPONENT SY-INDEX OF STRUCTURE <GS_TABLE> TO <GV_VALUE>.
        IF SY-SUBRC NE '0'.
          EXIT.
        ENDIF.
        WRITE : <GV_VALUE>.
      ENDDO.
    ENDLOOP.

  • Dynamic internal table with dynamic header

    Hi Members,
    I have created a dynamic report ie In the selection screen i will give set of GL accounts.
    Based on the GL it will separate a col like Sales GL, PF GL , Discount Gl etc. In the header portion  first 3 col is constant ie it  will show the vendor name and material and text remaining col is based on the GL entered in the screen it will cumulate the Total Amount and display accordingly.
    This is working fine in ALV grid display, but i required to download the data to excel , while downloading to excel i am getting only the values without header,
    ie title of the each col not getting . kindly guide me to solve this issue.
    If i entered only sales GLs (100,101,102 ) then  my output should be
    vendor   material    mateial text   100       101      102
    ddddd    11100       Raw salt      2000    1000     2500
    Regards,
    Mee.S

    Hi Meenakshi,
    As per my knowledge two ways of doing it...
    1. when u get the final internal table..check for the fields with not initial...again update the header internal table dynamically..
    2. if you get GL or PF or any such thing you can hardcode the header and display it on to excel..
    Regards,
    Vamshi

  • Creating Dynamic Internal table with a dynamic name

    Hi,
    I want to create dynamic internal tables with dynamic names.
    For example:
    Suppose I have a table with three fields.
    1. Structure name
    2.Fields
    3.file
    And the structure of the internal table is as follows:
    TYPES:BEGIN OF table_type,
          struct                  TYPE char70,
          fields                   TYPE tt_type OCCURS 0,
          File                      TYPE ttab_type OCCURS 0,
          END OF table_type.
    Suppose I have one record inside my internal table with struct as "STRUCTURE", fields have an internal table content of set of fields and File has some set of records.
    Now I want to create dynamic internal table whose name will be "STRUCTURE" , the fields of the dynamic internal table structure[] will be as in fields, and the records will be as in File.
    Like this if i have 100 records in my internal table then I have to create 100 dynamic internal table dynamically.
    Can anyone suggest how to do this?
    Edited by: Jjammy on Jul 22, 2009 7:52 AM

    Hi,
    Check the sample program and develop your program accordingly.
    <font color=blue><pre>
    REPORT  ztest_notepad.
    *& Declarations
    *Type-pools
    TYPE-POOLS:
          slis.
    *Types
    TYPES:
          ty_fcat      TYPE lvc_s_fcat,
          ty_fcatalog  TYPE slis_fieldcat_alv.
    *Work areas
    DATA:
          wa_fcat      TYPE ty_fcat,
          wa_fcatalog  TYPE ty_fcatalog.
    *Internal tables
    DATA:
          it_fcat      TYPE STANDARD TABLE OF ty_fcat,
          it_fcatalog  TYPE STANDARD TABLE OF ty_fcatalog.
    *Type reference
    DATA:
          it_dyn_tab   TYPE REF TO data,
          wa_newline   TYPE REF TO data.
    *Filed symbols
    FIELD-SYMBOLS:
          <gt_table>   TYPE STANDARD TABLE,
          <fs_dyntable>,
          <fs_fldval>  TYPE ANY,
          <l_field>    TYPE ANY.
    *Variables
    DATA:
          l_fieldname  TYPE lvc_s_fcat-fieldname,
          l_tabname    TYPE lvc_s_fcat-tabname,
          l_fieldtext  TYPE lvc_s_fcat-seltext,
          l_index      TYPE char2.
    "Selection-screen
    PARAMETERS:
             p_colms   TYPE i.
    *& start-of-selection.
    START-OF-SELECTION.
      PERFORM build_fieldcat.
      PERFORM create_dynamic_table.
      DO 20 TIMES.
        DO p_colms TIMES.
          l_index = sy-index.
          CONCATENATE 'FIELD' l_index INTO l_fieldname.
          ASSIGN COMPONENT l_fieldname OF STRUCTURE <fs_dyntable> TO <l_field>.
          <l_field> = sy-index.
        ENDDO.
        INSERT <fs_dyntable> INTO TABLE <gt_table>.
      ENDDO.
      LOOP AT it_fcat INTO wa_fcat.
        PERFORM fieldcatalog1 USING: wa_fcat-fieldname
                                      wa_fcat-tabname
                                      wa_fcat-seltext.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program = 'ZTEST_NOTEPAD'
          it_fieldcat        = it_fcatalog
        TABLES
          t_outtab           = <gt_table>.
    *&      Form  BUILD_FIELDCAT
    FORM build_fieldcat .
      CLEAR: l_fieldname,
             l_tabname,
             l_fieldtext,
             l_index.
      DO  p_colms TIMES.
        CLEAR l_index.
        l_index = sy-index.
        CONCATENATE 'FIELD' l_index INTO l_fieldname.
        CONCATENATE 'Field' l_index INTO l_fieldtext.
        l_tabname = '<GT_TABLE>'.
        PERFORM fieldcatalog USING: l_fieldname
                                    l_tabname
                                    l_fieldtext.
      ENDDO.
    ENDFORM.                    " BUILD_FIELDCAT
    *&      Form  CREATE_DYNAMIC_TABLE
    FORM create_dynamic_table .
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog = it_fcat
        IMPORTING
          ep_table        = it_dyn_tab.
      ASSIGN it_dyn_tab->* TO <gt_table>.
    Create dynamic work area and assign to FS
      CREATE DATA wa_newline LIKE LINE OF <gt_table>.
      ASSIGN wa_newline->* TO <fs_dyntable>.
    ENDFORM.                    " CREATE_DYNAMIC_TABLE
    *&      Form  FIELDCATALOG
    FORM fieldcatalog USING field table f_txt.
      wa_fcat-fieldname = field.
      wa_fcat-tabname   = table.
      wa_fcat-seltext = f_txt.
      APPEND wa_fcat TO it_fcat.
      CLEAR  wa_fcat.
    ENDFORM.                    " FIELDCATALOG
    *&      Form  FIELDCATALOG1
    FORM fieldcatalog1 USING field table f_txt.
      wa_fcatalog-fieldname = field.
      wa_fcatalog-tabname   = table.
      wa_fcatalog-seltext_m = f_txt.
      APPEND wa_fcatalog TO it_fcatalog.
      CLEAR  wa_fcatalog.
    ENDFORM.                    " FIELDCATALOG1 </pre>
    </font>
    Thanks
    Venkat.O

  • Dynamicly creating an internal table with header line

    Hi experts,
    I am trying to do a read on an internal table using field symbols of type any table. To be able to read more than one row at once, I'd like to read it into another internal table (instead of just one line and instead of looping through them one by one).
    So far the following line rendered an error that the target internal table doesn't have a header line
    read table <fs_v_tab> WITH KEY (<fs_comp>) = <fs_param>-low INTO <fs_v_tab>.
    (also attempted using "<fs_v_tab>->*" & "<fs_v_tab>[]" to be silly)
    Based on the following article, I was wondering if it were possible to dynamicly create an internal table with header line.
    [http://help-abap.blogspot.com/2008/09/dynamic-internal-table-creation.html|http://help-abap.blogspot.com/2008/09/dynamic-internal-table-creation.html]
    Any help or tips on how to dynamicly filter an internal table field-symbol is greatly appreciated!

    Just read the online help:
    This statement reads a row from internal table itab.
    Or more exact:
    This statement reads one row from internal table itab.
    Therefore you can not read multiple lines into another table. The header line is needed to put the result in. And this is not what you intended, the result will be in the header line, not in the table itself.
    If the row to be read is not uniquely specified, the first suitable row is read. In the case of index tables, this row has the lowest table index of all matching rows.
    At least you have to do what you dont wanna do: looping.

  • Internal table with Dynamic and Non dynamic fileds

    Hi Experts,
    How to get the internal table with Dynamic and Non-Dynamic Fields.
    Could u please help me.
    Thanks,
    Varun

    Hi,
       Execute the below sample code or analyze it there is appropriate description provided.
    *& Report  ZTEST_PRM_DYN_ALV
    REPORT  ZTEST_PRM_DYN_ALV.
    type-pools: slis.
    field-symbols: <dyn_table> type standard table,
    <dyn_wa>.
    data: alv_fldcat type slis_t_fieldcat_alv,
    it_fldcat type lvc_t_fcat.
    selection-screen begin of block b1 with frame title text-001.
    parameters: p_flds(5) type c.
    selection-screen end of block b1.
    start-of-selection.
    *build the dynamic internal table
    perform build_dyn_itab.
    *write 5 records to the alv grid
    do 5 times.
    perform build_report.
    enddo.
    *call the alv grid.
    perform call_alv.
    *Build_dyn_itab
    form build_dyn_itab.
    data: new_table type ref to data,
    new_line type ref to data,
    wa_it_fldcat type lvc_s_fcat.
    *Create fields .
    clear wa_it_fldcat.
    wa_it_fldcat-fieldname = 'name1'.
    wa_it_fldcat-datatype = 'mara-matnr'.
    wa_it_fldcat-intlen = 5.
    append wa_it_fldcat to it_fldcat .
    *clear wa_it_fldcat.
    wa_it_fldcat-fieldname = sy-index.
    wa_it_fldcat-datatype = 'CHAR'.
    wa_it_fldcat-intlen = 5.
    append wa_it_fldcat to it_fldcat .
    do p_flds times.
    clear wa_it_fldcat.
    wa_it_fldcat-fieldname = sy-index.
    wa_it_fldcat-datatype = 'CHAR'.
    wa_it_fldcat-intlen = 6.
    append wa_it_fldcat to it_fldcat .
    enddo.
    *Create dynamic internal table and assign to FS
    call method cl_alv_table_create=>create_dynamic_table
    exporting
    it_fieldcatalog = it_fldcat
    importing
    ep_table = new_table.
    assign new_table->* to <dyn_table>.
    *Create dynamic work area and assign to FS
    create data new_line like line of <dyn_table>.
    assign new_line->* to <dyn_wa>.
    endform.
    *Form build_report
    form build_report.
    data: fieldname(20) type c.
    data: fieldvalue(5) type c.
    data: index(3) type c.
    field-symbols: <fs1>.
    do p_flds times.
    index = sy-index.
    *Set up fieldvalue
    concatenate 'FLD' index into
    fieldvalue.
    condense fieldvalue no-gaps.
    assign component index of structure <dyn_wa> to <fs1>.
    <fs1> = fieldvalue.
    enddo.
    *Append to the dynamic internal table
    append <dyn_wa> to <dyn_table>.
    endform.
    *CALL_ALV
    form call_alv.
    data: wa_cat like line of alv_fldcat.
    *clear wa_cat.
    wa_cat-fieldname = 'matnr'.
    wa_cat-seltext_s = sy-index.
    wa_cat-outputlen = '10'.
    append wa_cat to alv_fldcat.
    do p_flds times.
    clear wa_cat.
    wa_cat-fieldname = sy-index.
    wa_cat-seltext_s = sy-index.
    wa_cat-outputlen = '6'.
    append wa_cat to alv_fldcat.
    enddo.
    *Call ABAP List Viewer (ALV)
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
    it_fieldcat = alv_fldcat
    tables
    t_outtab = <dyn_table>.
    endform.
    Hope this will help, reward if found usefull.
    Cheers,
    Ram.

  • Dynamic internal table with problem

    Hi,
    I have developed a program to update standard table. I am using dynamic internal table creation concept. But my dynamic internal table is having width only 1200 bytes. But many standard tables have more than that width. Do you have any input create dynamic internal table with more than 1200 bytes width..
    Have a look at the error.
    [http://3.bp.blogspot.com/_O5f8iAlgdNQ/SjYXTBpO92I/AAAAAAAAErI/Fs996_APHbE/s1600-h/error-792463.JPG|http://3.bp.blogspot.com/_O5f8iAlgdNQ/SjYXTBpO92I/AAAAAAAAErI/Fs996_APHbE/s1600-h/error-792463.JPG]
    Expecting reply
    Thanks
    Venkat

    Hi,
    DATA: IT_TABSTRUC     TYPE STANDARD TABLE OF DFIES INITIAL SIZE 0,
            V_REF        TYPE REF TO DATA,
              V_I_AVL_CAT  TYPE TABLE OF LVC_S_FCAT.
    FIELD-SYMBOLS : <F_FS_DATA>   TYPE STANDARD TABLE.
    SELECTION-SCREEN:BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001
    NO INTERVALS.
    PARAMETERS: P_TABNAM TYPE X_TABNAME.
    SELECTION-SCREEN:END OF BLOCK B1.
      CALL FUNCTION 'DDIF_FIELDINFO_GET'
        EXPORTING
          TABNAME        = p_tabnam
          LANGU          = SY-LANGU
        TABLES
          DFIES_TAB      = IT_TABSTRUC
        EXCEPTIONS
          NOT_FOUND      = 1
          INTERNAL_ERROR = 2
          OTHERS         = 3.
      LOOP AT IT_TABSTRUC .
        V_LS_AVL_CAT-FIELDNAME = IT_TABSTRUC -FIELDNAME.
        V_LS_AVL_CAT-REF_TABLE = P_TABNAM.
        V_LS_AVL_CAT-REF_FIELD = IT_TABSTRUC -FIELDNAME.
        APPEND V_LS_AVL_CAT TO V_I_AVL_CAT.
      ENDLOOP.
      CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
        EXPORTING
          IT_FIELDCATALOG = V_I_AVL_CAT
        IMPORTING
          EP_TABLE        = V_REF.
      ASSIGN V_REF->* TO <F_FS_DATA>.
      FREE V_REF.
      SELECT * FROM (P_TABNAM) INTO CORRESPONDING
              FIELDS OF TABLE <F_FS_DATA> .
    Hope this resolves ur probs....

  • Pass the internal table with different structures to the class module

    Hi ,
    I have created a class method to fill up the data in XML format. the method can be called from various programs with internal table with different structures. I want to pass it as dynamic How can I do that.
    I tried to declare that as type any.
    but not working.
    regards,
    Madhuri

    Hi,
    You could work with data reference.
    Use GET REFERENCE OF itab INTO data_ref for passing the internal table to your method, and dereference it within the method with ASSIGN statement...
    DATA: lr_data TYPE REF TO data.
    GET REFERENCE OF itab INTO lr_data.
    CALL METHOD meth EXPORTING pr_data = lr_data.
    METHOD meth.
      FIELD-SYMBOLS <fs> TYPE ANY TABLE
      ASSIGN pr_data->* TO <fs>.
    ENDMETHOD.
    Kr,
    Manu.

  • Get the Common from Two Internal Tables with same structure

    Hi ,
    I need to get the Common data from Two Internal Tables with same structure with using the looping method.
    For e.g.
    I have two internal table say ITAB1 and ITAB2.
    ITAB1 has values A,B,C,D,E,F
    ITAB2 has values A,H,B,Y,O
    Output at runtime should be : A,B

    Hi mohit,
    1. If u want to compare all fields,
       for matching purpose,
       then we can do like this.
    2.
    report abc.
    data : a like t001 occurs 0 with header line.
    data : b like t001 occurs 0 with header line.
    loop at a.
      LOOP AT B.
        IF A = B.
          WRITE :/ 'SAME'.
        ENDIF.
      endloop.
    ENDLOOP.
    regards,
    amit m.

  • Problem with creating an dynamic internal table with only one field.

    Hi,
    i create an internal table like this:
    FIELD-SYMBOLS: <GT_ITAB>      TYPE TABLE,
                   <GS_ITAB>,
                   <FS>.
    DATA: GT_DATA TYPE REF TO DATA.
    DATA: GS_DATA TYPE REF TO DATA.
    DATA: TABNAME   LIKE DD03L-TABNAME.
    DATA: FIELDNAME LIKE DD03L-FIELDNAME.
    DATA: TBFDNAM   TYPE TBFDNAM VALUE 'LFA1-NAME1'.
    SPLIT TBFDNAM AT '-' INTO TABNAME FIELDNAME.
    CREATE DATA GT_DATA TYPE TABLE OF (TABNAME).
    ASSIGN GT_DATA->* TO <GT_ITAB>.
    CREATE DATA GS_DATA  LIKE LINE OF <GT_ITAB>.
    ASSIGN GS_DATA->* TO <GS_ITAB>.
    SELECT * FROM (TABNAME) INTO CORRESPONDING FIELDS OF TABLE <GT_ITAB>.
      BREAK-POINT.
    it works OK.
    Now i want to create an internal table not like LFA1 but with LFA1-NAME1 Field TBFDNAM.
    It's not only LFA1-NAME1 it shell be the value of TBFDNAM.
    When i change
    CREATE DATA GT_DATA TYPE TABLE OF (TABNAME).
    to
    CREATE DATA GT_DATA TYPE TABLE OF ( TBFDNAM).
    i get an shortdump.
    Any idea?
    Regards, Dieter

    Hi Dieter,
    Your approach is ok, but it will create dynamic table without a structure of NAME1. Only the line type will be suitable (but field name will not exists -> hence the error in the select statement).
    In this case you need to create a dynamic table which structure consists of one field named NAME1.
    This code is the appropriate one:
    " your definitions
    DATA: tabname LIKE dd03l-tabname.
    DATA: fieldname LIKE dd03l-fieldname.
    DATA: tbfdnam TYPE tbfdnam VALUE 'LFA1-NAME1'.
    FIELD-SYMBOLS <gt_itab> TYPE table.
    "new ones
    DATA: it_fcat TYPE lvc_t_fcat WITH HEADER LINE.
    DATA: gt_itab TYPE REF TO data.
    " get table and fieldname
    SPLIT tbfdnam AT '-' INTO tabname fieldname.
    " create dynamic table with structure NAME1 (only one field)
    it_fcat-fieldname = fieldname.
    it_fcat-tabname = tabname.
    APPEND it_fcat.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
        it_fieldcatalog           = it_fcat[]
      IMPORTING
        ep_table                  = gt_itab
      EXCEPTIONS
        generate_subpool_dir_full = 1
        OTHERS                    = 2.
    CHECK sy-subrc = 0.
    " dereference table
    ASSIGN gt_itab->* TO <gt_itab>.
    " insert data only to NAME1 field
    SELECT * FROM (tabname) INTO CORRESPONDING FIELDS OF TABLE <gt_itab>.
    I checked, this works fine:)
    Regards
    Marcin

  • How to create Dynamic internal table with columns also created dynamically.

    Hi All,
    Any info on how to create a dynamic internal table along with columns(fields) also to be created dynamically.
    My requirement is ..On the selection screen I enter the number of fields to be in the internal table which gets created dynamically.
    I had gone thru some posts on dynamic table creation,but could'nt find any on the dynamic field creation.
    Any suggestions pls?
    Thanks
    Nara

    I don't understand ...
    something like that ?
    *   Form P_MODIFY_HEADER.                                              *
    form p_modify_header.
      data : is_fieldcatalog type lvc_s_fcat ,
             v_count(2)      type n ,
             v_date          type d ,
             v_buff(30).
    * Update the fieldcatalog.
      loop at it_fieldcatalog into is_fieldcatalog.
        check is_fieldcatalog-fieldname+0(3) eq 'ABS' or
              is_fieldcatalog-fieldname+0(3) eq 'VAL' .
        move : is_fieldcatalog-fieldname+3(2) to v_count ,
               p_perb2+5(2)                   to v_date+4(2) ,
               p_perb2+0(4)                   to v_date+0(4) ,
               '01'                           to v_date+6(2) .
        v_count = v_count - 1.
        call function 'RE_ADD_MONTH_TO_DATE'
            exporting
              months        = v_count
              olddate       = v_date
            importing
              newdate       = v_date.
        if is_fieldcatalog-fieldname+0(3) eq 'ABS'.
          concatenate 'Quantité 0'
                      v_date+4(2)
                      v_date+0(4)
                      into v_buff.
        else.
          concatenate 'Montant 0'
                      v_date+4(2)
                      v_date+0(4)
                      into v_buff.
        endif.
        move : v_buff to is_fieldcatalog-scrtext_s ,
               v_buff to is_fieldcatalog-scrtext_m ,
               v_buff to is_fieldcatalog-scrtext_l ,
               v_buff to is_fieldcatalog-reptext .
        modify it_fieldcatalog from is_fieldcatalog.
      endloop.
    * Modify the fieldcatalog.
      call method obj_grid->set_frontend_fieldcatalog
           exporting it_fieldcatalog = it_fieldcatalog.
    * Refresh the display of the grid.
      call method obj_grid->refresh_table_display.
    endform.                     " P_MODIFY_HEADER

Maybe you are looking for

  • How can servlet serve more than one client's socket links when tomcat start

    I have done this in the servlet's 'init' method: while (true) Socket sk = server.accept (); new ServerThread (sk).start (); but tomcat STOPPED at this point! The webapp didnot even been installed. But I want to show the index.jsp pages of the webapp,

  • Bean not found. WEBUTIL_FILE_TRANSFER.getMaxTransfer will not work

    Hi - I am installing WEBUTIL and trying to configure according to documentation. I get the following error. What I noticed, here is 1. JACOB.jar and frmwebutil.jsr are not being loaded 2. I do not see any certificates got created in Jinitiator - Wher

  • PKCS#11 support in J2SE 1.4

    Hello All, First of all I am quite new to Java PKCS#11 support (only couple hours into it :) ). I found out that J2SE 1.5 has the sun PKCS#11 provider pre-configured into it. However, I want to use the PKCS#11 provider with J2SE 1.4 as well, but I am

  • Some applications frequently need to redo the inital setup procedure.

    I have Os x 10.4.6. Often, not everytime, Mail, toast and several other applications require going through the setup procedure as if I had just opened a brand new application. I am not sure of the cause as it happens after logouts, permmission repair

  • Getting portal runtime error when cancel button is pressed

    Dear team,           When i am trying to reset password, in that screen when i press cancel, i am getting portal runtime error . Actually when i press that button it should come to the intial login screen but now it is coming to the initial login scr