<?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: REGARDING INTERACTIVE ALV in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225354#M769288</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;I've posted an easy sample program in this Forum.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Particularly if you are NEW to ALV DO NOT USE THE OLD SLIS MODULES as shown in this thread.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;IT IS MUCH EASIER to use the new CL_GUI_ALV_GRID class and OO -- this is how it will be done in future anyway as the older Function modules will be deprecated (rendered obsolete) in the not too distant future.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just in case you can't find the original thread here's the code again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a standard screen (SE51) with just one element on it a custom control called CCONTAINER1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create also a standard status (SE41) with standard BACK EXIT and CANCEL buttons on it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now code something like this -- this program reads some entries from VAPMA and displays as a simple editable grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can insert and delete lines via the standard GRID functionality on the toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For more complex handling you can add events etc etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

Program ZZZ_SIMPLE_EDITABLE_GRID.

* Define any structure
types:  begin of s_elements,
  vbeln   type vapma-vbeln,
  posnr   type vapma-posnr,
  matnr   type vapma-matnr,
  kunnr   type vapma-kunnr,
  werks   type vapma-werks,
  vkorg   type vapma-vkorg,
  vkbur   type vapma-vkbur,
  status  type c,

end of  s_elements.

* end of your structure

data lr_rtti_struc type ref to cl_abap_structdescr .
data:
    zog                     like line of lr_rtti_struc-&amp;gt;components .
  data:
    zogt                    like table of zog,
  wa_it_fldcat type lvc_s_fcat,
  it_fldcat type lvc_t_fcat ,
  dy_line            type ref to data,
  dy_table           type ref to data.


 data:  dref               type ref to data.
 field-symbols: &amp;lt;fs&amp;gt; type any,
    &amp;lt;dyn_table&amp;gt;    type  standard table,
    &amp;lt;dyn_wa&amp;gt;.

data grid_container1 type ref to cl_gui_custom_container .
  data grid1 type ref to cl_gui_alv_grid .
data: ok_code type sy-ucomm.
data: STRUCT_GRID_LSET type lvc_s_layo.
*now I want to build a field catalog
* First get your data structure into a field symbol
create data dref type s_elements.
  assign dref-&amp;gt;* to &amp;lt;fs&amp;gt;.

  lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;describe_by_data( &amp;lt;fs&amp;gt; ).

    zogt[]  = lr_rtti_struc-&amp;gt;components.
 loop at zogt into zog.
      clear wa_it_fldcat.
      wa_it_fldcat-fieldname = zog-name .
      wa_it_fldcat-datatype = zog-type_kind.
      wa_it_fldcat-inttype = zog-type_kind.
      wa_it_fldcat-intlen = zog-length.
      wa_it_fldcat-decimals = zog-decimals.
      wa_it_fldcat-coltext = zog-name.
      wa_it_fldcat-lowercase = 'X'.
      append wa_it_fldcat to it_fldcat .
    endloop.
* Let's create a dynamic table and populate it

call method cl_alv_table_create=&amp;gt;create_dynamic_table
       exporting
            it_fieldcatalog = it_fldcat
       importing
            ep_table = dy_table.


assign dy_table-&amp;gt;* to &amp;lt;dyn_table&amp;gt;.
  create data dy_line like line of &amp;lt;dyn_table&amp;gt;.
  assign dy_line-&amp;gt;* to &amp;lt;dyn_wa&amp;gt;.

  select vbeln posnr matnr kunnr werks vkorg vkbur
         up to 200 rows
         from vapma
         into  corresponding fields of table &amp;lt;dyn_table&amp;gt;.
call screen 100.

module status_0100 output.

if grid_container1 is initial.
create object grid_container1
        exporting
           container_name = 'CCONTAINER1'.
    create object  grid1
       exporting
          i_parent = grid_container1.
  struct_grid_lset-edit = 'X'.    "To enable editing in ALV

call method grid1-&amp;gt;set_table_for_first_display
  exporting is_layout =  struct_grid_lset
  changing
             it_outtab       = &amp;lt;dyn_table&amp;gt;
             it_fieldcatalog = it_fldcat.


endif.
set pf-status '001'.
     set titlebar '000'.

endmodule.

  MODULE user_command_0100 INPUT.
      case sy-ucomm.
    when 'BACK'.
      leave program.
    when 'EXIT'.
      leave program.
    when 'RETURN'.
      leave program.
    when others.
  endcase.
