<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: dynamic columns in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780545#M648044</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to build the dynamic internal table. And then you can build the field catalog based on that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the following program in which it is handled dynamically,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : tadir. " table in which the obj_name field stores all the&lt;/P&gt;&lt;P&gt;                " database table names&lt;/P&gt;&lt;P&gt;TYPE-POOLS : slis.&lt;/P&gt;&lt;P&gt;TYPES ztab LIKE dcobjdef-name .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : dyntab LIKE dntab OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       dref TYPE REF TO data,&lt;/P&gt;&lt;P&gt;       i_fcat TYPE  lvc_t_fcat ,&lt;/P&gt;&lt;P&gt;       wa_fcat TYPE lvc_s_fcat ,&lt;/P&gt;&lt;P&gt;       w_pgm LIKE sy-repid,&lt;/P&gt;&lt;P&gt;       count TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;       w_obj_name LIKE tadir-obj_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : wa_fieldcat TYPE slis_fieldcat_alv,  "ALV FIELD CATALOG TABLE&lt;/P&gt;&lt;P&gt;       i_fieldcat TYPE slis_t_fieldcat_alv, "ALV FIELD CATALOG STRUCTURE&lt;/P&gt;&lt;P&gt;       i_event TYPE slis_t_event,            "ALV EVENT HANDLING TABLE&lt;/P&gt;&lt;P&gt;       wa_event TYPE slis_alv_event,         "ALV EVENT HANDLING STRUCT&lt;/P&gt;&lt;P&gt;       i_listheader TYPE slis_t_listheader,  "ALV LIST HEADER TABLE&lt;/P&gt;&lt;P&gt;       wa_listheader TYPE slis_listheader,   "ALV LIST HEADER STRUCT&lt;/P&gt;&lt;P&gt;       i_layout TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&amp;lt;newtab&amp;gt; TYPE table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_pgm = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************SELECTION-SCREEN 2000&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN BEGIN OF SCREEN 2000 AS WINDOW.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE tit1.&lt;/P&gt;&lt;P&gt;  PARAMETERS:   tab_name TYPE ztab . " Enter database table name&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN END OF SCREEN 2000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************END OF SELECTION-SCREEN 2000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  tit1 = 'Enter Table Name?'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SELECTION-SCREEN 2000 STARTING AT 10 10.&lt;/P&gt;&lt;P&gt;  PERFORM occurcheck.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*********CHECKING WHETHER THE DATABASE TABLE EXISTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM occurcheck.&lt;/P&gt;&lt;P&gt;  SELECT obj_name FROM tadir INTO w_obj_name WHERE obj_name = tab_name.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE i003."Table not found in the database .&lt;/P&gt;&lt;P&gt;    CALL SELECTION-SCREEN 2000 STARTING AT 10 10.&lt;/P&gt;&lt;P&gt;    PERFORM occurcheck.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM startprocess.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********GETTING THE FIELD NAMES OF THE INPUT DATABASE TABLE&lt;/P&gt;&lt;P&gt;FORM startprocess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'NAMETAB_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            langu   = sy-langu&lt;/P&gt;&lt;P&gt;            tabname = tab_name&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            nametab = dyntab. "dntab now contains the field names&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********FILLING THE CATALOG OF NEW DYNAMIC INTERNAL TABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT dyntab.&lt;/P&gt;&lt;P&gt;    wa_fcat-fieldname = dyntab-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fcat-ref_field = dyntab-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fcat-ref_table = dyntab-tabname.&lt;/P&gt;&lt;P&gt;    APPEND wa_fcat TO i_fcat .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********CREATING A POINTER (FIELD SYMBOL) TO THE INTERNAL TABLE&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fieldcatalog           = i_fcat&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      ep_table                  = dref.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ASSIGN  dref-&amp;gt;* TO &amp;lt;newtab&amp;gt;.&lt;/P&gt;&lt;P&gt;  SELECT * FROM (dyntab-tabname) INTO TABLE &amp;lt;newtab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********CHECKING WHETHER DATA HAS BEEN UPLOADED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE &amp;lt;newtab&amp;gt; LINES sy-tfill.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE &amp;lt;newtab&amp;gt; LINES count.&lt;/P&gt;&lt;P&gt;  IF sy-tfill = 0 .&lt;/P&gt;&lt;P&gt;    MESSAGE i001.    "Internal table is not filled&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE i002 WITH count. "Internal table is filled&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************EVENTS USED IN ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_list_type = 0  " 0-simple list, 1-hierarchial list.&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            et_events   = i_event.&lt;/P&gt;&lt;P&gt;  SORT i_event.&lt;/P&gt;&lt;P&gt;  READ TABLE i_event&lt;/P&gt;&lt;P&gt;  WITH KEY name = slis_ev_top_of_page    "TOP_OF_PAGE event&lt;/P&gt;&lt;P&gt;  INTO wa_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MOVE 'IAM_TOP_OF_PAGE' TO wa_event-form.  "IAM_TOP_OF_PAGE will&lt;/P&gt;&lt;P&gt;    "call  subroutine automatically&lt;/P&gt;&lt;P&gt;    MODIFY i_event FROM wa_event INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************DISPLAYING ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_callback_program = w_pgm&lt;/P&gt;&lt;P&gt;            i_structure_name   = dyntab-tabname&lt;/P&gt;&lt;P&gt;            it_events          = i_event&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            t_outtab           = &amp;lt;newtab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;**********FORM TOP_OF-PAGE.&lt;/P&gt;&lt;P&gt;******FILLING OF LIST HEADER TABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM iam_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'H'.     "HEADING&lt;/P&gt;&lt;P&gt;  wa_listheader-info = 'ALV CREATED DYNAMICALLY'.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.      "SUB-HEADING&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'PGM NAME:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = w_pgm.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'USER:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = sy-uname.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'DATE:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = sy-datum.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'TABLE NAME:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = dyntab-tabname.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********FUNCTION TO WRITE THE TITLE AND SUB-TITLE OF THE ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            it_list_commentary = i_listheader.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward if helpful.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Sep 2007 09:51:06 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-13T09:51:06Z</dc:date>
    <item>
      <title>dynamic columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780543#M648042</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello friends,&lt;/P&gt;&lt;P&gt;                    i am using a function module to get data reagarding batch characteristics,now i get the data in a table,also the amount of data i get varies,sometimes i get only 2 records and sometimes 10.&lt;/P&gt;&lt;P&gt;                  now i want to display this data horizhontally and im using ALV to display this.&lt;/P&gt;&lt;P&gt;                  how can i dynamically change the number of columns in my alv,&lt;/P&gt;&lt;P&gt; i think i have to use field symbols !!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2007 09:30:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780543#M648042</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-13T09:30:17Z</dc:date>
    </item>
    <item>
      <title>Re: dynamic columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780544#M648043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;an short example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT demo_select_dynamic_columns .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: itab TYPE STANDARD TABLE OF spfli,&lt;/P&gt;&lt;P&gt;      wa LIKE LINE OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: line(72) TYPE c,&lt;/P&gt;&lt;P&gt;      list LIKE TABLE OF line(72).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;line = ' CITYFROM CITYTO '.&lt;/P&gt;&lt;P&gt;APPEND line TO list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT DISTINCT (list)&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;  FROM spfli.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;  LOOP AT itab INTO wa.&lt;/P&gt;&lt;P&gt;    WRITE: / wa-cityfrom, wa-cityto.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By Chris&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2007 09:49:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780544#M648043</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-13T09:49:42Z</dc:date>
    </item>
    <item>
      <title>Re: dynamic columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780545#M648044</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to build the dynamic internal table. And then you can build the field catalog based on that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the following program in which it is handled dynamically,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : tadir. " table in which the obj_name field stores all the&lt;/P&gt;&lt;P&gt;                " database table names&lt;/P&gt;&lt;P&gt;TYPE-POOLS : slis.&lt;/P&gt;&lt;P&gt;TYPES ztab LIKE dcobjdef-name .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : dyntab LIKE dntab OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       dref TYPE REF TO data,&lt;/P&gt;&lt;P&gt;       i_fcat TYPE  lvc_t_fcat ,&lt;/P&gt;&lt;P&gt;       wa_fcat TYPE lvc_s_fcat ,&lt;/P&gt;&lt;P&gt;       w_pgm LIKE sy-repid,&lt;/P&gt;&lt;P&gt;       count TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;       w_obj_name LIKE tadir-obj_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : wa_fieldcat TYPE slis_fieldcat_alv,  "ALV FIELD CATALOG TABLE&lt;/P&gt;&lt;P&gt;       i_fieldcat TYPE slis_t_fieldcat_alv, "ALV FIELD CATALOG STRUCTURE&lt;/P&gt;&lt;P&gt;       i_event TYPE slis_t_event,            "ALV EVENT HANDLING TABLE&lt;/P&gt;&lt;P&gt;       wa_event TYPE slis_alv_event,         "ALV EVENT HANDLING STRUCT&lt;/P&gt;&lt;P&gt;       i_listheader TYPE slis_t_listheader,  "ALV LIST HEADER TABLE&lt;/P&gt;&lt;P&gt;       wa_listheader TYPE slis_listheader,   "ALV LIST HEADER STRUCT&lt;/P&gt;&lt;P&gt;       i_layout TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&amp;lt;newtab&amp;gt; TYPE table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_pgm = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************SELECTION-SCREEN 2000&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN BEGIN OF SCREEN 2000 AS WINDOW.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE tit1.&lt;/P&gt;&lt;P&gt;  PARAMETERS:   tab_name TYPE ztab . " Enter database table name&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN END OF SCREEN 2000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************END OF SELECTION-SCREEN 2000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  tit1 = 'Enter Table Name?'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SELECTION-SCREEN 2000 STARTING AT 10 10.&lt;/P&gt;&lt;P&gt;  PERFORM occurcheck.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*********CHECKING WHETHER THE DATABASE TABLE EXISTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM occurcheck.&lt;/P&gt;&lt;P&gt;  SELECT obj_name FROM tadir INTO w_obj_name WHERE obj_name = tab_name.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE i003."Table not found in the database .&lt;/P&gt;&lt;P&gt;    CALL SELECTION-SCREEN 2000 STARTING AT 10 10.&lt;/P&gt;&lt;P&gt;    PERFORM occurcheck.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM startprocess.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********GETTING THE FIELD NAMES OF THE INPUT DATABASE TABLE&lt;/P&gt;&lt;P&gt;FORM startprocess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'NAMETAB_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            langu   = sy-langu&lt;/P&gt;&lt;P&gt;            tabname = tab_name&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            nametab = dyntab. "dntab now contains the field names&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********FILLING THE CATALOG OF NEW DYNAMIC INTERNAL TABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT dyntab.&lt;/P&gt;&lt;P&gt;    wa_fcat-fieldname = dyntab-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fcat-ref_field = dyntab-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fcat-ref_table = dyntab-tabname.&lt;/P&gt;&lt;P&gt;    APPEND wa_fcat TO i_fcat .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********CREATING A POINTER (FIELD SYMBOL) TO THE INTERNAL TABLE&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fieldcatalog           = i_fcat&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      ep_table                  = dref.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ASSIGN  dref-&amp;gt;* TO &amp;lt;newtab&amp;gt;.&lt;/P&gt;&lt;P&gt;  SELECT * FROM (dyntab-tabname) INTO TABLE &amp;lt;newtab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********CHECKING WHETHER DATA HAS BEEN UPLOADED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE &amp;lt;newtab&amp;gt; LINES sy-tfill.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE &amp;lt;newtab&amp;gt; LINES count.&lt;/P&gt;&lt;P&gt;  IF sy-tfill = 0 .&lt;/P&gt;&lt;P&gt;    MESSAGE i001.    "Internal table is not filled&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE i002 WITH count. "Internal table is filled&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************EVENTS USED IN ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_list_type = 0  " 0-simple list, 1-hierarchial list.&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            et_events   = i_event.&lt;/P&gt;&lt;P&gt;  SORT i_event.&lt;/P&gt;&lt;P&gt;  READ TABLE i_event&lt;/P&gt;&lt;P&gt;  WITH KEY name = slis_ev_top_of_page    "TOP_OF_PAGE event&lt;/P&gt;&lt;P&gt;  INTO wa_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MOVE 'IAM_TOP_OF_PAGE' TO wa_event-form.  "IAM_TOP_OF_PAGE will&lt;/P&gt;&lt;P&gt;    "call  subroutine automatically&lt;/P&gt;&lt;P&gt;    MODIFY i_event FROM wa_event INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************DISPLAYING ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_callback_program = w_pgm&lt;/P&gt;&lt;P&gt;            i_structure_name   = dyntab-tabname&lt;/P&gt;&lt;P&gt;            it_events          = i_event&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            t_outtab           = &amp;lt;newtab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;**********FORM TOP_OF-PAGE.&lt;/P&gt;&lt;P&gt;******FILLING OF LIST HEADER TABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM iam_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'H'.     "HEADING&lt;/P&gt;&lt;P&gt;  wa_listheader-info = 'ALV CREATED DYNAMICALLY'.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.      "SUB-HEADING&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'PGM NAME:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = w_pgm.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'USER:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = sy-uname.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'DATE:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = sy-datum.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;  wa_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  wa_listheader-key = 'TABLE NAME:'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = dyntab-tabname.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********FUNCTION TO WRITE THE TITLE AND SUB-TITLE OF THE ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            it_list_commentary = i_listheader.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward if helpful.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Sep 2007 09:51:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dynamic-columns/m-p/2780545#M648044</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-13T09:51:06Z</dc:date>
    </item>
  </channel>
</rss>

