<?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: How dynamically change internal table structure by 'Create data' in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108957#M105604</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;    This is OLE program which i created , using dynamic table concept,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just copy past the code and run it in se38.&lt;/P&gt;&lt;P&gt;give table name as mara,or knvv or any thing z-table name&lt;/P&gt;&lt;P&gt;dont change other parameter.&lt;/P&gt;&lt;P&gt;you will see the inernal table is created dynamically, first  column names are retrieved dynamically and the 5 row of data of that table is in output.hope you will like it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ztest_table MESSAGE-ID zz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;INCLUDE ole2incl.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PARAMETERS: p_table LIKE dd02l-tabname.&lt;/P&gt;&lt;P&gt;PARAMETER: p_col1 type i default 1,&lt;/P&gt;&lt;P&gt;           p_col2 type i default 5 .&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="------------" /&gt;Data for table definition--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;DATA:  BEGIN OF tab OCCURS 500,&lt;/P&gt;&lt;P&gt;          fieldname LIKE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;      END OF tab.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="-----------------" /&gt;data for OLE--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="--------------------" /&gt;&lt;P&gt;DATA: gs_word TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_documents TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_actdoc TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_application TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_options TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_actwin TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_actpan TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_view TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_selection TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_font TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_parformat TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_tables TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_range TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_table TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_table_border TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_cell TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_paragraph TYPE ole2_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gv_pos(5) TYPE n.&lt;/P&gt;&lt;P&gt;data: str(50).&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt; perform validate_table_name.&lt;/P&gt;&lt;P&gt; perform validate_col_no.&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;  PERFORM create_ole_word.&lt;/P&gt;&lt;P&gt;  PERFORM table_draw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------" /&gt;Form Definition -&lt;HR originaltext="----------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_ole_word&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM create_ole_word.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT gs_word 'word.application'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0 .&lt;/P&gt;&lt;P&gt;    MESSAGE e303 WITH 'Error in creating ole object'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_word 'Visible' = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_word 'Documents' = gs_documents.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_documents 'Add'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_word 'ActiveDocument' = gs_actdoc.&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_actdoc 'Application' = gs_application .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_application 'Options' = gs_options .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_options 'MeasurementUnit' = '1' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_application 'Selection' = gs_selection .&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_selection 'Font' = gs_font .&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_selection 'ParagraphFormat' = gs_parformat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Bold' = '1' . "Not bold&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Italic' = '0' . "Italic&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_parformat 'Alignment' = '1' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeText'&lt;/P&gt;&lt;P&gt;    EXPORTING #1 = 'This is an OLE example!'.&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeParagraph' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET PROPERTY OF gs_view 'SeekView' = '0' .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--Reseting font attributes for the title&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Name' = 'Times New Roman' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Size' = '10' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Bold' = '1' . "Bold&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Italic' = '0' . "Not Italic&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined&lt;/P&gt;&lt;P&gt;*--Setting paragraph format attribute&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_parformat 'Alignment' = '1' . "Centered&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeText'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;  #1 = text-000.&lt;/P&gt;&lt;P&gt;*--Advancing cursor to the new line&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeParagraph' .&lt;/P&gt;&lt;P&gt;*--reseting font attributes for ordinary text&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Name' = 'Times New Roman' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Size' = '10' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Bold' = '0' . "Not bold&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Italic' = '0' . "Not Italic&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate 'Table Data of :' p_table into str separated by space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Setting paragraph format attribute&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_parformat 'Alignment' = '1' . "Justified&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeText'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;  #1 = str.&lt;/P&gt;&lt;P&gt;*--Skip some lines&lt;/P&gt;&lt;P&gt;  DO 4 TIMES .&lt;/P&gt;&lt;P&gt;    CALL METHOD OF gs_selection 'TypeParagraph' .&lt;/P&gt;&lt;P&gt;  ENDDO .&lt;/P&gt;&lt;P&gt;*--Getting entity handles for the entities on the way&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_actdoc 'Tables' = gs_tables .&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_selection 'Range' = gs_range .&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_ole_word&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  table_draw&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM table_draw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: column_count TYPE i,&lt;/P&gt;&lt;P&gt;        row_count TYPE i,&lt;/P&gt;&lt;P&gt;        t_col             TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;        t_row             TYPE i VALUE 1.&lt;/P&gt;&lt;P&gt;  DATA: new_table TYPE REF TO data.&lt;/P&gt;&lt;P&gt;  DATA: new_line  TYPE REF TO data.&lt;/P&gt;&lt;P&gt;  DATA: it_fcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;        is_fcat LIKE LINE OF it_fcat.&lt;/P&gt;&lt;P&gt;  DATA: it_fieldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;        is_fieldcat LIKE LINE OF it_fieldcat.&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;l_table&amp;gt; TYPE ANY TABLE,&lt;/P&gt;&lt;P&gt;                 &amp;lt;l_line&amp;gt;  TYPE ANY,&lt;/P&gt;&lt;P&gt;                 &amp;lt;l_field&amp;gt; TYPE ANY.&lt;/P&gt;&lt;P&gt;*----&lt;DEL&gt;Creating dynamic structure&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_structure_name = p_table&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            ct_fieldcat      = it_fcat[].&lt;/P&gt;&lt;P&gt;  LOOP AT it_fcat INTO is_fcat.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING is_fcat TO is_fieldcat.&lt;/P&gt;&lt;P&gt;    is_fieldcat-fieldname = is_fcat-fieldname.&lt;/P&gt;&lt;P&gt;    is_fieldcat-ref_field = is_fcat-fieldname.&lt;/P&gt;&lt;P&gt;    is_fieldcat-ref_table = is_fcat-ref_tabname.&lt;/P&gt;&lt;P&gt;    APPEND is_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a new Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 = it_fieldcat&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;          ep_table        = new_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a new Line with the same structure of the table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ASSIGN new_table-&amp;gt;* TO &amp;lt;l_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  CREATE DATA new_line LIKE LINE OF &amp;lt;l_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN new_line-&amp;gt;* TO &amp;lt;l_line&amp;gt;.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;getting field name -&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;&lt;P&gt;  t_col = 1.&lt;/P&gt;&lt;P&gt;  SELECT fieldname INTO  tab FROM dd03l WHERE tabname EQ p_table.&lt;/P&gt;&lt;P&gt;    if TAB-FIELDNAME NP '&lt;STRONG&gt;INCLUDE&lt;/STRONG&gt;'.&lt;/P&gt;&lt;P&gt;     if SY-DBCNT &amp;gt;= p_col1 and&lt;/P&gt;&lt;P&gt;        SY-DBCNT &amp;lt;= p_col2.&lt;/P&gt;&lt;P&gt;        append tab.&lt;/P&gt;&lt;P&gt;        t_col = t_col + 1.&lt;/P&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;       sy-dbcnt = sy-dbcnt - 1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if t_col &amp;gt;  5.&lt;/P&gt;&lt;P&gt;       exit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE tab LINES  column_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CALL METHOD OF gs_tables 'Add' = gs_table&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;   #1 = gs_range " Handle for range entity&lt;/P&gt;&lt;P&gt;   #2 = '11' "Number of rows&lt;/P&gt;&lt;P&gt;   #3 = column_count. "Number of columns&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Setting border attribute for the table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_table 'Borders' = gs_table_border.&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_table_border 'Enable' = '1' . "With&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt;header of table&lt;/P&gt;&lt;P&gt;  t_col = 1.&lt;/P&gt;&lt;P&gt;  LOOP AT tab.&lt;/P&gt;&lt;P&gt;*--Getting cell coordinates&lt;/P&gt;&lt;P&gt;    CALL METHOD OF gs_table 'Cell' = gs_cell&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;    #1 = '1' "first row&lt;/P&gt;&lt;P&gt;    #2 = t_col. "first column&lt;/P&gt;&lt;P&gt;**--Getting the range handle to write the text&lt;/P&gt;&lt;P&gt;    GET PROPERTY OF gs_cell 'Range' = gs_range .&lt;/P&gt;&lt;P&gt;*--Filling the cell&lt;/P&gt;&lt;P&gt;    SET PROPERTY OF gs_range 'Text' = tab-fieldname .&lt;/P&gt;&lt;P&gt;    t_col = t_col + 1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;    t_row = t_row + 1.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="----------" /&gt;filling data--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT (TAB)  FROM (p_table) INTO TABLE &amp;lt;l_table&amp;gt; up to 10 rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT &amp;lt;l_table&amp;gt; ASSIGNING &amp;lt;l_line&amp;gt;.&lt;/P&gt;&lt;P&gt;     t_col = 1.&lt;/P&gt;&lt;P&gt;   LOOP AT TAB .&lt;/P&gt;&lt;P&gt;    ASSIGN COMPONENT tab-fieldname OF STRUCTURE &amp;lt;l_line&amp;gt; TO &amp;lt;l_field&amp;gt;.&lt;/P&gt;&lt;P&gt;    CALL METHOD OF gs_table 'Cell' = gs_cell&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;     #1 = t_row&lt;/P&gt;&lt;P&gt;     #2 = t_col. "second column&lt;/P&gt;&lt;P&gt;    GET PROPERTY OF gs_cell 'Range' = gs_range .&lt;/P&gt;&lt;P&gt;    SET PROPERTY OF gs_range 'Text' = &amp;lt;l_field&amp;gt; .&lt;/P&gt;&lt;P&gt;   t_col = t_col + 1.&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;   t_row = t_row + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   if t_row &amp;gt; 11.&lt;/P&gt;&lt;P&gt;      exit.&lt;/P&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FREE OBJECT gs_word .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " table_draw&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_table_name&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form validate_table_name.&lt;/P&gt;&lt;P&gt;SELECT fieldname FROM dd03l into corresponding fields&lt;/P&gt;&lt;P&gt;                       of table tab where tabname = p_table.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  message e307 with 'Table does not exist'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;clear tab[].&lt;/P&gt;&lt;P&gt;endform.                    " validate_table_name&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_col_no&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form validate_col_no.&lt;/P&gt;&lt;P&gt;data: lv_diff type i.&lt;/P&gt;&lt;P&gt;if p_col1 &amp;lt; 1 or p_col2 &amp;lt; 1.&lt;/P&gt;&lt;P&gt;   message e307 with 'Wrong Column Number'.&lt;/P&gt;&lt;P&gt;elseif p_col2 &amp;lt; p_col2.&lt;/P&gt;&lt;P&gt;   message e307 with 'Final Column No should be greater than initial'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_diff = p_col2 - p_col1.&lt;/P&gt;&lt;P&gt; if lv_diff &amp;gt;= 5.&lt;/P&gt;&lt;P&gt;   message e307 with 'Maximum 5 Column can be printed'.&lt;/P&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " validate_col_no&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 07 Nov 2005 08:21:41 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2005-11-07T08:21:41Z</dc:date>
    <item>
      <title>How dynamically change internal table structure by 'Create data'</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108955#M105602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How dynamically change internal table structure by 'Create data'?&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;before sturcture &lt;/P&gt;&lt;P&gt;        ITAB  field1 field2&lt;/P&gt;&lt;P&gt;after structure&lt;/P&gt;&lt;P&gt;        ITAB  field1 field2 field3 field4 .......&lt;/P&gt;&lt;P&gt;Please give me any idea.&lt;/P&gt;&lt;P&gt;Thanks and regards,&lt;/P&gt;&lt;P&gt;collysun.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Nov 2005 07:59:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108955#M105602</guid>
      <dc:creator>com_2018</dc:creator>
      <dc:date>2005-11-07T07:59:18Z</dc:date>
    </item>
    <item>
      <title>Re: How dynamically change internal table structure by 'Create data'</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108956#M105603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Plz reward points if it helps you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if your structure changes from one defined structure to another one, you can try this: &lt;/P&gt;&lt;P&gt;ASSIGN yourfield CASTING TYPE yourstructure &lt;/P&gt;&lt;P&gt;or CREATE DATA yourdata TYPE yourstructure. &lt;/P&gt;&lt;P&gt;If your structure has to be really dynamic - like ALV - you can use the class CL_ALV_TABLE_CREATE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try this example: &lt;/P&gt;&lt;P&gt;===================================== &lt;/P&gt;&lt;P&gt;REPORT zxxx_create_data_dynamic . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_fcat TYPE slis_t_fieldcat_alv, &lt;/P&gt;&lt;P&gt;      is_fcat LIKE LINE OF it_fcat. &lt;/P&gt;&lt;P&gt;DATA: it_fieldcat TYPE lvc_t_fcat, &lt;/P&gt;&lt;P&gt;      is_fieldcat LIKE LINE OF it_fieldcat. &lt;/P&gt;&lt;P&gt;DATA: new_table TYPE REF TO data. &lt;/P&gt;&lt;P&gt;DATA: new_line  TYPE REF TO data. &lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;l_table&amp;gt; TYPE ANY TABLE, &lt;/P&gt;&lt;P&gt;               &amp;lt;l_line&amp;gt;  TYPE ANY, &lt;/P&gt;&lt;P&gt;               &amp;lt;l_field&amp;gt; TYPE ANY. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build fieldcat &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' &lt;/P&gt;&lt;P&gt;       EXPORTING &lt;/P&gt;&lt;P&gt;           i_structure_name = 'SYST' "any table name (sap or ztable)&lt;/P&gt;&lt;P&gt;       CHANGING &lt;/P&gt;&lt;P&gt;           ct_fieldcat      = it_fcat[]. &lt;/P&gt;&lt;P&gt;   LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS initial. &lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING is_fcat TO is_fieldcat. &lt;/P&gt;&lt;P&gt;        is_fieldcat-fieldname = is_fcat-fieldname. &lt;/P&gt;&lt;P&gt;        is_fieldcat-ref_field = is_fcat-fieldname. &lt;/P&gt;&lt;P&gt;        is_fieldcat-ref_table = is_fcat-ref_tabname. &lt;/P&gt;&lt;P&gt;        APPEND is_fieldcat TO it_fieldcat. &lt;/P&gt;&lt;P&gt;   ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a new Table &lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 = it_fieldcat &lt;/P&gt;&lt;P&gt;       IMPORTING &lt;/P&gt;&lt;P&gt;        ep_table        = new_table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a new Line with the same structure of the table. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ASSIGN new_table-&amp;gt;* TO &amp;lt;l_table&amp;gt;. &lt;/P&gt;&lt;P&gt;CREATE DATA new_line LIKE LINE OF &amp;lt;l_table&amp;gt;. &lt;/P&gt;&lt;P&gt;ASSIGN new_line-&amp;gt;* TO &amp;lt;l_line&amp;gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Nov 2005 08:14:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108956#M105603</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-07T08:14:42Z</dc:date>
    </item>
    <item>
      <title>Re: How dynamically change internal table structure by 'Create data'</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108957#M105604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;    This is OLE program which i created , using dynamic table concept,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just copy past the code and run it in se38.&lt;/P&gt;&lt;P&gt;give table name as mara,or knvv or any thing z-table name&lt;/P&gt;&lt;P&gt;dont change other parameter.&lt;/P&gt;&lt;P&gt;you will see the inernal table is created dynamically, first  column names are retrieved dynamically and the 5 row of data of that table is in output.hope you will like it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ztest_table MESSAGE-ID zz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;INCLUDE ole2incl.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;PARAMETERS: p_table LIKE dd02l-tabname.&lt;/P&gt;&lt;P&gt;PARAMETER: p_col1 type i default 1,&lt;/P&gt;&lt;P&gt;           p_col2 type i default 5 .&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="------------" /&gt;Data for table definition--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;DATA:  BEGIN OF tab OCCURS 500,&lt;/P&gt;&lt;P&gt;          fieldname LIKE dd03l-fieldname,&lt;/P&gt;&lt;P&gt;      END OF tab.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="-----------------" /&gt;data for OLE--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="--------------------" /&gt;&lt;P&gt;DATA: gs_word TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_documents TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_actdoc TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_application TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_options TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_actwin TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_actpan TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_view TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_selection TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_font TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_parformat TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_tables TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_range TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_table TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_table_border TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_cell TYPE ole2_object,&lt;/P&gt;&lt;P&gt;      gs_paragraph TYPE ole2_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gv_pos(5) TYPE n.&lt;/P&gt;&lt;P&gt;data: str(50).&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt; perform validate_table_name.&lt;/P&gt;&lt;P&gt; perform validate_col_no.&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;  PERFORM create_ole_word.&lt;/P&gt;&lt;P&gt;  PERFORM table_draw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------" /&gt;Form Definition -&lt;HR originaltext="----------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_ole_word&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM create_ole_word.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT gs_word 'word.application'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0 .&lt;/P&gt;&lt;P&gt;    MESSAGE e303 WITH 'Error in creating ole object'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_word 'Visible' = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_word 'Documents' = gs_documents.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_documents 'Add'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_word 'ActiveDocument' = gs_actdoc.&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_actdoc 'Application' = gs_application .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_application 'Options' = gs_options .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_options 'MeasurementUnit' = '1' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_application 'Selection' = gs_selection .&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_selection 'Font' = gs_font .&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_selection 'ParagraphFormat' = gs_parformat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Bold' = '1' . "Not bold&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Italic' = '0' . "Italic&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_parformat 'Alignment' = '1' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeText'&lt;/P&gt;&lt;P&gt;    EXPORTING #1 = 'This is an OLE example!'.&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeParagraph' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET PROPERTY OF gs_view 'SeekView' = '0' .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*--Reseting font attributes for the title&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Name' = 'Times New Roman' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Size' = '10' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Bold' = '1' . "Bold&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Italic' = '0' . "Not Italic&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined&lt;/P&gt;&lt;P&gt;*--Setting paragraph format attribute&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_parformat 'Alignment' = '1' . "Centered&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeText'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;  #1 = text-000.&lt;/P&gt;&lt;P&gt;*--Advancing cursor to the new line&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeParagraph' .&lt;/P&gt;&lt;P&gt;*--reseting font attributes for ordinary text&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Name' = 'Times New Roman' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Size' = '10' .&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Bold' = '0' . "Not bold&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Italic' = '0' . "Not Italic&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_font 'Underline' = '0' . "Not underlined&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate 'Table Data of :' p_table into str separated by space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Setting paragraph format attribute&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_parformat 'Alignment' = '1' . "Justified&lt;/P&gt;&lt;P&gt;  CALL METHOD OF gs_selection 'TypeText'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;  #1 = str.&lt;/P&gt;&lt;P&gt;*--Skip some lines&lt;/P&gt;&lt;P&gt;  DO 4 TIMES .&lt;/P&gt;&lt;P&gt;    CALL METHOD OF gs_selection 'TypeParagraph' .&lt;/P&gt;&lt;P&gt;  ENDDO .&lt;/P&gt;&lt;P&gt;*--Getting entity handles for the entities on the way&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_actdoc 'Tables' = gs_tables .&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_selection 'Range' = gs_range .&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_ole_word&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  table_draw&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM table_draw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: column_count TYPE i,&lt;/P&gt;&lt;P&gt;        row_count TYPE i,&lt;/P&gt;&lt;P&gt;        t_col             TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;        t_row             TYPE i VALUE 1.&lt;/P&gt;&lt;P&gt;  DATA: new_table TYPE REF TO data.&lt;/P&gt;&lt;P&gt;  DATA: new_line  TYPE REF TO data.&lt;/P&gt;&lt;P&gt;  DATA: it_fcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;        is_fcat LIKE LINE OF it_fcat.&lt;/P&gt;&lt;P&gt;  DATA: it_fieldcat TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;        is_fieldcat LIKE LINE OF it_fieldcat.&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;l_table&amp;gt; TYPE ANY TABLE,&lt;/P&gt;&lt;P&gt;                 &amp;lt;l_line&amp;gt;  TYPE ANY,&lt;/P&gt;&lt;P&gt;                 &amp;lt;l_field&amp;gt; TYPE ANY.&lt;/P&gt;&lt;P&gt;*----&lt;DEL&gt;Creating dynamic structure&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_structure_name = p_table&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            ct_fieldcat      = it_fcat[].&lt;/P&gt;&lt;P&gt;  LOOP AT it_fcat INTO is_fcat.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING is_fcat TO is_fieldcat.&lt;/P&gt;&lt;P&gt;    is_fieldcat-fieldname = is_fcat-fieldname.&lt;/P&gt;&lt;P&gt;    is_fieldcat-ref_field = is_fcat-fieldname.&lt;/P&gt;&lt;P&gt;    is_fieldcat-ref_table = is_fcat-ref_tabname.&lt;/P&gt;&lt;P&gt;    APPEND is_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a new Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 = it_fieldcat&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;          ep_table        = new_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create a new Line with the same structure of the table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ASSIGN new_table-&amp;gt;* TO &amp;lt;l_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  CREATE DATA new_line LIKE LINE OF &amp;lt;l_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN new_line-&amp;gt;* TO &amp;lt;l_line&amp;gt;.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------" /&gt;&lt;P&gt;getting field name -&lt;/P&gt;&lt;HR originaltext="---------------------" /&gt;&lt;P&gt;  t_col = 1.&lt;/P&gt;&lt;P&gt;  SELECT fieldname INTO  tab FROM dd03l WHERE tabname EQ p_table.&lt;/P&gt;&lt;P&gt;    if TAB-FIELDNAME NP '&lt;STRONG&gt;INCLUDE&lt;/STRONG&gt;'.&lt;/P&gt;&lt;P&gt;     if SY-DBCNT &amp;gt;= p_col1 and&lt;/P&gt;&lt;P&gt;        SY-DBCNT &amp;lt;= p_col2.&lt;/P&gt;&lt;P&gt;        append tab.&lt;/P&gt;&lt;P&gt;        t_col = t_col + 1.&lt;/P&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;       sy-dbcnt = sy-dbcnt - 1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if t_col &amp;gt;  5.&lt;/P&gt;&lt;P&gt;       exit.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE tab LINES  column_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CALL METHOD OF gs_tables 'Add' = gs_table&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;   #1 = gs_range " Handle for range entity&lt;/P&gt;&lt;P&gt;   #2 = '11' "Number of rows&lt;/P&gt;&lt;P&gt;   #3 = column_count. "Number of columns&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Setting border attribute for the table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  GET PROPERTY OF gs_table 'Borders' = gs_table_border.&lt;/P&gt;&lt;P&gt;  SET PROPERTY OF gs_table_border 'Enable' = '1' . "With&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt;header of table&lt;/P&gt;&lt;P&gt;  t_col = 1.&lt;/P&gt;&lt;P&gt;  LOOP AT tab.&lt;/P&gt;&lt;P&gt;*--Getting cell coordinates&lt;/P&gt;&lt;P&gt;    CALL METHOD OF gs_table 'Cell' = gs_cell&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;    #1 = '1' "first row&lt;/P&gt;&lt;P&gt;    #2 = t_col. "first column&lt;/P&gt;&lt;P&gt;**--Getting the range handle to write the text&lt;/P&gt;&lt;P&gt;    GET PROPERTY OF gs_cell 'Range' = gs_range .&lt;/P&gt;&lt;P&gt;*--Filling the cell&lt;/P&gt;&lt;P&gt;    SET PROPERTY OF gs_range 'Text' = tab-fieldname .&lt;/P&gt;&lt;P&gt;    t_col = t_col + 1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;    t_row = t_row + 1.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="----------" /&gt;filling data--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT (TAB)  FROM (p_table) INTO TABLE &amp;lt;l_table&amp;gt; up to 10 rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT &amp;lt;l_table&amp;gt; ASSIGNING &amp;lt;l_line&amp;gt;.&lt;/P&gt;&lt;P&gt;     t_col = 1.&lt;/P&gt;&lt;P&gt;   LOOP AT TAB .&lt;/P&gt;&lt;P&gt;    ASSIGN COMPONENT tab-fieldname OF STRUCTURE &amp;lt;l_line&amp;gt; TO &amp;lt;l_field&amp;gt;.&lt;/P&gt;&lt;P&gt;    CALL METHOD OF gs_table 'Cell' = gs_cell&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;     #1 = t_row&lt;/P&gt;&lt;P&gt;     #2 = t_col. "second column&lt;/P&gt;&lt;P&gt;    GET PROPERTY OF gs_cell 'Range' = gs_range .&lt;/P&gt;&lt;P&gt;    SET PROPERTY OF gs_range 'Text' = &amp;lt;l_field&amp;gt; .&lt;/P&gt;&lt;P&gt;   t_col = t_col + 1.&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;   t_row = t_row + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   if t_row &amp;gt; 11.&lt;/P&gt;&lt;P&gt;      exit.&lt;/P&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FREE OBJECT gs_word .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " table_draw&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_table_name&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form validate_table_name.&lt;/P&gt;&lt;P&gt;SELECT fieldname FROM dd03l into corresponding fields&lt;/P&gt;&lt;P&gt;                       of table tab where tabname = p_table.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  message e307 with 'Table does not exist'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;clear tab[].&lt;/P&gt;&lt;P&gt;endform.                    " validate_table_name&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_col_no&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form validate_col_no.&lt;/P&gt;&lt;P&gt;data: lv_diff type i.&lt;/P&gt;&lt;P&gt;if p_col1 &amp;lt; 1 or p_col2 &amp;lt; 1.&lt;/P&gt;&lt;P&gt;   message e307 with 'Wrong Column Number'.&lt;/P&gt;&lt;P&gt;elseif p_col2 &amp;lt; p_col2.&lt;/P&gt;&lt;P&gt;   message e307 with 'Final Column No should be greater than initial'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_diff = p_col2 - p_col1.&lt;/P&gt;&lt;P&gt; if lv_diff &amp;gt;= 5.&lt;/P&gt;&lt;P&gt;   message e307 with 'Maximum 5 Column can be printed'.&lt;/P&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " validate_col_no&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Nov 2005 08:21:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108957#M105604</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-07T08:21:41Z</dc:date>
    </item>
    <item>
      <title>Re: How dynamically change internal table structure by 'Create data'</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108958#M105605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can use mthod create_dynamic_table of class cl_alv_table_create.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Checkout this weblog -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/people/subramanian.venkateswaran2/blog/2004/11/19/dynamic-internal-table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sanjay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Nov 2005 08:45:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-dynamically-change-internal-table-structure-by-create-data/m-p/1108958#M105605</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-07T08:45:42Z</dc:date>
    </item>
  </channel>
</rss>