endmodule.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Cheers&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;jimbo&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 07 Jan 2008 15:22:00 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-07T15:22:00Z</dc:date>
    <item>
      <title>REGARDING INTERACTIVE ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225352#M769286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone please send me the sample code for &lt;/P&gt;&lt;P&gt;Interactive ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Jan 2008 10:13:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225352#M769286</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-07T10:13:51Z</dc:date>
    </item>
    <item>
      <title>Re: REGARDING INTERACTIVE ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225353#M769287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try like this&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; Report  ZINT_ALV&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;REPORT  zint_alv.&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;TABLES:mara,&lt;/P&gt;&lt;P&gt;       makt,&lt;/P&gt;&lt;P&gt;       mseg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF itab OCCURS 0,&lt;/P&gt;&lt;P&gt;      matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;      maktx LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;     END OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF itab1 OCCURS 0,&lt;/P&gt;&lt;P&gt;      mblnr LIKE mseg-mblnr,&lt;/P&gt;&lt;P&gt;      menge LIKE mseg-menge,&lt;/P&gt;&lt;P&gt;      meins LIKE mseg-meins,&lt;/P&gt;&lt;P&gt;      werks LIKE mseg-werks,&lt;/P&gt;&lt;P&gt;     END OF itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF itab2 OCCURS 0,&lt;/P&gt;&lt;P&gt;      mblnr LIKE mseg-mblnr,&lt;/P&gt;&lt;P&gt;      budat LIKE mkpf-budat,&lt;/P&gt;&lt;P&gt;     END OF itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:fcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;     fcat1 TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;     fcat2 TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;     eve TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;     eve1 TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:t_mat LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;     t_doc LIKE mseg-mblnr,&lt;/P&gt;&lt;P&gt;     s_mat LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;     g_repid LIKE sy-repid,&lt;/P&gt;&lt;P&gt;     subtot TYPE slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;     g_subtot LIKE LINE OF subtot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:mat FOR mara-matnr OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN:END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING fcat.&lt;/P&gt;&lt;P&gt;  PERFORM build_eve.&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 get_data.&lt;/P&gt;&lt;P&gt;  PERFORM dis_data.&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  build_fcat&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;T_FCAT     text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_fcat USING t_fcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:wa_fcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_fcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  wa_fcat-ref_fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  wa_fcat-ref_tabname = 'MARA'.&lt;/P&gt;&lt;P&gt;  wa_fcat-seltext_m = 'Material'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_fcat-input = ' '.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_fcat-edit = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_fcat-input = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_fcat-key = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_fcat TO t_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_fcat-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  wa_fcat-seltext_m = 'Description'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fcat TO t_fcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "build_fcat&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  build_eve&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_eve.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:t_eve TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     i_list_type           = 0&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;P&gt;     et_events             = eve&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LIST_TYPE_WRONG       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "build_eve&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  get_data&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT mara&lt;SUB&gt;matnr makt&lt;/SUB&gt;maktx INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;  FROM mara INNER JOIN makt&lt;/P&gt;&lt;P&gt;  ON mara&lt;SUB&gt;matnr = makt&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;  WHERE mara~matnr IN mat.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "get_data&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  dis_data&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM dis_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     i_callback_program                = g_repid         "'ZINT_ALV'&lt;/P&gt;&lt;P&gt;     i_callback_user_command           = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;     i_grid_title                      = 'Interactive ALV'&lt;/P&gt;&lt;P&gt;     it_fieldcat                       = fcat&lt;/P&gt;&lt;P&gt;     it_events                         = eve&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                          = itab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                     = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                            = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "dis_data&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  user_command&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;U_COM      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fcat1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE u_com.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;      READ TABLE itab INDEX sel_field-tabindex.&lt;/P&gt;&lt;P&gt;      IF sel_field-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          t_mat = itab-matnr.&lt;/P&gt;&lt;P&gt;          PERFORM build_cat1 USING fcat1.&lt;/P&gt;&lt;P&gt;          PERFORM build_eve1.&lt;/P&gt;&lt;P&gt;          PERFORM get_data1.&lt;/P&gt;&lt;P&gt;          PERFORM dis_data1.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SET PARAMETER ID 'MAT' FIELD t_mat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "user_command&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  build_fcat1&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;T_FCAT1    text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_cat1 USING t_fcat1 TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:wa_fcat1 TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat1-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-fieldname = 'MBLNR'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-seltext_m = 'Material Doc.'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fcat1 TO t_fcat1.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fcat1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat1-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-seltext_m = 'Quantity'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-do_sum    = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fcat1 TO t_fcat1.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fcat1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat1-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-fieldname = 'MEINS'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-seltext_m = 'UOM'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fcat1 TO t_fcat1.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fcat1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat1-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  wa_fcat1-seltext_m = 'Plant'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fcat1 TO t_fcat1.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fcat1.&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; g_subtot-spos = 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-fieldname = 'MBLNR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-tabname = 'ITAB1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-up = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-group = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-subtot = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-expa = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND g_subtot TO subtot.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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; g_subtot-spos = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-fieldname = 'MENGE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-tabname = 'ITAB1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-up = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-group = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-subtot = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; g_subtot-expa = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND g_subtot TO subtot.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "build_fcat1&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  build_eve1&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_eve1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type     = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events       = eve1&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      list_type_wrong = 1&lt;/P&gt;&lt;P&gt;      OTHERS          = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    "build_eve1&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  get_data1&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_data1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT mblnr menge meins werks FROM mseg&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE itab1&lt;/P&gt;&lt;P&gt;  WHERE matnr = t_mat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    "get_data1&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  dis_data1&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM dis_data1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     i_callback_program                = g_repid              "'ZINT_ALV'&lt;/P&gt;&lt;P&gt;     i_callback_user_command           = 'USER_COMMAND1'&lt;/P&gt;&lt;P&gt;     it_fieldcat                       = fcat1&lt;/P&gt;&lt;P&gt;     it_events                         = eve1&lt;/P&gt;&lt;P&gt;     i_save                            = 'A'&lt;/P&gt;&lt;P&gt;     it_sort                            = subtot&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                          = itab1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                     = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                            = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    "dis_data1&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  user_command1&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;U_COM1     text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SEL_FIELD  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command1 USING u_com1 LIKE sy-ucomm sel_field TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE u_com1.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;      READ TABLE itab1 INDEX sel_field-tabindex.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        t_doc = itab1-mblnr.&lt;/P&gt;&lt;P&gt;        PERFORM build_cat2 USING fcat2.&lt;/P&gt;&lt;P&gt;        PERFORM get_data2.&lt;/P&gt;&lt;P&gt;        PERFORM dis_data2.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "user_command&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  build_cat2&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FCAT1  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_cat2  USING    t_fcat2 TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:wa_fcat2 TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat2-tabname = 'ITAB2'.&lt;/P&gt;&lt;P&gt;  wa_fcat2-fieldname = 'MBLNR'.&lt;/P&gt;&lt;P&gt;  wa_fcat2-seltext_m = 'Material Doc.'.&lt;/P&gt;&lt;P&gt;  APPEND  wa_fcat2 TO t_fcat2.&lt;/P&gt;&lt;P&gt;  CLEAR  wa_fcat2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fcat2-tabname = 'ITAB2'.&lt;/P&gt;&lt;P&gt;  wa_fcat2-fieldname = 'BUDAT'.&lt;/P&gt;&lt;P&gt;  wa_fcat2-seltext_m = 'Material Date'.&lt;/P&gt;&lt;P&gt;  APPEND  wa_fcat2 TO t_fcat2.&lt;/P&gt;&lt;P&gt;  CLEAR  wa_fcat2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_cat2&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  get_data2&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_data2 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT mblnr budat  FROM mkpf&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE itab2&lt;/P&gt;&lt;P&gt;    WHERE mblnr = t_doc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " get_data2&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  dis_data2&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM dis_data2 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     i_callback_program                = g_repid              "'ZINT_ALV'&lt;/P&gt;&lt;P&gt;     it_fieldcat                       = fcat2&lt;/P&gt;&lt;P&gt;     i_save                            = 'A'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                          = itab2&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                     = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                            = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " dis_data2&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;P&gt;reward if useful...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Jan 2008 11:10:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225353#M769287</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-07T11:10:21Z</dc:date>
    </item>
    <item>
      <title>Re: REGARDING INTERACTIVE ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225354#M769288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;I've posted an easy sample program in this Forum.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Particularly if you are NEW to ALV DO NOT USE THE OLD SLIS MODULES as shown in this thread.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;IT IS MUCH EASIER to use the new CL_GUI_ALV_GRID class and OO -- this is how it will be done in future anyway as the older Function modules will be deprecated (rendered obsolete) in the not too distant future.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just in case you can't find the original thread here's the code again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a standard screen (SE51) with just one element on it a custom control called CCONTAINER1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create also a standard status (SE41) with standard BACK EXIT and CANCEL buttons on it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now code something like this -- this program reads some entries from VAPMA and displays as a simple editable grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can insert and delete lines via the standard GRID functionality on the toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For more complex handling you can add events etc etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

