<?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: Program using class &amp;quot;cl_salv_table&amp;quot; in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/program-using-class-quot-cl-salv-table-quot/m-p/4174273#M997925</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI nani,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;welcome&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a sample program to illustrate several techniques:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;use of dynamic selections&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;persistent data stored into cluster INDX&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data definition at runtime&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display internal table using SALV class&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just copy the code into a new program, create include for events, then copy status STANDARD from program SAPLSALV. &lt;/P&gt;&lt;P&gt;u have to add the SAVE function code to the disk button. It allow you to save modifications to the database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  zkarthik_update&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&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;report zkarthik_update.&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;  Data definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools: rsds.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: is_x030l   type x030l,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_x031l   type table of x031l,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_x031l   type x031l.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_selid    type rsdynsel-selid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_tables  type table of rsdstabs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_tables  type rsdstabs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_fields  type table of rsdsfields,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_expr    type rsds_texpr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_ranges  type rsds_trange,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_where   type rsds_twhere,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_where   type rsds_where,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_active   type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_repid    type sy-repid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_dynnr    type sy-dynnr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wt_dynp    type table of dynpread,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ws_dynp    type dynpread.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_content type ref to data,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_content type ref to data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_okcode   type sy-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_fdkey    type x value u201801u2032.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_akey     type indx-srtfd,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey     type indx-srtfd,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_fkey     type indx-srtfd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Include to handle events on ALV display screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include zbc_query_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;itab&amp;gt; type standard table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;irec&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&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;Macros&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define table_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message e398(00) with u2018Tableu2019 p_table &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define fixed_val.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign component is_x031l-fieldname of structure &amp;lt;irec&amp;gt; to &amp;lt;fld&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;fld&amp;gt; = &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&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;Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of block b01 with frame.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_table type tabname obligatory                    u201Ctable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;memory id dtb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;matchcode object dd_dbtb_16.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of line,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pushbutton 33(20) selopt user-command sel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;comment    55(15) selcnt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: skip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_field type fieldname,                            u201Cfield&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_value type text132.                              u201Cvalue&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block b01,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;skip,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;begin of block b02 with frame.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_displ type c as checkbox default u2018Xu2019,            u201Cdisplay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_systm type c as checkbox.                        u201Csystem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block b02.&lt;/P&gt;&lt;P&gt;&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;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;move u2018@4G@ Filter recordsu2019 to selopt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ws_dynp-fieldname = u2018P_TABLEu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append ws_dynp to wt_dynp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get dynamic selection from cluster&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey(1) = u2018Au2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import w_active  from database indx(xy) id w_akey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Ru2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import it_expr   from database indx(xy) id w_rkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Fu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import it_fields from database indx(xy) id w_fkey.&lt;/P&gt;&lt;P&gt;&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;PBO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if w_active is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear: selcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write w_active to selcnt left-justified.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PAI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_table ne is_x030l-tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_init_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-ucomm = u2018SELu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if w_selid is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_init_selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Display free selection dialog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018FREE_SELECTIONS_DIALOGu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection_id            = w_selid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;title                   = u2018Selectionu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;status                  = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;as_window               = u2018Xu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions             = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field_ranges            = it_ranges&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;number_of_active_fields = w_active&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fields_tab              = it_fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                  = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Write dynamic selection to cluster&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey(1) = u2018Au2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export w_active  to database indx(xy) id w_akey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Ru2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export it_expr   to database indx(xy) id w_rkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Fu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export it_fields to database indx(xy) id w_fkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_field is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table it_x031l into is_x031l&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with key fieldname = p_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if is_x031l-flag1 o w_fdkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message e129(53) with p_field p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message e804(5g) with p_field p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_dynnr = sy-dynnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018DYNP_VALUES_READu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dyname     = w_repid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dynumb     = w_dynnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dynpfields = wt_dynp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others     = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table wt_dynp into ws_dynp index 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_table = ws_dynp-fieldvalue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018F4_DD_TABLE_FIELDSu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table  = p_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;result = p_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&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 f_create_table using p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_select_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_modify_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_display_table using &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_init_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_init_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Prepare free selection on table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_table_def using p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;refresh it_tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_tables-prim_tab = p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append is_tables to it_tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear: w_selid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_init_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_init_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_init_selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Init free selection dialog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018FREE_SELECTIONS_INITu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions  = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection_id = w_selid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions  = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables_tab   = it_tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fields_tab   = it_fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others       = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_init_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_table_def                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_table_def using in_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018DDIF_NAMETAB_GETu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tabname   = p_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x030l_wa  = is_x030l&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x031l_tab = it_x031l&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others    = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if is_x030l is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table_error u2018does not exist or is not activeu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x030l-tabtype ne u2018Tu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table_error u2018is not selectableu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_table_def&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_create_table                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_create_table using in_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create data it_content type table of (in_tabname).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign it_content-&amp;gt;* to &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write: u2018Error creating internal tableu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;stop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_create_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_select_table                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_select_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if w_active = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from (p_table)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Selection with parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018FREE_SELECTIONS_EX_2_WHEREu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions              = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where_clauses            = it_where&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expression_not_supported = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table it_where into is_where with key tablename = p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from (p_table)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table &amp;lt;itab&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where (is_where-where_tab).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-dbcnt = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write: u2018No record selectedu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;stop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_select_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_modify_table                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_modify_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;fld&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at &amp;lt;itab&amp;gt; assigning &amp;lt;irec&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_field is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign component p_field of structure &amp;lt;irec&amp;gt; to &amp;lt;fld&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018GENERIC_CONVERSION_EXIT_INPUTu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i_tabname               = p_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i_fieldname             = p_field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;input_text              = p_value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;output_text             = &amp;lt;fld&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;invalid_ddic_parameters = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;invalid_input           = 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                  = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&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;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&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;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_systm is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Default values for system fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_x031l into is_x031l.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if is_x031l-dtyp = u2018CLNTu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x031l-rollname = u2018ERDATu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018ERSDAu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018AEDATu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018LAEDAu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x031l-rollname = u2018ERTIMu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018AETIMu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x031l-rollname = u2018ERNAMu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018AENAMu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_modify_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_display_table                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_display_table using in_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ob_table type ref to cl_salv_table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ob_event type ref to cl_salv_events_table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cx_error type ref to cx_salv_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;r_salv_table = ob_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;changing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_table      = in_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_salv_msg into cx_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_displ is initial and&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_field is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method ob_table-&amp;gt;set_screen_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report        = u2018ZBC_UPDATE_TABLEu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pfstatus      = u2018STANDARDu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set_functions = ob_table-&amp;gt;c_functions_all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ob_event = ob_table-&amp;gt;get_event( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create object ob_appl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set handler ob_appl-&amp;gt;on_user_command for ob_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method ob_table-&amp;gt;set_screen_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report        = u2018SAPLSALVu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pfstatus      = u2018STANDARDu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set_functions = ob_table-&amp;gt;c_functions_all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method ob_table-&amp;gt;display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_display_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using in_command type salv_de_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_messg  type string,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_answer type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ls_expr  type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check in_command = u2018SAVEu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_messg = u2018Overwrite field for all selected records ?u2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018POPUP_TO_CONFIRMu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;titlebar              = u2018Update tableu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text_question         = l_messg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;default_button        = u20182u2032&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;display_cancel_button = u2018 u2018&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;popup_type            = u2018@1A@u2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;answer                = l_answer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text_not_found        = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if l_answer = u20181u2032.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;concatenate p_field u2018= u201Du2019 into ls_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;separated by space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;concatenate ls_expr p_value u201Du201D into ls_expr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;update (p_table) set (ls_expr)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where (is_where-where_tab).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_sy_dynamic_osql_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rollback work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message u2018Error during update!u2019 type u2018Iu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cuser_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;  Include           ZBC_QUERY_EVENTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_handle_events definition deferred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ob_appl type ref to lcl_handle_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_handle_events DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_handle_events definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;public section.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;methods:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_user_command for event added_function of cl_salv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing e_salv_function,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_before_salv_function for event before_salv_function of cl_salv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing e_salv_function,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_after_salv_function for event after_salv_function of cl_salv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing e_salv_function,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_double_click for event double_click of cl_salv_events_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing row column,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_link_click for event link_click of cl_salv_events_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing row column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endclass.                    u201Clcl_handle_events DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_handle_events IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_handle_events implementation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform user_command in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using e_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_before_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform before_function in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using e_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_before_salv_function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_after_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform after_function in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using e_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_after_salv_function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_double_click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform double_click in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using row column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_double_click&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_link_click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform link_click in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using row column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_single_click&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endclass.                    u201Clcl_handle_events IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;karthik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 28 Jul 2008 05:51:12 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-07-28T05:51:12Z</dc:date>
    <item>
      <title>Program using class "cl_salv_table"</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/program-using-class-quot-cl-salv-table-quot/m-p/4174272#M997924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am new to this class (cl_salv_table). I wrote a program with general ABAP code. But, according to my standard I should use standard ALV factory class i.e., 'CL_SALV_TABLE'.  I wouls appreciate if anybody could send me the code using this class. Here is the code which I have written.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zrgae_acctquery&lt;/P&gt;&lt;P&gt;        NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;        LINE-SIZE 190&lt;/P&gt;&lt;P&gt;        LINE-COUNT 65&lt;/P&gt;&lt;P&gt;        MESSAGE-ID zrga.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Program Title  : SAP Account Coding Block Transaction Query Program*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Description   : This program loads the legacy General Ledger                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      account monthly net activity into the SAP-FI                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      system using LSMW.  This conversion pertains to           *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      companyu2019s GL account balances beginning with              *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      FY07 YE, posting monthly net changes in the                 *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     accounts for FY2008 and FY2009 through go-live.             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Run Frequency: The Z-transaction must be available at any time             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                an end user requires the conversion information.                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                T A B L E  D E C L A R A T I O N                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;TABLES: ztt_rga_xreft.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                D A T A  D E C L A R A T I O N                       &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;DATA: group_id(3) TYPE c,&lt;/P&gt;&lt;P&gt;      l_line TYPE i.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                I N T E R N A L  T A B L E S                         &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;TYPES: BEGIN OF lty_ztt_rga_xreft,&lt;/P&gt;&lt;P&gt;       ctacct TYPE ztt_rga_xreft-ctacct,&lt;/P&gt;&lt;P&gt;       ctrc01 TYPE ztt_rga_xreft-ctrc01,&lt;/P&gt;&lt;P&gt;       ctrc02 TYPE ztt_rga_xreft-ctrc02,&lt;/P&gt;&lt;P&gt;       ctrc03 TYPE ztt_rga_xreft-ctrc03,&lt;/P&gt;&lt;P&gt;       ctrc04 TYPE ztt_rga_xreft-ctrc04,&lt;/P&gt;&lt;P&gt;       ctrc05 TYPE ztt_rga_xreft-ctrc05,&lt;/P&gt;&lt;P&gt;       ctrc06 TYPE ztt_rga_xreft-ctrc06,&lt;/P&gt;&lt;P&gt;       ctrc07 TYPE ztt_rga_xreft-ctrc07,&lt;/P&gt;&lt;P&gt;       ctrc08 TYPE ztt_rga_xreft-ctrc08,&lt;/P&gt;&lt;P&gt;       bukrs TYPE ztt_rga_xreft-bukrs,&lt;/P&gt;&lt;P&gt;       prctr TYPE ztt_rga_xreft-prctr,&lt;/P&gt;&lt;P&gt;       kostl TYPE ztt_rga_xreft-kostl,&lt;/P&gt;&lt;P&gt;       saknr TYPE ztt_rga_xreft-saknr,&lt;/P&gt;&lt;P&gt;       aufnr TYPE ztt_rga_xreft-aufnr,&lt;/P&gt;&lt;P&gt;       sap_offset TYPE ztt_rga_xreft-sap_offset,&lt;/P&gt;&lt;P&gt;       END OF lty_ztt_rga_xreft.&lt;/P&gt;&lt;P&gt;DATA: lt_data TYPE STANDARD TABLE OF lty_ztt_rga_xreft,       lwa_data TYPE lty_ztt_rga_xreft.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           S E L E C T I O N   S C R E E N   D E F I N I T I O N S  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_lgsap RADIOBUTTON GROUP b1 USER-COMMAND rad DEFAULT 'X',&lt;/P&gt;&lt;P&gt;            p_saplg RADIOBUTTON GROUP b1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK a1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK a2 WITH FRAME TITLE text-002. "ACC&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_lccode FOR ztt_rga_xreft-ctrc01 MODIF ID acc,&lt;/P&gt;&lt;P&gt;                s_ldiv FOR ztt_rga_xreft-ctrc02 MODIF ID acc,&lt;/P&gt;&lt;P&gt;                s_lreg FOR ztt_rga_xreft-ctrc03 MODIF ID acc,&lt;/P&gt;&lt;P&gt;                s_lloc FOR ztt_rga_xreft-ctrc04 MODIF ID acc,&lt;/P&gt;&lt;P&gt;                s_lcctr FOR ztt_rga_xreft-ctrc05 MODIF ID acc,&lt;/P&gt;&lt;P&gt;                s_lacct FOR ztt_rga_xreft-ctrc06 MODIF ID acc,&lt;/P&gt;&lt;P&gt;                s_lsacct FOR ztt_rga_xreft-ctrc07 MODIF ID acc.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK a2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK a3 WITH FRAME TITLE text-003. "ALL&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_bukrs FOR ztt_rga_xreft-bukrs MODIF ID all,&lt;/P&gt;&lt;P&gt;                s_prctr FOR ztt_rga_xreft-prctr MODIF ID all,&lt;/P&gt;&lt;P&gt;                s_kostl FOR ztt_rga_xreft-kostl MODIF ID all,&lt;/P&gt;&lt;P&gt;                s_saknr FOR ztt_rga_xreft-saknr MODIF ID all,&lt;/P&gt;&lt;P&gt;                s_aufnr FOR ztt_rga_xreft-aufnr MODIF ID all.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK a3.&lt;/P&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; A T  S E L E C T I O N  S C R E E N                  &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  CASE 'X'.&lt;/P&gt;&lt;P&gt;    WHEN p_saplg.&lt;/P&gt;&lt;P&gt;      group_id = 'ACC'.&lt;/P&gt;&lt;P&gt;      SET CURSOR FIELD 'S_BUKRS-LOW'.&lt;/P&gt;&lt;P&gt;    WHEN p_lgsap.&lt;/P&gt;&lt;P&gt;      group_id = 'ALL'.&lt;/P&gt;&lt;P&gt;      SET CURSOR FIELD 'S_LCCTR-LOW'.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;    IF screen-group1 = group_id.&lt;/P&gt;&lt;P&gt;      screen-input = 0.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                S T A R T  O F  S E L E C T I O N                    &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CLEAR l_line.&lt;/P&gt;&lt;P&gt;  IF p_lgsap = 'X'.  " If legacy input filled&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           INFINIUM CASE-I VALIDATIONS &amp;amp; OUTPUT                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           PASSING INFINIUM 'COST CENTER','ACCOUNT',&amp;amp; 'SUB ACCT'    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;    IF s_lcctr-low NE ' ' AND s_lacct-low NE ' ' AND s_lsacct-low NE ' '.&lt;/P&gt;&lt;P&gt;      SELECT ctrc01&lt;/P&gt;&lt;P&gt;             ctrc02&lt;/P&gt;&lt;P&gt;             ctrc03&lt;/P&gt;&lt;P&gt;             ctrc04&lt;/P&gt;&lt;P&gt;             ctrc05&lt;/P&gt;&lt;P&gt;             ctrc06&lt;/P&gt;&lt;P&gt;             ctrc07&lt;/P&gt;&lt;P&gt;             ctrc08&lt;/P&gt;&lt;P&gt;             bukrs&lt;/P&gt;&lt;P&gt;             prctr&lt;/P&gt;&lt;P&gt;             kostl&lt;/P&gt;&lt;P&gt;             saknr&lt;/P&gt;&lt;P&gt;             aufnr&lt;/P&gt;&lt;P&gt;             sap_offset&lt;/P&gt;&lt;P&gt;             FROM ztt_rga_xreft INTO TABLE lt_data&lt;/P&gt;&lt;P&gt;                                WHERE ctrc05 IN s_lcctr&lt;/P&gt;&lt;P&gt;                                AND ctrc06 IN s_lacct&lt;/P&gt;&lt;P&gt;                                AND ctrc07 IN s_lsacct.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE lt_data LINES l_line.&lt;/P&gt;&lt;P&gt;      IF l_line &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        MESSAGE e001(zrga) with 'Cost Ctr,Acct,SubAcct are not valid.pl check'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&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;    INFINIUM CASE-II VALIDATIONS &amp;amp; OUTPUT                    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PASSING INFINIUM 'COST CENTER'&amp;amp;'ACCOUNT'                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;    ELSEIF s_lcctr-low NE ' ' AND s_lacct-low NE ' '&lt;/P&gt;&lt;P&gt;         AND s_lsacct-low EQ ' '.&lt;/P&gt;&lt;P&gt;      SELECT ctrc01&lt;/P&gt;&lt;P&gt;             ctrc02&lt;/P&gt;&lt;P&gt;             ctrc03&lt;/P&gt;&lt;P&gt;             ctrc04&lt;/P&gt;&lt;P&gt;             ctrc05&lt;/P&gt;&lt;P&gt;             ctrc06&lt;/P&gt;&lt;P&gt;             ctrc07&lt;/P&gt;&lt;P&gt;             ctrc08&lt;/P&gt;&lt;P&gt;             bukrs&lt;/P&gt;&lt;P&gt;             prctr&lt;/P&gt;&lt;P&gt;             kostl&lt;/P&gt;&lt;P&gt;             saknr&lt;/P&gt;&lt;P&gt;             aufnr&lt;/P&gt;&lt;P&gt;             sap_offset&lt;/P&gt;&lt;P&gt;          FROM ztt_rga_xreft INTO TABLE lt_data WHERE ctrc05 IN s_lcctr&lt;/P&gt;&lt;P&gt;                                                 AND ctrc06 IN s_lacct.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE lt_data LINES l_line.&lt;/P&gt;&lt;P&gt;      IF l_line &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        MESSAGE e002(zrga) with 'Cost Center,Account are not valid...pl check'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INFINIUM CASE-III VALIDATIONS &amp;amp; OUTPUT                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           PASSING INFINIUM 'COMPANY CODE'&amp;amp;'ACCOUNT'                *&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;  ELSEIF s_lccode-low NE ' ' AND s_lacct-low NE ' '.&lt;/P&gt;&lt;P&gt;    SELECT ctrc01&lt;/P&gt;&lt;P&gt;           ctrc02&lt;/P&gt;&lt;P&gt;           ctrc03&lt;/P&gt;&lt;P&gt;           ctrc04&lt;/P&gt;&lt;P&gt;           ctrc05&lt;/P&gt;&lt;P&gt;           ctrc06&lt;/P&gt;&lt;P&gt;           ctrc07&lt;/P&gt;&lt;P&gt;           ctrc08&lt;/P&gt;&lt;P&gt;           bukrs&lt;/P&gt;&lt;P&gt;           prctr&lt;/P&gt;&lt;P&gt;           kostl&lt;/P&gt;&lt;P&gt;           saknr&lt;/P&gt;&lt;P&gt;           aufnr&lt;/P&gt;&lt;P&gt;           sap_offset&lt;/P&gt;&lt;P&gt;        FROM ztt_rga_xreft INTO TABLE lt_data WHERE ctrc01 IN s_lccode&lt;/P&gt;&lt;P&gt;                                              AND ctrc06 IN s_lacct.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE lt_data LINES l_line.&lt;/P&gt;&lt;P&gt;    IF l_line &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e003(zrga) with 'Company code,Acct are not valid.pl check'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE. " If SAP input filled&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           SAP CASE-I VALIDATIONS &amp;amp; OUTPUT                          *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           PASSING SAP 'COST CENTER','ACCOUNT'&amp;amp;'INTERNAL ORDER'     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;    IF s_kostl-low NE ' ' AND s_saknr-low NE ' ' AND s_aufnr-low NE ' '.&lt;/P&gt;&lt;P&gt;      SELECT ctrc01&lt;/P&gt;&lt;P&gt;             ctrc02&lt;/P&gt;&lt;P&gt;             ctrc03&lt;/P&gt;&lt;P&gt;             ctrc04&lt;/P&gt;&lt;P&gt;             ctrc05&lt;/P&gt;&lt;P&gt;             ctrc06&lt;/P&gt;&lt;P&gt;             ctrc07&lt;/P&gt;&lt;P&gt;             ctrc08&lt;/P&gt;&lt;P&gt;             bukrs&lt;/P&gt;&lt;P&gt;             prctr&lt;/P&gt;&lt;P&gt;             kostl&lt;/P&gt;&lt;P&gt;             saknr&lt;/P&gt;&lt;P&gt;             aufnr&lt;/P&gt;&lt;P&gt;             sap_offset&lt;/P&gt;&lt;P&gt;          FROM ztt_rga_xreft INTO TABLE lt_data WHERE kostl IN s_kostl&lt;/P&gt;&lt;P&gt;                                           AND saknr IN s_saknr&lt;/P&gt;&lt;P&gt;                                           AND aufnr IN s_aufnr.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE lt_data LINES l_line.&lt;/P&gt;&lt;P&gt;      IF l_line &amp;lt; 0.&lt;/P&gt;&lt;P&gt;        MESSAGE e004(zrga) with 'Cost Ctr,Acct,Int order are not valid...pl check'.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           SAP CASE-II VALIDATIONS &amp;amp; OUTPUT                         *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           PASSING SAP 'COST CENTER'&amp;amp;'ACCOUNT'                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;ELSEIF s_kostl-low NE ' ' AND s_saknr-low NE ' ' AND s_aufnr-low EQ ' '.&lt;/P&gt;&lt;P&gt;      SELECT ctrc01&lt;/P&gt;&lt;P&gt;             ctrc02&lt;/P&gt;&lt;P&gt;             ctrc03&lt;/P&gt;&lt;P&gt;             ctrc04&lt;/P&gt;&lt;P&gt;             ctrc05&lt;/P&gt;&lt;P&gt;             ctrc06&lt;/P&gt;&lt;P&gt;             ctrc07&lt;/P&gt;&lt;P&gt;             ctrc08&lt;/P&gt;&lt;P&gt;             bukrs&lt;/P&gt;&lt;P&gt;             prctr&lt;/P&gt;&lt;P&gt;             kostl&lt;/P&gt;&lt;P&gt;             saknr&lt;/P&gt;&lt;P&gt;             aufnr&lt;/P&gt;&lt;P&gt;             sap_offset&lt;/P&gt;&lt;P&gt;             FROM ztt_rga_xreft INTO TABLE lt_data WHERE kostl IN s_kostl&lt;/P&gt;&lt;P&gt;                                      AND saknr IN s_saknr.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE lt_data LINES l_line.&lt;/P&gt;&lt;P&gt;      IF l_line &amp;lt; 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e005(zrga) with 'Cost Ctr,Acct are not valid...pl check'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                O U T P U T                                          &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  IF p_lgsap = 'X'.  " If legacy input filled&lt;/P&gt;&lt;P&gt;    WRITE:/2 'Infinium Company',       40 s_lccode-low,&lt;/P&gt;&lt;P&gt;          /2 'Infinium Division',      40 s_ldiv-low,&lt;/P&gt;&lt;P&gt;          /2 'Infinium Region',        40 s_lreg-low,&lt;/P&gt;&lt;P&gt;          /2 'Infinium Location',      40 s_lloc-low,&lt;/P&gt;&lt;P&gt;          /2 'Infinium Cost center',   40 s_lcctr-low,&lt;/P&gt;&lt;P&gt;          /2 'Infinium Account',       40 s_lacct-low,&lt;/P&gt;&lt;P&gt;          /2 'Infinium Sub-account',   40 s_lsacct-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE. "If SAP input filled&lt;/P&gt;&lt;P&gt;    WRITE:/2 'SAP Company',            40 s_bukrs-low,&lt;/P&gt;&lt;P&gt;          /2 'SAP Cost center',        40 s_kostl-low,&lt;/P&gt;&lt;P&gt;          /2 'SAP Profit center',      40 s_prctr-low,&lt;/P&gt;&lt;P&gt;          /2 'SAP Account',            40 s_saknr-low,&lt;/P&gt;&lt;P&gt;          /2 'SAP order',              40 s_aufnr-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-uline(190).&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING ON.&lt;/P&gt;&lt;P&gt;  WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;         2 'Infinium Company',&lt;/P&gt;&lt;P&gt;         17 sy-vline,&lt;/P&gt;&lt;P&gt;         18 'Infinium Division',&lt;/P&gt;&lt;P&gt;         37 sy-vline,&lt;/P&gt;&lt;P&gt;         38 'Infinium Region',&lt;/P&gt;&lt;P&gt;         57 sy-vline,&lt;/P&gt;&lt;P&gt;         58 'Infinium Location',&lt;/P&gt;&lt;P&gt;         77 sy-vline,&lt;/P&gt;&lt;P&gt;         78 'Infinium Cost Center',&lt;/P&gt;&lt;P&gt;         97 sy-vline,&lt;/P&gt;&lt;P&gt;         98 'Infinium Account',&lt;/P&gt;&lt;P&gt;         114 sy-vline,&lt;/P&gt;&lt;P&gt;         115 'Infinium Sub Account',&lt;/P&gt;&lt;P&gt;         134 sy-vline.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING OFF.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_POSITIVE ON.&lt;/P&gt;&lt;P&gt;  WRITE: 135 'SAP Company',&lt;/P&gt;&lt;P&gt;         144 sy-vline,&lt;/P&gt;&lt;P&gt;         145 'SAP Profit Center',&lt;/P&gt;&lt;P&gt;         154 sy-vline,&lt;/P&gt;&lt;P&gt;         155 'SAP Cost Center',&lt;/P&gt;&lt;P&gt;         164 sy-vline,&lt;/P&gt;&lt;P&gt;         165 'SAP Account',&lt;/P&gt;&lt;P&gt;         174 sy-vline,&lt;/P&gt;&lt;P&gt;         175 'SAP Order',&lt;/P&gt;&lt;P&gt;         190 sy-vline.&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_POSITIVE OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/1 sy-vline.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-uline(190).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-uline(190).&lt;/P&gt;&lt;P&gt;  LOOP AT lt_data into lwa_data.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING ON.&lt;/P&gt;&lt;P&gt;    WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           2 lwa_data-ctrc01,&lt;/P&gt;&lt;P&gt;           17 sy-vline,&lt;/P&gt;&lt;P&gt;           18 lwa_data-ctrc02,&lt;/P&gt;&lt;P&gt;           37 sy-vline,&lt;/P&gt;&lt;P&gt;           38 lwa_data-ctrc03,&lt;/P&gt;&lt;P&gt;           57 sy-vline,&lt;/P&gt;&lt;P&gt;           58 lwa_data-ctrc04,&lt;/P&gt;&lt;P&gt;           77 sy-vline,&lt;/P&gt;&lt;P&gt;           78 lwa_data-ctrc05,&lt;/P&gt;&lt;P&gt;           97 sy-vline,&lt;/P&gt;&lt;P&gt;           98 lwa_data-ctrc06,&lt;/P&gt;&lt;P&gt;           114 sy-vline,&lt;/P&gt;&lt;P&gt;           115 lwa_data-ctrc07,&lt;/P&gt;&lt;P&gt;           134 sy-vline.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_HEADING OFF.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_POSITIVE ON.&lt;/P&gt;&lt;P&gt;    WRITE: 135 lwa_data-bukrs,&lt;/P&gt;&lt;P&gt;           144 sy-vline,&lt;/P&gt;&lt;P&gt;           145 lwa_data-prctr,&lt;/P&gt;&lt;P&gt;           154 sy-vline,&lt;/P&gt;&lt;P&gt;           155 lwa_data-kostl,&lt;/P&gt;&lt;P&gt;           164 sy-vline,&lt;/P&gt;&lt;P&gt;           165 lwa_data-saknr,&lt;/P&gt;&lt;P&gt;           174 sy-vline,&lt;/P&gt;&lt;P&gt;           175 lwa_data-aufnr,&lt;/P&gt;&lt;P&gt;           190 sy-vline.&lt;/P&gt;&lt;P&gt;    FORMAT COLOR COL_POSITIVE OFF.&lt;/P&gt;&lt;P&gt;    WRITE:/ sy-uline(190).&lt;/P&gt;&lt;P&gt;    append lwa_data to lt_data.&lt;/P&gt;&lt;P&gt;    clear lwa_data.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Jul 2008 05:29:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/program-using-class-quot-cl-salv-table-quot/m-p/4174272#M997924</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-28T05:29:46Z</dc:date>
    </item>
    <item>
      <title>Re: Program using class "cl_salv_table"</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/program-using-class-quot-cl-salv-table-quot/m-p/4174273#M997925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI nani,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;welcome&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is a sample program to illustrate several techniques:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;use of dynamic selections&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;persistent data stored into cluster INDX&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data definition at runtime&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;display internal table using SALV class&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just copy the code into a new program, create include for events, then copy status STANDARD from program SAPLSALV. &lt;/P&gt;&lt;P&gt;u have to add the SAVE function code to the disk button. It allow you to save modifications to the database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  zkarthik_update&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&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;report zkarthik_update.&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;  Data definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools: rsds.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: is_x030l   type x030l,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_x031l   type table of x031l,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_x031l   type x031l.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_selid    type rsdynsel-selid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_tables  type table of rsdstabs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_tables  type rsdstabs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_fields  type table of rsdsfields,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_expr    type rsds_texpr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_ranges  type rsds_trange,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_where   type rsds_twhere,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_where   type rsds_where,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_active   type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_repid    type sy-repid,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_dynnr    type sy-dynnr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wt_dynp    type table of dynpread,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ws_dynp    type dynpread.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: it_content type ref to data,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_content type ref to data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_okcode   type sy-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_fdkey    type x value u201801u2032.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_akey     type indx-srtfd,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey     type indx-srtfd,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_fkey     type indx-srtfd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Include to handle events on ALV display screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include zbc_query_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;itab&amp;gt; type standard table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;irec&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&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;Macros&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define table_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message e398(00) with u2018Tableu2019 p_table &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define fixed_val.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign component is_x031l-fieldname of structure &amp;lt;irec&amp;gt; to &amp;lt;fld&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;fld&amp;gt; = &amp;amp;1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&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;Selection screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of block b01 with frame.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_table type tabname obligatory                    u201Ctable&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;memory id dtb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;matchcode object dd_dbtb_16.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of line,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pushbutton 33(20) selopt user-command sel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;comment    55(15) selcnt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: skip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_field type fieldname,                            u201Cfield&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_value type text132.                              u201Cvalue&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block b01,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;skip,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;begin of block b02 with frame.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_displ type c as checkbox default u2018Xu2019,            u201Cdisplay&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_systm type c as checkbox.                        u201Csystem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block b02.&lt;/P&gt;&lt;P&gt;&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;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;move u2018@4G@ Filter recordsu2019 to selopt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ws_dynp-fieldname = u2018P_TABLEu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append ws_dynp to wt_dynp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get dynamic selection from cluster&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey(1) = u2018Au2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import w_active  from database indx(xy) id w_akey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Ru2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import it_expr   from database indx(xy) id w_rkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Fu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import it_fields from database indx(xy) id w_fkey.&lt;/P&gt;&lt;P&gt;&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;PBO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if w_active is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear: selcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write w_active to selcnt left-justified.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PAI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_table ne is_x030l-tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_init_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-ucomm = u2018SELu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if w_selid is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_init_selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Display free selection dialog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018FREE_SELECTIONS_DIALOGu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection_id            = w_selid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;title                   = u2018Selectionu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;status                  = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;as_window               = u2018Xu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions             = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field_ranges            = it_ranges&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;number_of_active_fields = w_active&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fields_tab              = it_fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                  = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Write dynamic selection to cluster&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey(1) = u2018Au2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_akey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export w_active  to database indx(xy) id w_akey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Ru2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export it_expr   to database indx(xy) id w_rkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey(1) = u2018Fu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_rkey+1(12) = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;export it_fields to database indx(xy) id w_fkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_field is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table it_x031l into is_x031l&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with key fieldname = p_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if is_x031l-flag1 o w_fdkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message e129(53) with p_field p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message e804(5g) with p_field p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen on value-request for p_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_dynnr = sy-dynnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018DYNP_VALUES_READu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dyname     = w_repid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dynumb     = w_dynnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;dynpfields = wt_dynp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others     = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table wt_dynp into ws_dynp index 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_table = ws_dynp-fieldvalue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018F4_DD_TABLE_FIELDSu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table  = p_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;result = p_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&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 f_create_table using p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_select_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_modify_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_display_table using &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_init_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_init_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Prepare free selection on table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_table_def using p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;refresh it_tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;is_tables-prim_tab = p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append is_tables to it_tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear: w_selid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_init_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f_init_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_init_selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Init free selection dialog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018FREE_SELECTIONS_INITu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions  = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection_id = w_selid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions  = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables_tab   = it_tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fields_tab   = it_fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others       = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_init_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_table_def                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_table_def using in_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018DDIF_NAMETAB_GETu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tabname   = p_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x030l_wa  = is_x030l&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x031l_tab = it_x031l&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others    = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if is_x030l is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table_error u2018does not exist or is not activeu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x030l-tabtype ne u2018Tu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table_error u2018is not selectableu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_table_def&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_create_table                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_create_table using in_tabname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create data it_content type table of (in_tabname).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign it_content-&amp;gt;* to &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write: u2018Error creating internal tableu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;stop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_create_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_select_table                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_select_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if w_active = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from (p_table)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Selection with parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018FREE_SELECTIONS_EX_2_WHEREu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expressions              = it_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where_clauses            = it_where&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;expression_not_supported = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                   = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table it_where into is_where with key tablename = p_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from (p_table)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;into corresponding fields of table &amp;lt;itab&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where (is_where-where_tab).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-dbcnt = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write: u2018No record selectedu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;stop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_select_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_modify_table                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_modify_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;fld&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at &amp;lt;itab&amp;gt; assigning &amp;lt;irec&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_field is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign component p_field of structure &amp;lt;irec&amp;gt; to &amp;lt;fld&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018GENERIC_CONVERSION_EXIT_INPUTu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i_tabname               = p_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i_fieldname             = p_field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;input_text              = p_value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;output_text             = &amp;lt;fld&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;invalid_ddic_parameters = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;invalid_input           = 2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                  = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&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;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&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;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_systm is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Default values for system fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_x031l into is_x031l.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if is_x031l-dtyp = u2018CLNTu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x031l-rollname = u2018ERDATu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018ERSDAu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018AEDATu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018LAEDAu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x031l-rollname = u2018ERTIMu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018AETIMu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseif is_x031l-rollname = u2018ERNAMu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or is_x031l-rollname = u2018AENAMu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fixed_val sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_modify_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM f_display_table                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f_display_table using in_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ob_table type ref to cl_salv_table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ob_event type ref to cl_salv_events_table,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cx_error type ref to cx_salv_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;r_salv_table = ob_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;changing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_table      = in_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_salv_msg into cx_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if p_displ is initial and&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_field is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method ob_table-&amp;gt;set_screen_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report        = u2018ZBC_UPDATE_TABLEu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pfstatus      = u2018STANDARDu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set_functions = ob_table-&amp;gt;c_functions_all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ob_event = ob_table-&amp;gt;get_event( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create object ob_appl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set handler ob_appl-&amp;gt;on_user_command for ob_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method ob_table-&amp;gt;set_screen_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report        = u2018SAPLSALVu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pfstatus      = u2018STANDARDu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set_functions = ob_table-&amp;gt;c_functions_all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call method ob_table-&amp;gt;display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cf_display_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using in_command type salv_de_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_messg  type string,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_answer type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ls_expr  type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check in_command = u2018SAVEu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_messg = u2018Overwrite field for all selected records ?u2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function u2018POPUP_TO_CONFIRMu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;titlebar              = u2018Update tableu2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text_question         = l_messg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;default_button        = u20182u2032&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;display_cancel_button = u2018 u2018&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;popup_type            = u2018@1A@u2019&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;answer                = l_answer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text_not_found        = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;others                = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if l_answer = u20181u2032.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;concatenate p_field u2018= u201Du2019 into ls_expr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;separated by space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;concatenate ls_expr p_value u201Du201D into ls_expr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;update (p_table) set (ls_expr)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where (is_where-where_tab).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;catch cx_sy_dynamic_osql_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rollback work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;message u2018Error during update!u2019 type u2018Iu2019.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endtry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    u201Cuser_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;  Include           ZBC_QUERY_EVENTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_handle_events definition deferred.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ob_appl type ref to lcl_handle_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_handle_events DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_handle_events definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;public section.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;methods:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_user_command for event added_function of cl_salv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing e_salv_function,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_before_salv_function for event before_salv_function of cl_salv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing e_salv_function,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_after_salv_function for event after_salv_function of cl_salv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing e_salv_function,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_double_click for event double_click of cl_salv_events_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing row column,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on_link_click for event link_click of cl_salv_events_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;importing row column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endclass.                    u201Clcl_handle_events DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_handle_events IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;class lcl_handle_events implementation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform user_command in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using e_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_before_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform before_function in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using e_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_before_salv_function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_after_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform after_function in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using e_salv_function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_after_salv_function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_double_click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform double_click in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using row column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_double_click&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method on_link_click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform link_click in program (sy-repid) if found&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using row column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.                    u201Con_single_click&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endclass.                    u201Clcl_handle_events IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;karthik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Jul 2008 05:51:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/program-using-class-quot-cl-salv-table-quot/m-p/4174273#M997925</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-28T05:51:12Z</dc:date>
    </item>
  </channel>
</rss>

