<?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: table control in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649022#M610509</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's a program to do what you want &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Forget Table controls . Use ALV. Once you've got a "generalized:"class as shown in this program you can use it for almost anything and can generate new programs very quickly indeed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Took me 3 mins to code this as I already had the class.&lt;/P&gt;&lt;P&gt;I've  populated the table with the 1st 200 Z* entries but you could do this via a selection such as a parmeter or standard select options.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can decide what to put in the internal table in form POPULATE_DYNAMIC_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need to define your output structure as follows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't change the name s_elements but put your structure between the begin and end of the s_elements types.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The CLASS will do the rest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:  BEGIN OF s_elements,&lt;/P&gt;&lt;P&gt;         name    TYPE trdirt-name,&lt;/P&gt;&lt;P&gt;         variant TYPE varid-variant,&lt;/P&gt;&lt;P&gt;         text    type trdirt-text,&lt;/P&gt;&lt;P&gt;         status(5)   type c,&lt;/P&gt;&lt;P&gt;END OF  s_elements.&lt;/P&gt;&lt;P&gt;DATA:   t_elements  TYPE TABLE OF s_elements,  "refers to our ITAB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a screen with a custom container on it called CCONTAINER1. (Not a spelling error. Call it CCONTAINER1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now run this code (optionally you can create a status  SE41  to get SAP standard toolbar on top of your screen and screen title).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you double click a row / cell  you'll  get the program name and variant back.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(There's a break-point in the code).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Modify this to do what you want.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Program  ZZSDNTEST.&lt;/P&gt;&lt;P&gt;INCLUDE ZZJIMBOXX_INCL. * &amp;lt;================== shown below&lt;/P&gt;&lt;P&gt;TABLES : trdirt,&lt;/P&gt;&lt;P&gt;         varid.&lt;/P&gt;&lt;P&gt;TYPES:  BEGIN OF s_elements,&lt;/P&gt;&lt;P&gt;         name    TYPE trdirt-name,&lt;/P&gt;&lt;P&gt;         variant TYPE varid-variant,&lt;/P&gt;&lt;P&gt;         text    type trdirt-text,&lt;/P&gt;&lt;P&gt;         status(5)   type c,&lt;/P&gt;&lt;P&gt;END OF  s_elements.&lt;/P&gt;&lt;P&gt;DATA:   t_elements  TYPE TABLE OF s_elements,  "refers to our ITAB&lt;/P&gt;&lt;P&gt;        my_line     TYPE s_elements.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;CREATE OBJECT z_object EXPORTING z_object = z_object.&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;build_dynamic_structures&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       my_line = my_line&lt;/P&gt;&lt;P&gt;       calling_program = sy-repid&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       dy_table = dy_table&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;       it_fldcat = it_fldcat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here before displaying you can change the field catalog to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;adjust your own names&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Method call just uses the names in the table structure.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   col_name 1 'Program' '20'.&lt;/P&gt;&lt;P&gt;   col_name 2 'Variant' '20'.&lt;/P&gt;&lt;P&gt;   col_name 3 'Description ' '30'.&lt;/P&gt;&lt;P&gt;PERFORM populate_dynamic_itab.&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;display_grid&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      g_outtab = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;      g_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;      it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;      gt_outtab = &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; SET PF-STATUS '0001'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR '000'.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;MODULE user_command_0100 INPUT.&lt;/P&gt;&lt;P&gt;  CASE sy-ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN 'RETURN'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;FORM populate_dynamic_itab.&lt;/P&gt;&lt;P&gt;ASSIGN dy_table-&amp;gt;* TO &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; CREATE DATA dy_line LIKE LINE OF &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; ASSIGN dy_line-&amp;gt;* TO &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT   a&lt;SUB&gt;variant b&lt;/SUB&gt;name b~text&lt;/P&gt;&lt;P&gt; INTO  CORRESPONDING FIELDS OF TABLE &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;       UP TO 200 rows&lt;/P&gt;&lt;P&gt;       FROM ( varid as a&lt;/P&gt;&lt;P&gt;        inner join trdirt  as b&lt;/P&gt;&lt;P&gt;         ON a&lt;SUB&gt;report eq b&lt;/SUB&gt;name )&lt;/P&gt;&lt;P&gt;        WHERE a~report like 'Z%'&lt;/P&gt;&lt;P&gt;        AND b~sprsl eq sy-langu.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate Dynamic table  and save a copy&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create 2nd Dyn table to hold original data (optional)&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_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         ep_table = dy_table.&lt;/P&gt;&lt;P&gt;   ASSIGN dy_table-&amp;gt;* TO &amp;lt;orig_table&amp;gt;.&lt;/P&gt;&lt;P&gt; CREATE DATA dy_line LIKE LINE OF &amp;lt;orig_table&amp;gt;.&lt;/P&gt;&lt;P&gt; ASSIGN dy_line-&amp;gt;* TO &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt; &amp;lt;orig_table&amp;gt; = &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;FORM DATA_CHANGED&lt;/P&gt;&lt;P&gt;   USING&lt;/P&gt;&lt;P&gt;     changed_tab&lt;/P&gt;&lt;P&gt;     inserted_tab&lt;/P&gt;&lt;P&gt;     deleted_tab&lt;/P&gt;&lt;P&gt;     modified_cells_tab.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Orig table is in dynamic table &amp;lt;orig_table&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV GRID changed table is in &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Loop AT &amp;lt;orig_table&amp;gt;  INTO  &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Do what you want&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM refresh.&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;refresh_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form dubbelklik using&lt;/P&gt;&lt;P&gt;        e_row   type LVC_S_ROW&lt;/P&gt;&lt;P&gt;        e_column type LVC_S_col&lt;/P&gt;&lt;P&gt;        es_row_no type lvc_s_roid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; field-symbols: &amp;lt;row_nr&amp;gt; type any.&lt;/P&gt;&lt;P&gt; assign e_row to &amp;lt;row_nr&amp;gt;.&lt;/P&gt;&lt;P&gt; break-point 1.&lt;/P&gt;&lt;P&gt;   READ TABLE  &amp;lt;dyn_table&amp;gt; index &amp;lt;row_nr&amp;gt; into my_line.&lt;/P&gt;&lt;P&gt;  my_line-status = 'C-PRG'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;here submit your program&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;program is in my_line-name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variant is in my_line-variant.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify &amp;lt;dyn_table&amp;gt; from my_line index &amp;lt;row_nr&amp;gt;.&lt;/P&gt;&lt;P&gt;         SET TITLEBAR '001'.&lt;/P&gt;&lt;P&gt;        i_gridtitle = 'ALV display change title here'.&lt;/P&gt;&lt;P&gt;        CALL METHOD  z_object-&amp;gt;change_title&lt;/P&gt;&lt;P&gt;          EXPORTING i_gridtitle = i_gridtitle.&lt;/P&gt;&lt;P&gt;        PERFORM refresh.&lt;/P&gt;&lt;P&gt;         call method z_object-&amp;gt;set_cursor&lt;/P&gt;&lt;P&gt;         EXPORTING  column_id = e_column&lt;/P&gt;&lt;P&gt;                   row_no = es_row_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here's the INCLUDE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generic ALV class etc  for use as INCLUDE  Jimbo 2007.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEFINE col_name.&lt;/P&gt;&lt;P&gt; READ TABLE it_fldcat INTO wa_it_fldcat INDEX &amp;amp;1.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = &amp;amp;2.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-outputlen = &amp;amp;3.&lt;/P&gt;&lt;P&gt;      modify it_fldcat from wa_it_fldcat index &amp;amp;1.&lt;/P&gt;&lt;P&gt;END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEFINE toolbar_funcs.&lt;/P&gt;&lt;P&gt;   CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;    MOVE 0 TO ls_toolbar-butn_TYPE.&lt;/P&gt;&lt;P&gt;    MOVE &amp;amp;1 TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;    MOVE SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;    MOVE &amp;amp;2 TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;    MOVE &amp;amp;3 TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;    APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt; END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;INCLUDE  &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;   &amp;lt;fs1&amp;gt;          TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;fs0&amp;gt;          TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;dyn_table&amp;gt;    TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;orig_table&amp;gt;   TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;dyn_wa&amp;gt;      TYPE ANY.&lt;/P&gt;&lt;P&gt; CLASS  zcl_alv_test DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt; DATA:&lt;/P&gt;&lt;P&gt;        z_object           TYPE REF TO zcl_alv_test,  "Instantiate our class&lt;/P&gt;&lt;P&gt;        it_fldcat          TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;        i_gridtitle        TYPE lvc_title,&lt;/P&gt;&lt;P&gt;        wa_it_fldcat       TYPE lvc_s_fcat,&lt;/P&gt;&lt;P&gt;        new_table          TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;        dy_table           TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;        inserted_tab       TYPE lvc_t_moce,&lt;/P&gt;&lt;P&gt;        deleted_tab        TYPE LVC_T_MOCE,&lt;/P&gt;&lt;P&gt;        changed_tab        TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;        is_layout          TYPE LVC_S_LAYO,&lt;/P&gt;&lt;P&gt;        modified_cells_tab TYPE LVC_T_MODI,&lt;/P&gt;&lt;P&gt;        dy_line            TYPE REF TO DATA.&lt;/P&gt;&lt;P&gt; CLASS zcl_alv_test DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;     constructor&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          z_object TYPE REF TO zcl_alv_test,&lt;/P&gt;&lt;P&gt;     display_grid&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         g_outtab TYPE STANDARD TABLE&lt;/P&gt;&lt;P&gt;         g_fldcat TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;         it_fldcat TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;         GT_OUTTAB TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;      change_title&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         i_gridtitle TYPE lvc_title,&lt;/P&gt;&lt;P&gt;      refresh_grid,&lt;/P&gt;&lt;P&gt;      set_cursor&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         column_id   TYPE lvc_s_col&lt;/P&gt;&lt;P&gt;         row_no      TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;      build_dynamic_structures&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         my_line TYPE ANY&lt;/P&gt;&lt;P&gt;         calling_program TYPE sy-repid&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         dy_table TYPE REF TO DATA&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;         it_fldcat TYPE lvc_t_fcat .&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;     lr_rtti_struc           TYPE REF TO cl_abap_structdescr,&lt;/P&gt;&lt;P&gt;     zog                     LIKE LINE OF lr_rtti_struc-&amp;gt;components,&lt;/P&gt;&lt;P&gt;     zogt                    LIKE table of zog,&lt;/P&gt;&lt;P&gt;     struct_grid_lset        TYPE lvc_s_layo,&lt;/P&gt;&lt;P&gt;     e_row                   TYPE lvc_s_row,&lt;/P&gt;&lt;P&gt;     e1_row                  TYPE i,&lt;/P&gt;&lt;P&gt;     e_value                 TYPE c,&lt;/P&gt;&lt;P&gt;     e1_col                  TYPE i,&lt;/P&gt;&lt;P&gt;     e_column                TYPE lvc_s_col,&lt;/P&gt;&lt;P&gt;     es_rowid                TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;     es_row_id               TYPE LVC_S_ROW,&lt;/P&gt;&lt;P&gt;     es_col_id               TYPE LVC_S_COL,&lt;/P&gt;&lt;P&gt;     es_row_no               TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;     grid_container1         TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;     grid1                   TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;     ls_layout               TYPE kkblo_layout,&lt;/P&gt;&lt;P&gt;     lt_fieldcat_wa          TYPE kkblo_fieldcat,&lt;/P&gt;&lt;P&gt;     gt_outtab               TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;     l_mode                  TYPE raw4,&lt;/P&gt;&lt;P&gt;     celltab                 TYPE lvc_t_styl,&lt;/P&gt;&lt;P&gt;     wa_celltab              TYPE lvc_s_styl,&lt;/P&gt;&lt;P&gt;     lt_fieldcat             TYPE kkblo_t_fieldcat,&lt;/P&gt;&lt;P&gt;     l_tabname               TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;     ls_toolbar              TYPE stb_button,&lt;/P&gt;&lt;P&gt;     caller                  TYPE sy-repid,&lt;/P&gt;&lt;P&gt;     g_outtab1               TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;     g_fldcat1                TYPE REF TO DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Event Receivers - These methods are entered&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;when the specified event occurs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    EVENTS: before_user_command.&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;     on_user_command&lt;/P&gt;&lt;P&gt;        FOR EVENT before_user_command OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_ucomm&lt;/P&gt;&lt;P&gt;          sender,&lt;/P&gt;&lt;P&gt;     on_toolbar&lt;/P&gt;&lt;P&gt;        FOR EVENT toolbar OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_object&lt;/P&gt;&lt;P&gt;          e_interactive,&lt;/P&gt;&lt;P&gt;     on_dubbelklik&lt;/P&gt;&lt;P&gt;        FOR EVENT double_click OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;           e_row&lt;/P&gt;&lt;P&gt;           e_column&lt;/P&gt;&lt;P&gt;           es_row_no,&lt;/P&gt;&lt;P&gt;    handle_data_changed&lt;/P&gt;&lt;P&gt;        FOR EVENT data_changed OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          er_data_changed,&lt;/P&gt;&lt;P&gt;     handle_data_changed_finished&lt;/P&gt;&lt;P&gt;        FOR EVENT data_changed_finished OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_modified&lt;/P&gt;&lt;P&gt;          et_good_cells,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rest of the methods&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;     process,&lt;/P&gt;&lt;P&gt;     dubbelklik&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;           e_row       TYPE lvc_s_row&lt;/P&gt;&lt;P&gt;           e_column    TYPE lvc_s_col&lt;/P&gt;&lt;P&gt;           es_row_no   TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;     return_structure&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          my_line      TYPE ANY,&lt;/P&gt;&lt;P&gt;     create_dynamic_fcat&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          it_fldcat    TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;     create_dynamic_table&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;           it_fldcat   TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          dy_table     TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;     download_to_excel,&lt;/P&gt;&lt;P&gt;     refresh.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "zcl_alv_test DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Implementation definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CLASS zcl_alv_test IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Constructor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; create our reference / instance to cl_gui_alv_grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT grid_container1&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;           container_name = 'CCONTAINER1'.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT  grid1&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;          i_parent = grid_container1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set event handlers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_user_command for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_toolbar for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;handle_data_changed FOR grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;handle_data_changed_finished FOR grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;on_dubbelklik FOR grid1.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;register_edit_event&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_enter.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "constructor&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rest of the methods&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  METHOD on_dubbelklik.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;dubbelklik&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        e_row     = e_row&lt;/P&gt;&lt;P&gt;        e_column  = e_column&lt;/P&gt;&lt;P&gt;        es_row_no = es_row_no.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                       "on_dubbelklik&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  METHOD set_cursor.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;set_current_cell_via_id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;        is_column_id  = column_id&lt;/P&gt;&lt;P&gt;        is_row_no  =    row_no.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD  handle_data_changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;break-point 1.&lt;/P&gt;&lt;P&gt;    call method grid1-&amp;gt;get_current_cell&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        e_row     = e1_row&lt;/P&gt;&lt;P&gt;        e_value   = e_value&lt;/P&gt;&lt;P&gt;        e_col     = e1_col&lt;/P&gt;&lt;P&gt;        es_row_id = es_row_id&lt;/P&gt;&lt;P&gt;        es_col_id = es_col_id&lt;/P&gt;&lt;P&gt;        es_row_no = es_row_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    changed_tab  = er_data_changed-&amp;gt;mp_mod_rows.&lt;/P&gt;&lt;P&gt;    inserted_tab = er_data_changed-&amp;gt;mt_inserted_rows.&lt;/P&gt;&lt;P&gt;    deleted_tab  = er_data_changed-&amp;gt;mt_deleted_rows.&lt;/P&gt;&lt;P&gt;    modified_cells_tab = er_data_changed-&amp;gt;mt_mod_cells.&lt;/P&gt;&lt;P&gt;    PERFORM data_changed  IN PROGRAM (caller) IF FOUND&lt;/P&gt;&lt;P&gt;       USING changed_tab&lt;/P&gt;&lt;P&gt;             inserted_tab&lt;/P&gt;&lt;P&gt;             deleted_tab&lt;/P&gt;&lt;P&gt;             modified_cells_tab.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_data_changed&lt;/P&gt;&lt;P&gt;  METHOD handle_data_changed_finished.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_data_changed_finished&lt;/P&gt;&lt;P&gt;  METHOD return_structure.&lt;/P&gt;&lt;P&gt;    lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;DESCRIBE_BY_DATA( my_line ).&lt;/P&gt;&lt;P&gt;    zogt[]  = lr_rtti_struc-&amp;gt;components.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "return_structure&lt;/P&gt;&lt;P&gt;  METHOD create_dynamic_fcat.&lt;/P&gt;&lt;P&gt;    LOOP AT zogt INTO zog.&lt;/P&gt;&lt;P&gt;      CLEAR wa_it_fldcat.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-fieldname = zog-name .&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-dataTYPE = zog-TYPE_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intTYPE = zog-TYPE_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intlen = zog-length.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-decimals = zog-decimals.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = zog-name.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-lowercase = 'X'.&lt;/P&gt;&lt;P&gt;       case sy-tabix.&lt;/P&gt;&lt;P&gt;        When 2.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        When 4.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;        when 6.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;        when others.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = ' '.&lt;/P&gt;&lt;P&gt;     endcase.&lt;/P&gt;&lt;P&gt;      APPEND wa_it_fldcat TO it_fldcat .&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "create_dynamic_fcat&lt;/P&gt;&lt;P&gt;  METHOD  download_to_excel.&lt;/P&gt;&lt;P&gt;    assign g_outtab1-&amp;gt;* to &amp;lt;fs0&amp;gt;.&lt;/P&gt;&lt;P&gt;    assign g_fldcat1-&amp;gt;* to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION  'LVC_TRANSFER_TO_KKBLO'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       it_fieldcat_lvc   = &amp;lt;fs1&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    is_layout_lvc     = m_cl_variant-&amp;gt;ms_layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        is_tech_complete  = ' '&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       es_layout_kkblo   = ls_layout&lt;/P&gt;&lt;P&gt;       et_fieldcat_kkblo = lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT lt_fieldcat INTO lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;      CLEAR lt_fieldcat_wa-tech_complete.&lt;/P&gt;&lt;P&gt;      IF lt_fieldcat_wa-tabname IS initial.&lt;/P&gt;&lt;P&gt;        lt_fieldcat_wa-tabname = '1'.&lt;/P&gt;&lt;P&gt;        MODIFY lt_fieldcat FROM lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      l_tabname = lt_fieldcat_wa-tabname.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'ALV_XXL_CALL'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_tabname           = l_tabname&lt;/P&gt;&lt;P&gt;        is_layout           = ls_layout&lt;/P&gt;&lt;P&gt;        it_fieldcat         = lt_fieldcat&lt;/P&gt;&lt;P&gt;        i_title             = sy-title&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        it_outtab           = &amp;lt;fs0&amp;gt;&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        fatal_error         = 1&lt;/P&gt;&lt;P&gt;        no_display_possible = 2&lt;/P&gt;&lt;P&gt;        others              = 3.&lt;/P&gt;&lt;P&gt;    IF  sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message id sy-msgid TYPE 'S' number sy-msgno&lt;/P&gt;&lt;P&gt;             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "download_to_excel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD change_title.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;set_gridtitle&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_gridtitle = i_gridtitle.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "CHANGE_TITLE&lt;/P&gt;&lt;P&gt;  METHOD create_dynamic_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 = it_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        ep_table        = dy_table.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "create_dynamic_table&lt;/P&gt;&lt;P&gt;  METHOD build_dynamic_structures.&lt;/P&gt;&lt;P&gt;    caller = calling_program.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;return_structure&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        my_line = my_line.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;create_dynamic_fcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        dy_table  = dy_table.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "build_dynamic_structures&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_grid.&lt;/P&gt;&lt;P&gt;    GET REFERENCE OF g_outtab INTO g_outtab1.&lt;/P&gt;&lt;P&gt;    GET REFERENCE OF g_fldcat INTO g_fldcat1.&lt;/P&gt;&lt;P&gt;    struct_grid_lset-grid_title = 'ALV generic class'.&lt;/P&gt;&lt;P&gt;    struct_grid_lset-zebra = 'X '.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   struct_grid_lset-stylefname = 'CELLTAB'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL METHOD grid1-&amp;gt;set_ready_for_input  "sets WHOLE GRID editable in one step&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       i_ready_for_input = '1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        is_layout       = struct_grid_lset&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        it_outtab       = gt_outtab&lt;/P&gt;&lt;P&gt;        it_fieldcatalog = it_fldcat.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display_grid&lt;/P&gt;&lt;P&gt;  METHOD on_user_command.&lt;/P&gt;&lt;P&gt;    CASE e_ucomm.&lt;/P&gt;&lt;P&gt;      WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;        LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;      WHEN 'EXCEL'.&lt;/P&gt;&lt;P&gt;        CALL METHOD me-&amp;gt;download_to_excel.&lt;/P&gt;&lt;P&gt;      WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      WHEN 'PROC'.&lt;/P&gt;&lt;P&gt;        CALL METHOD me-&amp;gt;process.&lt;/P&gt;&lt;P&gt;      WHEN 'REFR'.&lt;/P&gt;&lt;P&gt;        CALL METHOD me-&amp;gt;refresh.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.  "on_user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD on_toolbar.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;customize this section with your own Buttons&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When a button is pressed method ON_USER_COMMAND is entered&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   toolbar_funcs 'EXIT'  icon_system_end            'Click2exit'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'SAVE'  icon_system_save           'Savedata'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'EDIT'  icon_toggle_display_change 'Edit data'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'PROC'  icon_businav_process       'Process'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'EXCEL' icon_xxl                   'Excel'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'REFR'  icon_refresh               'Refresh'.&lt;/P&gt;&lt;P&gt;   ENDMETHOD.                    "on_toolbar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD refresh_grid.&lt;/P&gt;&lt;P&gt;    CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "refresh_grid&lt;/P&gt;&lt;P&gt;  METHOD refresh.&lt;/P&gt;&lt;P&gt;    PERFORM refresh IN PROGRAM (caller) IF FOUND.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "refresh&lt;/P&gt;&lt;P&gt;  METHOD process.&lt;/P&gt;&lt;P&gt;    PERFORM process IN PROGRAM (caller) IF FOUND.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "process&lt;/P&gt;&lt;P&gt;  METHOD dubbelklik.&lt;/P&gt;&lt;P&gt;    perform dubbelklik IN PROGRAM (caller) IF FOUND&lt;/P&gt;&lt;P&gt;       USING e_row&lt;/P&gt;&lt;P&gt;             e_column&lt;/P&gt;&lt;P&gt;             es_row_no.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "dubbelklik&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "zcl_alv_test IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Aug 2007 12:18:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-08-28T12:18:10Z</dc:date>
    <item>
      <title>table control</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649020#M610507</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;i have a table suppose ZTABLE, which has three fields such as (program name), (variant) and (Description).i have to develop a program which will automatically create that much radiobutton with the entry of the ZTABLE, beside the radiobuton it will automatically populate the description of the program.suppose there are 20 program names in the table then when i execut ethe code it will automatically create 20 radiobutton with the description beside.Suppose after 1 month the table entries get  40 then it will create 40 radiobutton.when i choose a radiobuton it will execute the code with the following variant.&lt;/P&gt;&lt;P&gt;can anyone help me out to populate the selection screen.pleaseeeeeeeeeeeeeeeeee.i know it is possible with table control but i have very less ides about it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Aug 2007 20:35:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649020#M610507</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-27T20:35:08Z</dc:date>
    </item>
    <item>
      <title>Re: table control</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649021#M610508</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;I am not yet clear with the need of the radio button,but in table control if you enable the selection lines &lt;DEL&gt;&amp;gt;  a tab will come for each line&lt;/DEL&gt;--&amp;gt; u can click on a TAB(commonly known as "sel" Button/TAB) and execute the program&lt;/P&gt;&lt;P&gt;In the code you can identify for which line the SEL button has been clicked and you can do a call transaction or other means to run the program..it serves the same purpose i guess....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still want the radio button , you can go to the scree number containing the control table -&amp;gt; double click on it -&amp;gt; go to screen Layout and on the left side -&amp;gt;5th button in the left column "Radio Button" -&amp;gt; click it and drag and drop onto the control table -&amp;gt; it will come in a different colour on the table control...double click on it and assign function code and name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then you can program the control table to do the work for you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please see the following link to learn more on table controls&lt;/P&gt;&lt;P&gt;These are general help and not help specific to the radio button problem...&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw2004s/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;1)What a table control is?&lt;/P&gt;&lt;P&gt;2)Table controls offer users the functions&lt;/P&gt;&lt;P&gt;3)Table Controls on the Screen&lt;/P&gt;&lt;P&gt;4)Table Controls in the Flow Logic&lt;/P&gt;&lt;P&gt;5)Table Controls in ABAP Programs&lt;/P&gt;&lt;P&gt;6)Table Controls: Examples with Scrolling&lt;/P&gt;&lt;P&gt;7)Table Controls: Examples with Modifications&lt;/P&gt;&lt;P&gt;Appendix: The Step Loop Technique&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For more examples...in SAP itself&lt;/P&gt;&lt;P&gt;Run t-code : ABAPDOCU&lt;/P&gt;&lt;P&gt;go to BC ABAP Programming -&amp;gt; ABAP USER DIALOGS -&amp;gt;SCreens -&amp;gt; Complex screen elements -&amp;gt;&lt;/P&gt;&lt;P&gt;1) table control with scrolling (REPORT demo_dynpro_tabcont_loop.)&lt;/P&gt;&lt;P&gt;2) Table control with modifications(REPORT demo_dynpro_tabcont_loop_at.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it was useful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Byju&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2007 10:12:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649021#M610508</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-28T10:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: table control</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649022#M610509</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's a program to do what you want &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Forget Table controls . Use ALV. Once you've got a "generalized:"class as shown in this program you can use it for almost anything and can generate new programs very quickly indeed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Took me 3 mins to code this as I already had the class.&lt;/P&gt;&lt;P&gt;I've  populated the table with the 1st 200 Z* entries but you could do this via a selection such as a parmeter or standard select options.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can decide what to put in the internal table in form POPULATE_DYNAMIC_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need to define your output structure as follows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't change the name s_elements but put your structure between the begin and end of the s_elements types.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The CLASS will do the rest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:  BEGIN OF s_elements,&lt;/P&gt;&lt;P&gt;         name    TYPE trdirt-name,&lt;/P&gt;&lt;P&gt;         variant TYPE varid-variant,&lt;/P&gt;&lt;P&gt;         text    type trdirt-text,&lt;/P&gt;&lt;P&gt;         status(5)   type c,&lt;/P&gt;&lt;P&gt;END OF  s_elements.&lt;/P&gt;&lt;P&gt;DATA:   t_elements  TYPE TABLE OF s_elements,  "refers to our ITAB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a screen with a custom container on it called CCONTAINER1. (Not a spelling error. Call it CCONTAINER1).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now run this code (optionally you can create a status  SE41  to get SAP standard toolbar on top of your screen and screen title).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you double click a row / cell  you'll  get the program name and variant back.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(There's a break-point in the code).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Modify this to do what you want.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Program  ZZSDNTEST.&lt;/P&gt;&lt;P&gt;INCLUDE ZZJIMBOXX_INCL. * &amp;lt;================== shown below&lt;/P&gt;&lt;P&gt;TABLES : trdirt,&lt;/P&gt;&lt;P&gt;         varid.&lt;/P&gt;&lt;P&gt;TYPES:  BEGIN OF s_elements,&lt;/P&gt;&lt;P&gt;         name    TYPE trdirt-name,&lt;/P&gt;&lt;P&gt;         variant TYPE varid-variant,&lt;/P&gt;&lt;P&gt;         text    type trdirt-text,&lt;/P&gt;&lt;P&gt;         status(5)   type c,&lt;/P&gt;&lt;P&gt;END OF  s_elements.&lt;/P&gt;&lt;P&gt;DATA:   t_elements  TYPE TABLE OF s_elements,  "refers to our ITAB&lt;/P&gt;&lt;P&gt;        my_line     TYPE s_elements.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;CALL SCREEN 100.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;CREATE OBJECT z_object EXPORTING z_object = z_object.&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;build_dynamic_structures&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       my_line = my_line&lt;/P&gt;&lt;P&gt;       calling_program = sy-repid&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       dy_table = dy_table&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;       it_fldcat = it_fldcat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here before displaying you can change the field catalog to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;adjust your own names&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Method call just uses the names in the table structure.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   col_name 1 'Program' '20'.&lt;/P&gt;&lt;P&gt;   col_name 2 'Variant' '20'.&lt;/P&gt;&lt;P&gt;   col_name 3 'Description ' '30'.&lt;/P&gt;&lt;P&gt;PERFORM populate_dynamic_itab.&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;display_grid&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      g_outtab = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;      g_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;      it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;      gt_outtab = &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; SET PF-STATUS '0001'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR '000'.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;MODULE user_command_0100 INPUT.&lt;/P&gt;&lt;P&gt;  CASE sy-ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN 'RETURN'.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;FORM populate_dynamic_itab.&lt;/P&gt;&lt;P&gt;ASSIGN dy_table-&amp;gt;* TO &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; CREATE DATA dy_line LIKE LINE OF &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt; ASSIGN dy_line-&amp;gt;* TO &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT   a&lt;SUB&gt;variant b&lt;/SUB&gt;name b~text&lt;/P&gt;&lt;P&gt; INTO  CORRESPONDING FIELDS OF TABLE &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;       UP TO 200 rows&lt;/P&gt;&lt;P&gt;       FROM ( varid as a&lt;/P&gt;&lt;P&gt;        inner join trdirt  as b&lt;/P&gt;&lt;P&gt;         ON a&lt;SUB&gt;report eq b&lt;/SUB&gt;name )&lt;/P&gt;&lt;P&gt;        WHERE a~report like 'Z%'&lt;/P&gt;&lt;P&gt;        AND b~sprsl eq sy-langu.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate Dynamic table  and save a copy&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create 2nd Dyn table to hold original data (optional)&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_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         ep_table = dy_table.&lt;/P&gt;&lt;P&gt;   ASSIGN dy_table-&amp;gt;* TO &amp;lt;orig_table&amp;gt;.&lt;/P&gt;&lt;P&gt; CREATE DATA dy_line LIKE LINE OF &amp;lt;orig_table&amp;gt;.&lt;/P&gt;&lt;P&gt; ASSIGN dy_line-&amp;gt;* TO &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt; &amp;lt;orig_table&amp;gt; = &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;FORM DATA_CHANGED&lt;/P&gt;&lt;P&gt;   USING&lt;/P&gt;&lt;P&gt;     changed_tab&lt;/P&gt;&lt;P&gt;     inserted_tab&lt;/P&gt;&lt;P&gt;     deleted_tab&lt;/P&gt;&lt;P&gt;     modified_cells_tab.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Orig table is in dynamic table &amp;lt;orig_table&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV GRID changed table is in &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Loop AT &amp;lt;orig_table&amp;gt;  INTO  &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Do what you want&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM refresh.&lt;/P&gt;&lt;P&gt;CALL METHOD z_object-&amp;gt;refresh_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form dubbelklik using&lt;/P&gt;&lt;P&gt;        e_row   type LVC_S_ROW&lt;/P&gt;&lt;P&gt;        e_column type LVC_S_col&lt;/P&gt;&lt;P&gt;        es_row_no type lvc_s_roid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; field-symbols: &amp;lt;row_nr&amp;gt; type any.&lt;/P&gt;&lt;P&gt; assign e_row to &amp;lt;row_nr&amp;gt;.&lt;/P&gt;&lt;P&gt; break-point 1.&lt;/P&gt;&lt;P&gt;   READ TABLE  &amp;lt;dyn_table&amp;gt; index &amp;lt;row_nr&amp;gt; into my_line.&lt;/P&gt;&lt;P&gt;  my_line-status = 'C-PRG'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;here submit your program&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;program is in my_line-name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variant is in my_line-variant.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify &amp;lt;dyn_table&amp;gt; from my_line index &amp;lt;row_nr&amp;gt;.&lt;/P&gt;&lt;P&gt;         SET TITLEBAR '001'.&lt;/P&gt;&lt;P&gt;        i_gridtitle = 'ALV display change title here'.&lt;/P&gt;&lt;P&gt;        CALL METHOD  z_object-&amp;gt;change_title&lt;/P&gt;&lt;P&gt;          EXPORTING i_gridtitle = i_gridtitle.&lt;/P&gt;&lt;P&gt;        PERFORM refresh.&lt;/P&gt;&lt;P&gt;         call method z_object-&amp;gt;set_cursor&lt;/P&gt;&lt;P&gt;         EXPORTING  column_id = e_column&lt;/P&gt;&lt;P&gt;                   row_no = es_row_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here's the INCLUDE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generic ALV class etc  for use as INCLUDE  Jimbo 2007.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEFINE col_name.&lt;/P&gt;&lt;P&gt; READ TABLE it_fldcat INTO wa_it_fldcat INDEX &amp;amp;1.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = &amp;amp;2.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-outputlen = &amp;amp;3.&lt;/P&gt;&lt;P&gt;      modify it_fldcat from wa_it_fldcat index &amp;amp;1.&lt;/P&gt;&lt;P&gt;END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DEFINE toolbar_funcs.&lt;/P&gt;&lt;P&gt;   CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;    MOVE 0 TO ls_toolbar-butn_TYPE.&lt;/P&gt;&lt;P&gt;    MOVE &amp;amp;1 TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;    MOVE SPACE TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;    MOVE &amp;amp;2 TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;    MOVE &amp;amp;3 TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;    APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt; END-OF-DEFINITION.&lt;/P&gt;&lt;P&gt;INCLUDE  &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;   &amp;lt;fs1&amp;gt;          TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;fs0&amp;gt;          TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;dyn_table&amp;gt;    TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;orig_table&amp;gt;   TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;   &amp;lt;dyn_wa&amp;gt;      TYPE ANY.&lt;/P&gt;&lt;P&gt; CLASS  zcl_alv_test DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt; DATA:&lt;/P&gt;&lt;P&gt;        z_object           TYPE REF TO zcl_alv_test,  "Instantiate our class&lt;/P&gt;&lt;P&gt;        it_fldcat          TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;        i_gridtitle        TYPE lvc_title,&lt;/P&gt;&lt;P&gt;        wa_it_fldcat       TYPE lvc_s_fcat,&lt;/P&gt;&lt;P&gt;        new_table          TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;        dy_table           TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;        inserted_tab       TYPE lvc_t_moce,&lt;/P&gt;&lt;P&gt;        deleted_tab        TYPE LVC_T_MOCE,&lt;/P&gt;&lt;P&gt;        changed_tab        TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;        is_layout          TYPE LVC_S_LAYO,&lt;/P&gt;&lt;P&gt;        modified_cells_tab TYPE LVC_T_MODI,&lt;/P&gt;&lt;P&gt;        dy_line            TYPE REF TO DATA.&lt;/P&gt;&lt;P&gt; CLASS zcl_alv_test DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;     constructor&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          z_object TYPE REF TO zcl_alv_test,&lt;/P&gt;&lt;P&gt;     display_grid&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;         g_outtab TYPE STANDARD TABLE&lt;/P&gt;&lt;P&gt;         g_fldcat TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;         it_fldcat TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;         GT_OUTTAB TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;      change_title&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         i_gridtitle TYPE lvc_title,&lt;/P&gt;&lt;P&gt;      refresh_grid,&lt;/P&gt;&lt;P&gt;      set_cursor&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         column_id   TYPE lvc_s_col&lt;/P&gt;&lt;P&gt;         row_no      TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;      build_dynamic_structures&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         my_line TYPE ANY&lt;/P&gt;&lt;P&gt;         calling_program TYPE sy-repid&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         dy_table TYPE REF TO DATA&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;         it_fldcat TYPE lvc_t_fcat .&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;     lr_rtti_struc           TYPE REF TO cl_abap_structdescr,&lt;/P&gt;&lt;P&gt;     zog                     LIKE LINE OF lr_rtti_struc-&amp;gt;components,&lt;/P&gt;&lt;P&gt;     zogt                    LIKE table of zog,&lt;/P&gt;&lt;P&gt;     struct_grid_lset        TYPE lvc_s_layo,&lt;/P&gt;&lt;P&gt;     e_row                   TYPE lvc_s_row,&lt;/P&gt;&lt;P&gt;     e1_row                  TYPE i,&lt;/P&gt;&lt;P&gt;     e_value                 TYPE c,&lt;/P&gt;&lt;P&gt;     e1_col                  TYPE i,&lt;/P&gt;&lt;P&gt;     e_column                TYPE lvc_s_col,&lt;/P&gt;&lt;P&gt;     es_rowid                TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;     es_row_id               TYPE LVC_S_ROW,&lt;/P&gt;&lt;P&gt;     es_col_id               TYPE LVC_S_COL,&lt;/P&gt;&lt;P&gt;     es_row_no               TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;     grid_container1         TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;     grid1                   TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;     ls_layout               TYPE kkblo_layout,&lt;/P&gt;&lt;P&gt;     lt_fieldcat_wa          TYPE kkblo_fieldcat,&lt;/P&gt;&lt;P&gt;     gt_outtab               TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;     l_mode                  TYPE raw4,&lt;/P&gt;&lt;P&gt;     celltab                 TYPE lvc_t_styl,&lt;/P&gt;&lt;P&gt;     wa_celltab              TYPE lvc_s_styl,&lt;/P&gt;&lt;P&gt;     lt_fieldcat             TYPE kkblo_t_fieldcat,&lt;/P&gt;&lt;P&gt;     l_tabname               TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;     ls_toolbar              TYPE stb_button,&lt;/P&gt;&lt;P&gt;     caller                  TYPE sy-repid,&lt;/P&gt;&lt;P&gt;     g_outtab1               TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;     g_fldcat1                TYPE REF TO DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Event Receivers - These methods are entered&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;when the specified event occurs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    EVENTS: before_user_command.&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;     on_user_command&lt;/P&gt;&lt;P&gt;        FOR EVENT before_user_command OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_ucomm&lt;/P&gt;&lt;P&gt;          sender,&lt;/P&gt;&lt;P&gt;     on_toolbar&lt;/P&gt;&lt;P&gt;        FOR EVENT toolbar OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_object&lt;/P&gt;&lt;P&gt;          e_interactive,&lt;/P&gt;&lt;P&gt;     on_dubbelklik&lt;/P&gt;&lt;P&gt;        FOR EVENT double_click OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;           e_row&lt;/P&gt;&lt;P&gt;           e_column&lt;/P&gt;&lt;P&gt;           es_row_no,&lt;/P&gt;&lt;P&gt;    handle_data_changed&lt;/P&gt;&lt;P&gt;        FOR EVENT data_changed OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          er_data_changed,&lt;/P&gt;&lt;P&gt;     handle_data_changed_finished&lt;/P&gt;&lt;P&gt;        FOR EVENT data_changed_finished OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          e_modified&lt;/P&gt;&lt;P&gt;          et_good_cells,&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rest of the methods&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;     process,&lt;/P&gt;&lt;P&gt;     dubbelklik&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;           e_row       TYPE lvc_s_row&lt;/P&gt;&lt;P&gt;           e_column    TYPE lvc_s_col&lt;/P&gt;&lt;P&gt;           es_row_no   TYPE lvc_s_roid,&lt;/P&gt;&lt;P&gt;     return_structure&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          my_line      TYPE ANY,&lt;/P&gt;&lt;P&gt;     create_dynamic_fcat&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          it_fldcat    TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;     create_dynamic_table&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;           it_fldcat   TYPE lvc_t_fcat&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          dy_table     TYPE REF TO DATA,&lt;/P&gt;&lt;P&gt;     download_to_excel,&lt;/P&gt;&lt;P&gt;     refresh.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "zcl_alv_test DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Implementation definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CLASS zcl_alv_test IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Constructor&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; create our reference / instance to cl_gui_alv_grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT grid_container1&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;           container_name = 'CCONTAINER1'.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT  grid1&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;          i_parent = grid_container1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set event handlers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_user_command for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER z_object-&amp;gt;on_toolbar for grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;handle_data_changed FOR grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;handle_data_changed_finished FOR grid1.&lt;/P&gt;&lt;P&gt;    SET HANDLER Z_OBJECT-&amp;gt;on_dubbelklik FOR grid1.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;register_edit_event&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_event_id = cl_gui_alv_grid=&amp;gt;mc_evt_enter.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "constructor&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Rest of the methods&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  METHOD on_dubbelklik.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;dubbelklik&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        e_row     = e_row&lt;/P&gt;&lt;P&gt;        e_column  = e_column&lt;/P&gt;&lt;P&gt;        es_row_no = es_row_no.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                       "on_dubbelklik&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  METHOD set_cursor.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;set_current_cell_via_id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;        is_column_id  = column_id&lt;/P&gt;&lt;P&gt;        is_row_no  =    row_no.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD  handle_data_changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;break-point 1.&lt;/P&gt;&lt;P&gt;    call method grid1-&amp;gt;get_current_cell&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        e_row     = e1_row&lt;/P&gt;&lt;P&gt;        e_value   = e_value&lt;/P&gt;&lt;P&gt;        e_col     = e1_col&lt;/P&gt;&lt;P&gt;        es_row_id = es_row_id&lt;/P&gt;&lt;P&gt;        es_col_id = es_col_id&lt;/P&gt;&lt;P&gt;        es_row_no = es_row_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    changed_tab  = er_data_changed-&amp;gt;mp_mod_rows.&lt;/P&gt;&lt;P&gt;    inserted_tab = er_data_changed-&amp;gt;mt_inserted_rows.&lt;/P&gt;&lt;P&gt;    deleted_tab  = er_data_changed-&amp;gt;mt_deleted_rows.&lt;/P&gt;&lt;P&gt;    modified_cells_tab = er_data_changed-&amp;gt;mt_mod_cells.&lt;/P&gt;&lt;P&gt;    PERFORM data_changed  IN PROGRAM (caller) IF FOUND&lt;/P&gt;&lt;P&gt;       USING changed_tab&lt;/P&gt;&lt;P&gt;             inserted_tab&lt;/P&gt;&lt;P&gt;             deleted_tab&lt;/P&gt;&lt;P&gt;             modified_cells_tab.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_data_changed&lt;/P&gt;&lt;P&gt;  METHOD handle_data_changed_finished.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_data_changed_finished&lt;/P&gt;&lt;P&gt;  METHOD return_structure.&lt;/P&gt;&lt;P&gt;    lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;DESCRIBE_BY_DATA( my_line ).&lt;/P&gt;&lt;P&gt;    zogt[]  = lr_rtti_struc-&amp;gt;components.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "return_structure&lt;/P&gt;&lt;P&gt;  METHOD create_dynamic_fcat.&lt;/P&gt;&lt;P&gt;    LOOP AT zogt INTO zog.&lt;/P&gt;&lt;P&gt;      CLEAR wa_it_fldcat.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-fieldname = zog-name .&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-dataTYPE = zog-TYPE_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intTYPE = zog-TYPE_kind.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-intlen = zog-length.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-decimals = zog-decimals.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-coltext = zog-name.&lt;/P&gt;&lt;P&gt;      wa_it_fldcat-lowercase = 'X'.&lt;/P&gt;&lt;P&gt;       case sy-tabix.&lt;/P&gt;&lt;P&gt;        When 2.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        When 4.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;        when 6.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = 'X'.&lt;/P&gt;&lt;P&gt;        when others.&lt;/P&gt;&lt;P&gt;           wa_it_fldcat-edit = ' '.&lt;/P&gt;&lt;P&gt;     endcase.&lt;/P&gt;&lt;P&gt;      APPEND wa_it_fldcat TO it_fldcat .&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "create_dynamic_fcat&lt;/P&gt;&lt;P&gt;  METHOD  download_to_excel.&lt;/P&gt;&lt;P&gt;    assign g_outtab1-&amp;gt;* to &amp;lt;fs0&amp;gt;.&lt;/P&gt;&lt;P&gt;    assign g_fldcat1-&amp;gt;* to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION  'LVC_TRANSFER_TO_KKBLO'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       it_fieldcat_lvc   = &amp;lt;fs1&amp;gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    is_layout_lvc     = m_cl_variant-&amp;gt;ms_layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        is_tech_complete  = ' '&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       es_layout_kkblo   = ls_layout&lt;/P&gt;&lt;P&gt;       et_fieldcat_kkblo = lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT lt_fieldcat INTO lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;      CLEAR lt_fieldcat_wa-tech_complete.&lt;/P&gt;&lt;P&gt;      IF lt_fieldcat_wa-tabname IS initial.&lt;/P&gt;&lt;P&gt;        lt_fieldcat_wa-tabname = '1'.&lt;/P&gt;&lt;P&gt;        MODIFY lt_fieldcat FROM lt_fieldcat_wa.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      l_tabname = lt_fieldcat_wa-tabname.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'ALV_XXL_CALL'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_tabname           = l_tabname&lt;/P&gt;&lt;P&gt;        is_layout           = ls_layout&lt;/P&gt;&lt;P&gt;        it_fieldcat         = lt_fieldcat&lt;/P&gt;&lt;P&gt;        i_title             = sy-title&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        it_outtab           = &amp;lt;fs0&amp;gt;&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        fatal_error         = 1&lt;/P&gt;&lt;P&gt;        no_display_possible = 2&lt;/P&gt;&lt;P&gt;        others              = 3.&lt;/P&gt;&lt;P&gt;    IF  sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message id sy-msgid TYPE 'S' number sy-msgno&lt;/P&gt;&lt;P&gt;             with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "download_to_excel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD change_title.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;set_gridtitle&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        i_gridtitle = i_gridtitle.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "CHANGE_TITLE&lt;/P&gt;&lt;P&gt;  METHOD create_dynamic_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 = it_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        ep_table        = dy_table.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "create_dynamic_table&lt;/P&gt;&lt;P&gt;  METHOD build_dynamic_structures.&lt;/P&gt;&lt;P&gt;    caller = calling_program.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;return_structure&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        my_line = my_line.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;create_dynamic_fcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        it_fldcat = it_fldcat.&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        it_fldcat = it_fldcat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        dy_table  = dy_table.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "build_dynamic_structures&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_grid.&lt;/P&gt;&lt;P&gt;    GET REFERENCE OF g_outtab INTO g_outtab1.&lt;/P&gt;&lt;P&gt;    GET REFERENCE OF g_fldcat INTO g_fldcat1.&lt;/P&gt;&lt;P&gt;    struct_grid_lset-grid_title = 'ALV generic class'.&lt;/P&gt;&lt;P&gt;    struct_grid_lset-zebra = 'X '.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   struct_grid_lset-stylefname = 'CELLTAB'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL METHOD grid1-&amp;gt;set_ready_for_input  "sets WHOLE GRID editable in one step&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       i_ready_for_input = '1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        is_layout       = struct_grid_lset&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        it_outtab       = gt_outtab&lt;/P&gt;&lt;P&gt;        it_fieldcatalog = it_fldcat.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display_grid&lt;/P&gt;&lt;P&gt;  METHOD on_user_command.&lt;/P&gt;&lt;P&gt;    CASE e_ucomm.&lt;/P&gt;&lt;P&gt;      WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;        LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;      WHEN 'EXCEL'.&lt;/P&gt;&lt;P&gt;        CALL METHOD me-&amp;gt;download_to_excel.&lt;/P&gt;&lt;P&gt;      WHEN 'SAVE'.&lt;/P&gt;&lt;P&gt;      WHEN 'PROC'.&lt;/P&gt;&lt;P&gt;        CALL METHOD me-&amp;gt;process.&lt;/P&gt;&lt;P&gt;      WHEN 'REFR'.&lt;/P&gt;&lt;P&gt;        CALL METHOD me-&amp;gt;refresh.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.  "on_user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD on_toolbar.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;customize this section with your own Buttons&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When a button is pressed method ON_USER_COMMAND is entered&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   toolbar_funcs 'EXIT'  icon_system_end            'Click2exit'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'SAVE'  icon_system_save           'Savedata'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'EDIT'  icon_toggle_display_change 'Edit data'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'PROC'  icon_businav_process       'Process'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'EXCEL' icon_xxl                   'Excel'.&lt;/P&gt;&lt;P&gt;   toolbar_funcs 'REFR'  icon_refresh               'Refresh'.&lt;/P&gt;&lt;P&gt;   ENDMETHOD.                    "on_toolbar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD refresh_grid.&lt;/P&gt;&lt;P&gt;    CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;    CALL METHOD grid1-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "refresh_grid&lt;/P&gt;&lt;P&gt;  METHOD refresh.&lt;/P&gt;&lt;P&gt;    PERFORM refresh IN PROGRAM (caller) IF FOUND.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "refresh&lt;/P&gt;&lt;P&gt;  METHOD process.&lt;/P&gt;&lt;P&gt;    PERFORM process IN PROGRAM (caller) IF FOUND.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "process&lt;/P&gt;&lt;P&gt;  METHOD dubbelklik.&lt;/P&gt;&lt;P&gt;    perform dubbelklik IN PROGRAM (caller) IF FOUND&lt;/P&gt;&lt;P&gt;       USING e_row&lt;/P&gt;&lt;P&gt;             e_column&lt;/P&gt;&lt;P&gt;             es_row_no.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "dubbelklik&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "zcl_alv_test IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2007 12:18:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/table-control/m-p/2649022#M610509</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-28T12:18:10Z</dc:date>
    </item>
  </channel>
</rss>