Program ZZZ_SIMPLE_EDITABLE_GRID.

* Define any structure
types:  begin of s_elements,
  vbeln   type vapma-vbeln,
  posnr   type vapma-posnr,
  matnr   type vapma-matnr,
  kunnr   type vapma-kunnr,
  werks   type vapma-werks,
  vkorg   type vapma-vkorg,
  vkbur   type vapma-vkbur,
  status  type c,

end of  s_elements.

* end of your structure

data lr_rtti_struc type ref to cl_abap_structdescr .
data:
    zog                     like line of lr_rtti_struc-&amp;gt;components .
  data:
    zogt                    like table of zog,
  wa_it_fldcat type lvc_s_fcat,
  it_fldcat type lvc_t_fcat ,
  dy_line            type ref to data,
  dy_table           type ref to data.


 data:  dref               type ref to data.
 field-symbols: &amp;lt;fs&amp;gt; type any,
    &amp;lt;dyn_table&amp;gt;    type  standard table,
    &amp;lt;dyn_wa&amp;gt;.

data grid_container1 type ref to cl_gui_custom_container .
  data grid1 type ref to cl_gui_alv_grid .
data: ok_code type sy-ucomm.
data: STRUCT_GRID_LSET type lvc_s_layo.
*now I want to build a field catalog
* First get your data structure into a field symbol
create data dref type s_elements.
  assign dref-&amp;gt;* to &amp;lt;fs&amp;gt;.

  lr_rtti_struc ?= cl_abap_structdescr=&amp;gt;describe_by_data( &amp;lt;fs&amp;gt; ).

    zogt[]  = lr_rtti_struc-&amp;gt;components.
 loop at zogt into zog.
      clear wa_it_fldcat.
      wa_it_fldcat-fieldname = zog-name .
      wa_it_fldcat-datatype = zog-type_kind.
      wa_it_fldcat-inttype = zog-type_kind.
      wa_it_fldcat-intlen = zog-length.
      wa_it_fldcat-decimals = zog-decimals.
      wa_it_fldcat-coltext = zog-name.
      wa_it_fldcat-lowercase = 'X'.
      append wa_it_fldcat to it_fldcat .
    endloop.
* Let's create a dynamic table and populate it

call method cl_alv_table_create=&amp;gt;create_dynamic_table
       exporting
            it_fieldcatalog = it_fldcat
       importing
            ep_table = dy_table.


assign dy_table-&amp;gt;* to &amp;lt;dyn_table&amp;gt;.
  create data dy_line like line of &amp;lt;dyn_table&amp;gt;.
  assign dy_line-&amp;gt;* to &amp;lt;dyn_wa&amp;gt;.

  select vbeln posnr matnr kunnr werks vkorg vkbur
         up to 200 rows
         from vapma
         into  corresponding fields of table &amp;lt;dyn_table&amp;gt;.
call screen 100.

module status_0100 output.

if grid_container1 is initial.
create object grid_container1
        exporting
           container_name = 'CCONTAINER1'.
    create object  grid1
       exporting
          i_parent = grid_container1.
  struct_grid_lset-edit = 'X'.    "To enable editing in ALV

call method grid1-&amp;gt;set_table_for_first_display
  exporting is_layout =  struct_grid_lset
  changing
             it_outtab       = &amp;lt;dyn_table&amp;gt;
             it_fieldcatalog = it_fldcat.


endif.
set pf-status '001'.
     set titlebar '000'.

endmodule.

  MODULE user_command_0100 INPUT.
      case sy-ucomm.
    when 'BACK'.
      leave program.
    when 'EXIT'.
      leave program.
    when 'RETURN'.
      leave program.
    when others.
  endcase.
endmodule.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Cheers&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;jimbo&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Jan 2008 15:22:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/regarding-interactive-alv/m-p/3225354#M769288</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-07T15:22:00Z</dc:date>
    </item>
  </channel>
</rss>

