<?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: push button in alv report in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081967#M1357059</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;use command -  SET PF-STATUS 'statusname'&lt;/P&gt;&lt;P&gt;now double click on statusname&lt;/P&gt;&lt;P&gt;now add a button and corrosponding code in statusname&lt;/P&gt;&lt;P&gt;save and activate it&lt;/P&gt;&lt;P&gt;write code for this code in 'at user command'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: mayank jain on Aug 25, 2009 9:24 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Aug 2009 07:24:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2009-08-25T07:24:10Z</dc:date>
    <item>
      <title>push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081963#M1357055</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Experts,&lt;/P&gt;&lt;P&gt;         How to add pushbutton in alv report.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZTT_TEST_ALV
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT  ZTT_TEST_ALV.


*data declarations
type-pools : SLIS.

*  data : BEGIN OF wa_kna1,
*                kunnr type kunnr,
*                name1 type name1,
*         end of wa_kna1,
* it_kna1 like tABLE OF wa_kna1.
data : begin of wa_mara,
  matnr type matnr,
  end of wa_mara,
  it_mara like table of wa_mara.
  data : it_fcat type slis_t_fieldcat_alv,
         wa_fcat like line of it_fcat.



*selection screen
  SELECTION-SCREEN begin of block k with frame title text-001.
*  select-OPTIONS : s_kunnr for wa_kna1-kunnr.
     select-OPTIONS : s_matnr for wa_mara-matnr.
  SELECTION-SCREEN end of block k.




*select auery
*SELECT kunnr name1 INTO table it_kna1 from kna1 where kunnr in s_kunnr.
select matnr into table it_mara from mara where matnr in s_matnr.


*for displaying fieldcatalog
  PERFORM fcat using '1' 'MATNR' 'material Number' 'C410' '20'.
*  PERFORM fcat using '2' 'NAME1' 'Customer Name' 'C410' '36'.



*for displaying output
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
*   I_CALLBACK_PROGRAM                = ' '
   I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
   I_GRID_TITLE                      = 'Report for Customer Details'
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
   IT_FIELDCAT                       = it_fcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab                          = it_mara.
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
          .
IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.




*CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
*  EXPORTING
****   I_INTERFACE_CHECK              = ' '
****   I_CALLBACK_PROGRAM             =
****   I_CALLBACK_PF_STATUS_SET       = ' '
****   I_CALLBACK_USER_COMMAND        = ' '
****   IS_LAYOUT                      =
*   IT_FIELDCAT                    = it_fcat
****   IT_EXCLUDING                   =
****   IT_SPECIAL_GROUPS              =
****   IT_SORT                        =
****   IT_FILTER                      =
****   IS_SEL_HIDE                    =
****   I_SCREEN_START_COLUMN          = 0
****   I_SCREEN_START_LINE            = 0
****   I_SCREEN_END_COLUMN            = 0
****   I_SCREEN_END_LINE              = 0
****   I_DEFAULT                      = 'X'
****   I_SAVE                         = ' '
****   IS_VARIANT                     =
****   IT_EVENTS                      =
****   IT_EVENT_EXIT                  =
***    i_tabname_header               =
***    i_tabname_item                 =
****   I_STRUCTURE_NAME_HEADER        =
****   I_STRUCTURE_NAME_ITEM          =
***    is_keyinfo                     =
****   IS_PRINT                       =
****   IS_REPREP_ID                   =
****   I_BYPASSING_BUFFER             =
****   I_BUFFER_ACTIVE                =
****   IR_SALV_HIERSEQ_ADAPTER        =
****   IT_EXCEPT_QINFO                =
****   I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
**** IMPORTING
****   E_EXIT_CAUSED_BY_CALLER        =
****   ES_EXIT_CAUSED_BY_USER         =
*  tables
**    t_outtab_header                = it_
*    t_outtab_item                  = it_kna1.
**** EXCEPTIONS
****   PROGRAM_ERROR                  = 1
****   OTHERS                         = 2
***          .
***IF sy-subrc &amp;lt;&amp;gt; 0.
**** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
****         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
***ENDIF.
*


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FCAT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_0052   text
*      --&amp;gt;P_0053   text
*      --&amp;gt;P_0054   text
*----------------------------------------------------------------------*
form FCAT  using    fp_col_pos
                    fp_fieldname
                    fp_seltext_m
                    fp_emphasize
                    fp_outputlen..
wa_fcat-col_pos = fp_col_pos.
wa_fcat-fieldname = fp_fieldname.
wa_fcat-seltext_m = fp_seltext_m.
wa_fcat-emphasize = fp_emphasize.
wa_fcat-outputlen = fp_outputlen.
append wa_fcat to it_fcat.
clear : wa_fcat.
endform.                    " FCAT


FORM SET_PF_STATUS                                         .
 SET PF-STATUS 'ZNEWSTATUS' .
 "Copy of 'STANDARD' pf_status from fgroup SALV
endform.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i need one push button in alv output display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Thirukumaran. R&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 07:04:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081963#M1357055</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T07:04:04Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081964#M1357056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Create a pf status , in that create a pushbutton and write the logic in user-command of user command module.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 07:10:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081964#M1357056</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T07:10:32Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081965#M1357057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Create a PF status. Go to se41 and open the PF status in change mode and add a newbutton there. It will be displayed in application tool bar when the report is displayed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or check this link&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help-abap.blogspot.com/search/label/SALV%20Tutorial" target="test_blank"&gt;http://help-abap.blogspot.com/search/label/SALV%20Tutorial&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Pushkara&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 07:16:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081965#M1357057</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T07:16:51Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081966#M1357058</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;Please check the below link it will help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="7838831"&gt;&lt;/A&gt;]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="7683074"&gt;&lt;/A&gt;]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sunil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 07:19:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081966#M1357058</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T07:19:16Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081967#M1357059</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;use command -  SET PF-STATUS 'statusname'&lt;/P&gt;&lt;P&gt;now double click on statusname&lt;/P&gt;&lt;P&gt;now add a button and corrosponding code in statusname&lt;/P&gt;&lt;P&gt;save and activate it&lt;/P&gt;&lt;P&gt;write code for this code in 'at user command'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: mayank jain on Aug 25, 2009 9:24 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 07:24:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081967#M1357059</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T07:24:10Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081968#M1357060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;After populating the datas in to your internal table,&lt;/P&gt;&lt;P&gt;You have to call this FORM,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'XXX'.&lt;/P&gt;&lt;P&gt;ENDFORM.            " which is taken from standard&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; FORM  YYY  USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.  "which is taken from standard&lt;/P&gt;&lt;P&gt;  CASE R_UCOMM.&lt;/P&gt;&lt;P&gt;    WHEN 'YYY'.&lt;/P&gt;&lt;P&gt;               CALL TRANSACTION 'SE11'.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: YYY  is your okcode or function code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and while calling  'REUSE_ALV_GRID_DISPLAY' ,you havt to follow the below codes......&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              = SY-REPID&lt;/P&gt;&lt;P&gt;   I_CALLBACK_PF_STATUS_SET        = 'PF_STATUS'&lt;/P&gt;&lt;P&gt;   I_CALLBACK_USER_COMMAND         = 'YYY'&lt;/P&gt;&lt;P&gt;   IS_LAYOUT                        =   LAYOUT     "Layout&lt;/P&gt;&lt;P&gt;    IT_FIELDCAT                     =   FCAT    "Fieldcatalog&lt;/P&gt;&lt;P&gt;   I_DEFAULT                         = 'X'&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;Try this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;SAKTHIVEL.VT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 11:13:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081968#M1357060</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T11:13:13Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081969#M1357061</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi sakthi vel give one simple alv report with pushbutton.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Thirukumaran. R&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 12:41:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081969#M1357061</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T12:41:39Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081970#M1357062</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;   Check these threads.&lt;/P&gt;&lt;P&gt;   &lt;/P&gt;&lt;P&gt;      [&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="7951379"&gt;&lt;/A&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     [&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="4711371"&gt;&lt;/A&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      [&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="7584571"&gt;&lt;/A&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     Hope it helps.&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Pavan.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Aug 2009 12:59:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081970#M1357062</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-25T12:59:00Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081971#M1357063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI THIRU TRY FOLLOWING CODES:&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  ZSAMPLE&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  ZSAMPLE.&lt;/P&gt;&lt;P&gt;TABLES:MARA.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: SLIS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF TY_ITAB,&lt;/P&gt;&lt;P&gt;      MATNR LIKE MARA-MATNR,&lt;/P&gt;&lt;P&gt;      ERSDA LIKE MARA-ERSDA,&lt;/P&gt;&lt;P&gt;      END OF TY_ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:ITAB TYPE STANDARD TABLE OF TY_ITAB WITH HEADER LINE.&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;          WA_FCAT TYPE SLIS_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;          LAYOUT TYPE SLIS_LAYOUT_ALV,&lt;/P&gt;&lt;P&gt;          WA_LAYOUT TYPE SLIS_LAYOUT_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;PARAMETERS:P_MATNR TYPE MARA-MATNR.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM FIELDCAT.&lt;/P&gt;&lt;P&gt;  LAYOUT-ZEBRA = 'X'.&lt;/P&gt;&lt;P&gt;  PERFORM OUTPUT.&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  PF_STATUS&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;RT_EXTAB   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 PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'BUTT'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "PF_STATUS&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  PUSH_BUTT1&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;R_UCOMM      text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RS_SELFIELD  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 USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.&lt;/P&gt;&lt;P&gt;  CASE R_UCOMM.&lt;/P&gt;&lt;P&gt;    WHEN 'GET'.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;        CALL TRANSACTION 'SE11'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT' OR 'CANCEL' .&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    "PUSH_BUTT1&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  FIELDCAT&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 FIELDCAT .&lt;/P&gt;&lt;P&gt;  WA_FCAT-SELTEXT_L = 'Select'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-COL_POS = '1'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-FIELDNAME = 'CHECK'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-CHECKBOX = 'X'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-TABNAME = 'ITAB'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-OUTPUTLEN =  '4'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-INPUT(1) = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WA_FCAT-EDIT_MASK(1) = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WA_FCAT-EDIT(1) = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_FCAT TO FCAT.&lt;/P&gt;&lt;P&gt;  CLEAR WA_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WA_FCAT-SELTEXT_L = 'Material Number'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-COL_POS = '2'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-FIELDNAME = 'MATNR'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-TABNAME = 'ITAB'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-OUTPUTLEN =  '18'.&lt;/P&gt;&lt;P&gt;  APPEND WA_FCAT TO FCAT.&lt;/P&gt;&lt;P&gt;  CLEAR WA_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WA_FCAT-SELTEXT_L = 'Date'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-COL_POS = '3'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-FIELDNAME = 'ERSDA'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-TABNAME = 'ITAB'.&lt;/P&gt;&lt;P&gt;  WA_FCAT-OUTPUTLEN =  '8'.&lt;/P&gt;&lt;P&gt;  APPEND WA_FCAT TO FCAT.&lt;/P&gt;&lt;P&gt;  CLEAR WA_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FIELDCAT&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  OUTPUT&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 OUTPUT .&lt;/P&gt;&lt;P&gt;  SELECT MATNR ERSDA FROM MARA&lt;/P&gt;&lt;P&gt;    INTO TABLE ITAB&lt;/P&gt;&lt;P&gt;    WHERE MATNR EQ  P_MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    PERFORM GRID.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE 'No Records Found' TYPE 'I'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " OUTPUT&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  GRID&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 GRID .&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              = SY-REPID&lt;/P&gt;&lt;P&gt;   I_CALLBACK_PF_STATUS_SET        = 'PF_STATUS'&lt;/P&gt;&lt;P&gt;   I_CALLBACK_USER_COMMAND         = 'GET'&lt;/P&gt;&lt;P&gt;   IS_LAYOUT                         = LAYOUT&lt;/P&gt;&lt;P&gt;     IT_FIELDCAT                     = FCAT&lt;/P&gt;&lt;P&gt;   I_DEFAULT                         = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      T_OUTTAB                          = ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GRID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REGARDS,&lt;/P&gt;&lt;P&gt;SAKTHIVEL.VT&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Aug 2009 03:39:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081971#M1357063</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-08-26T03:39:02Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081972#M1357064</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;Goto SE41, create a pf-status for your alv report program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the next screen, click menu &lt;STRONG&gt;EXTRAS&lt;/STRONG&gt; --&amp;gt; click option &lt;STRONG&gt;ADJUST TEMPLATES&lt;/STRONG&gt; and select radiobutton &lt;STRONG&gt;LIST VIEWER&lt;/STRONG&gt; --&amp;gt; you will get all standard buttons of alv in the pf-status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Delete the unwanted buttons and also you can add new buttons if reqd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Activate pf-status&lt;/STRONG&gt; --&amp;gt; and &lt;STRONG&gt;apply in alv program&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And set this PF-Status in the ALV Report as:-&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     i_callback_program                = v_rep_id       " report id
     i_callback_pf_status_set          = 'PF'           " for PF-STATUS
     i_callback_user_command           = 'USER_COMMAND' " for User-Command
     is_layout                         = wa_layout      " for layout
     it_fieldcat                       = it_field       " field catalog
     it_sort                           = it_sort        " sort info
    TABLES
      t_outtab                          = it_final      " internal table
   EXCEPTIONS
     program_error                     = 1
     OTHERS                            = 2.

  IF sy-subrc &amp;lt;&amp;gt; 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  pf
*&amp;amp;---------------------------------------------------------------------*
*       SUB-ROUTINE PF IS USED TO SET THE PF-STATUS OF THE SCREEN
*       ON WHICH THE ALV GRID IS DISPLAYED
*----------------------------------------------------------------------*
*       --&amp;gt;RT_EXTAB
*----------------------------------------------------------------------*
FORM pf USING rt_extab TYPE slis_t_extab.
  SET PF-STATUS 'ZTG_STAT'.
ENDFORM.                    "pf
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tarun&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Aug 2009 04:00:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081972#M1357064</guid>
      <dc:creator>I355602</dc:creator>
      <dc:date>2009-08-26T04:00:24Z</dc:date>
    </item>
    <item>
      <title>Re: push button in alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081973#M1357065</link>
      <description>&lt;P&gt;** Main Program**&lt;/P&gt;&lt;P&gt;REPORT znwm_rpt_nmo_randomizer.&lt;/P&gt;&lt;P&gt;" Includes&lt;/P&gt;&lt;P&gt;INCLUDE z_top.&lt;/P&gt;&lt;P&gt;INCLUDE z_sel.&lt;/P&gt;&lt;P&gt;INCLUDE z_f01.&lt;/P&gt;&lt;P&gt;" Start of selection event&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  DATA: lo_execute TYPE REF TO lcl_execute.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT lo_execute.&lt;/P&gt;&lt;P&gt;  lo_execute-&amp;gt;get_data( ).&lt;/P&gt;&lt;P&gt;  lo_execute-&amp;gt;display_output( ).&lt;/P&gt;&lt;P&gt;*** To include ****&lt;/P&gt;&lt;P&gt;" Tables&lt;/P&gt;&lt;P&gt;TABLES: linv, marc.&lt;/P&gt;&lt;P&gt;" Types&lt;/P&gt;&lt;P&gt;* Types Declaration&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ltt_output,&lt;/P&gt;&lt;P&gt;         sel,&lt;/P&gt;&lt;P&gt;         matnr TYPE matnr,&lt;/P&gt;&lt;P&gt;         maktg TYPE maktg,&lt;/P&gt;&lt;P&gt;         abcin TYPE abcin,&lt;/P&gt;&lt;P&gt;         lgnum TYPE lgnum,&lt;/P&gt;&lt;P&gt;         lgort TYPE lgort_d,&lt;/P&gt;&lt;P&gt;         lgtyp TYPE lgtyp,&lt;/P&gt;&lt;P&gt;         lgpla TYPE lgpla,&lt;/P&gt;&lt;P&gt;         idatu TYPE lqua_idatu,&lt;/P&gt;&lt;P&gt;       END OF ltt_output.&lt;/P&gt;&lt;P&gt;" Data declaration&lt;/P&gt;&lt;P&gt;DATA: gi_output   TYPE TABLE OF ltt_output,&lt;/P&gt;&lt;P&gt;      r_ucomm     TYPE sy-ucomm,&lt;/P&gt;&lt;P&gt;      rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;" Constants&lt;/P&gt;&lt;P&gt;CONSTANTS: c_e TYPE char1 VALUE 'E',&lt;/P&gt;&lt;P&gt;           c_s TYPE char1 VALUE 'S'.&lt;/P&gt;&lt;P&gt;**** Selection Screen***&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_aind TYPE i,&lt;/P&gt;&lt;P&gt;            p_bind TYPE i,&lt;/P&gt;&lt;P&gt;            p_cind TYPE i,&lt;/P&gt;&lt;P&gt;            p_dind TYPE i,&lt;/P&gt;&lt;P&gt;            p_max  TYPE i OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_cdat FOR sy-datum OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_matnr FOR marc-matnr,&lt;/P&gt;&lt;P&gt;                s_lgort FOR linv-lgort.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_werks TYPE marc-werks OBLIGATORY,&lt;/P&gt;&lt;P&gt;            p_lgnum TYPE linv-lgnum,&lt;/P&gt;&lt;P&gt;            p_spart TYPE mara-spart.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK bl1.&lt;/P&gt;&lt;P&gt;* Input screen validation&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;* Storage location validation from T001L&lt;/P&gt;&lt;P&gt;  IF s_lgort IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT COUNT(*)&lt;/P&gt;&lt;P&gt;            FROM t001l&lt;/P&gt;&lt;P&gt;           WHERE lgort EQ s_lgort.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE text-e02 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;* Plant validation from T001W&lt;/P&gt;&lt;P&gt;  IF p_werks IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT COUNT(*)&lt;/P&gt;&lt;P&gt;            FROM t001w&lt;/P&gt;&lt;P&gt;           WHERE werks EQ p_werks.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE text-e01 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;* Warehouse validation from T320 table&lt;/P&gt;&lt;P&gt;  IF p_lgnum IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT COUNT(*)&lt;/P&gt;&lt;P&gt;            FROM t320&lt;/P&gt;&lt;P&gt;           WHERE lgnum EQ p_lgnum.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE text-e03 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;* Division validation from TSPA table&lt;/P&gt;&lt;P&gt;  IF p_spart IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT COUNT(*)&lt;/P&gt;&lt;P&gt;            FROM tspa&lt;/P&gt;&lt;P&gt;           WHERE spart EQ p_spart.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE text-e04 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;**** F01 Include ******&lt;/P&gt;&lt;P&gt;CLASS lcl_execute DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS: get_data,&lt;/P&gt;&lt;P&gt;      display_output.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;CLASS lcl_execute IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD get_data.&lt;/P&gt;&lt;P&gt;* Types declaration&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF ltt_ind,&lt;/P&gt;&lt;P&gt;             aind TYPE i,&lt;/P&gt;&lt;P&gt;             bind TYPE i,&lt;/P&gt;&lt;P&gt;             cind TYPE i,&lt;/P&gt;&lt;P&gt;             dind TYPE i,&lt;/P&gt;&lt;P&gt;             max  TYPE i,&lt;/P&gt;&lt;P&gt;           END OF ltt_ind,&lt;/P&gt;&lt;P&gt;           BEGIN OF ltt_main,&lt;/P&gt;&lt;P&gt;             matnr TYPE matnr,&lt;/P&gt;&lt;P&gt;             maktg TYPE maktg,&lt;/P&gt;&lt;P&gt;             abcin TYPE abcin,&lt;/P&gt;&lt;P&gt;             lgnum TYPE lgnum,&lt;/P&gt;&lt;P&gt;             lgort TYPE lgort_d,&lt;/P&gt;&lt;P&gt;             lgtyp TYPE lgtyp,&lt;/P&gt;&lt;P&gt;             lgpla TYPE lgpla,&lt;/P&gt;&lt;P&gt;             idatu TYPE lqua_idatu,&lt;/P&gt;&lt;P&gt;             dlinl TYPE dlinl,&lt;/P&gt;&lt;P&gt;             labst TYPE labst,&lt;/P&gt;&lt;P&gt;             charg TYPE charg_d,&lt;/P&gt;&lt;P&gt;             rflag TYPE flag,&lt;/P&gt;&lt;P&gt;           END OF ltt_main.&lt;/P&gt;&lt;P&gt;* Data declaration&lt;/P&gt;&lt;P&gt;    DATA: lwa_out   TYPE ltt_output,&lt;/P&gt;&lt;P&gt;          lwa_ind   TYPE ltt_ind,&lt;/P&gt;&lt;P&gt;          lv_random TYPE i,&lt;/P&gt;&lt;P&gt;          lv_max    TYPE i,&lt;/P&gt;&lt;P&gt;          lwa_main  TYPE ltt_main,&lt;/P&gt;&lt;P&gt;          li_main   TYPE TABLE OF ltt_main.&lt;/P&gt;&lt;P&gt;* Constants&lt;/P&gt;&lt;P&gt;    CONSTANTS: lc_a TYPE char1 VALUE 'A',&lt;/P&gt;&lt;P&gt;               lc_b TYPE char1 VALUE 'B',&lt;/P&gt;&lt;P&gt;               lc_c TYPE char1 VALUE 'C',&lt;/P&gt;&lt;P&gt;               lc_d TYPE char1 VALUE 'D'.&lt;/P&gt;&lt;P&gt;* Clearing variables and tables&lt;/P&gt;&lt;P&gt;    CLEAR: lwa_out, lwa_ind, lv_max, lwa_main,&lt;/P&gt;&lt;P&gt;           li_main[], lv_random, gi_output[].&lt;/P&gt;&lt;P&gt;* Indicators logic&lt;/P&gt;&lt;P&gt;    IF p_aind IS NOT INITIAL OR&lt;/P&gt;&lt;P&gt;       p_bind IS NOT INITIAL OR&lt;/P&gt;&lt;P&gt;       p_cind IS NOT INITIAL OR&lt;/P&gt;&lt;P&gt;       p_dind IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      lv_max = p_aind + p_bind + p_cind + p_dind.&lt;/P&gt;&lt;P&gt;      lwa_ind-aind = p_aind.&lt;/P&gt;&lt;P&gt;      lwa_ind-bind = p_bind.&lt;/P&gt;&lt;P&gt;      lwa_ind-cind = p_cind.&lt;/P&gt;&lt;P&gt;      lwa_ind-dind = p_dind.&lt;/P&gt;&lt;P&gt;      IF lv_max GT p_max.&lt;/P&gt;&lt;P&gt;        MESSAGE text-e06 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;        LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      lwa_ind-aind = p_max * ( 20 / 100 ).&lt;/P&gt;&lt;P&gt;      lwa_ind-bind = p_max * ( 20 / 100 ).&lt;/P&gt;&lt;P&gt;      lwa_ind-cind = p_max * ( 30 / 100 ).&lt;/P&gt;&lt;P&gt;      lwa_ind-dind = p_max * ( 30 / 100 ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;* To get MARD entries&lt;/P&gt;&lt;P&gt;    SELECT matnr,&lt;/P&gt;&lt;P&gt;           werks,&lt;/P&gt;&lt;P&gt;           lgort,&lt;/P&gt;&lt;P&gt;           lvorm,&lt;/P&gt;&lt;P&gt;           labst,&lt;/P&gt;&lt;P&gt;           lgpbe,&lt;/P&gt;&lt;P&gt;           dlinl&lt;/P&gt;&lt;P&gt;      FROM mard&lt;/P&gt;&lt;P&gt;      INTO TABLE @DATA(li_mard)&lt;/P&gt;&lt;P&gt;      WHERE matnr IN @s_matnr&lt;/P&gt;&lt;P&gt;        AND werks EQ @p_werks&lt;/P&gt;&lt;P&gt;        AND lgort IN @s_lgort&lt;/P&gt;&lt;P&gt;        AND lvorm NE @space.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;* To get MCHB entries&lt;/P&gt;&lt;P&gt;      SELECT matnr,&lt;/P&gt;&lt;P&gt;             werks,&lt;/P&gt;&lt;P&gt;             lgort,&lt;/P&gt;&lt;P&gt;             charg,&lt;/P&gt;&lt;P&gt;             lvorm,&lt;/P&gt;&lt;P&gt;             clabs,&lt;/P&gt;&lt;P&gt;             chdll&lt;/P&gt;&lt;P&gt;        FROM mchb&lt;/P&gt;&lt;P&gt;        INTO TABLE @DATA(li_mchb)&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN @li_mard&lt;/P&gt;&lt;P&gt;        WHERE matnr = @li_mard-matnr&lt;/P&gt;&lt;P&gt;         AND  werks = @li_mard-werks&lt;/P&gt;&lt;P&gt;         AND  lgort = @li_mard-lgort.&lt;/P&gt;&lt;P&gt;* To get MARC entries&lt;/P&gt;&lt;P&gt;      DATA(li_mard_t) = li_mard[].&lt;/P&gt;&lt;P&gt;      SORT li_mard_t[] BY matnr werks.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM li_mard_t[]&lt;/P&gt;&lt;P&gt;      COMPARING matnr werks.&lt;/P&gt;&lt;P&gt;      SELECT matnr,&lt;/P&gt;&lt;P&gt;             werks,&lt;/P&gt;&lt;P&gt;             xchar,&lt;/P&gt;&lt;P&gt;             abcin&lt;/P&gt;&lt;P&gt;        FROM marc&lt;/P&gt;&lt;P&gt;        INTO TABLE @DATA(li_marc)&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN @li_mard_t&lt;/P&gt;&lt;P&gt;        WHERE matnr = @li_mard_t-matnr&lt;/P&gt;&lt;P&gt;          AND werks = @li_mard_t-werks&lt;/P&gt;&lt;P&gt;          AND abcin NE @space.&lt;/P&gt;&lt;P&gt;* To get T320 entries&lt;/P&gt;&lt;P&gt;      CLEAR li_mard_t[].&lt;/P&gt;&lt;P&gt;      li_mard_t[] = li_mard[].&lt;/P&gt;&lt;P&gt;      SORT li_mard_t[] BY werks lgort.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM li_mard_t[]&lt;/P&gt;&lt;P&gt;      COMPARING werks lgort.&lt;/P&gt;&lt;P&gt;      SELECT werks,&lt;/P&gt;&lt;P&gt;             lgort,&lt;/P&gt;&lt;P&gt;             lgnum&lt;/P&gt;&lt;P&gt;        FROM t320&lt;/P&gt;&lt;P&gt;        INTO TABLE @DATA(li_t320)&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN @li_mard_t&lt;/P&gt;&lt;P&gt;        WHERE werks = @li_mard_t-werks&lt;/P&gt;&lt;P&gt;          AND lgort = @li_mard_t-lgort.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;* To get LQUA entries&lt;/P&gt;&lt;P&gt;    SELECT lgnum,&lt;/P&gt;&lt;P&gt;           lqnum,&lt;/P&gt;&lt;P&gt;           matnr,&lt;/P&gt;&lt;P&gt;           werks,&lt;/P&gt;&lt;P&gt;           charg,&lt;/P&gt;&lt;P&gt;           lgtyp,&lt;/P&gt;&lt;P&gt;           lgpla,&lt;/P&gt;&lt;P&gt;           gesme,&lt;/P&gt;&lt;P&gt;           idatu&lt;/P&gt;&lt;P&gt;      FROM lqua&lt;/P&gt;&lt;P&gt;      INTO TABLE @DATA(li_lqua)&lt;/P&gt;&lt;P&gt;      WHERE lgnum EQ @p_lgnum&lt;/P&gt;&lt;P&gt;        AND matnr IN @s_matnr&lt;/P&gt;&lt;P&gt;        AND werks EQ @p_werks&lt;/P&gt;&lt;P&gt;        AND lgort IN @s_lgort&lt;/P&gt;&lt;P&gt;        AND idatu IN @s_cdat.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      DATA(li_lqua_t) = li_lqua[].&lt;/P&gt;&lt;P&gt;* To get MAKT entries&lt;/P&gt;&lt;P&gt;      SORT li_lqua_t[] BY matnr.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM li_lqua_t[]&lt;/P&gt;&lt;P&gt;      COMPARING matnr.&lt;/P&gt;&lt;P&gt;      IF li_lqua_t[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        SELECT matnr,&lt;/P&gt;&lt;P&gt;               spras,&lt;/P&gt;&lt;P&gt;               maktx,&lt;/P&gt;&lt;P&gt;               maktg&lt;/P&gt;&lt;P&gt;          FROM makt&lt;/P&gt;&lt;P&gt;          INTO TABLE @DATA(li_makt)&lt;/P&gt;&lt;P&gt;          FOR ALL ENTRIES IN @li_lqua_t&lt;/P&gt;&lt;P&gt;         WHERE matnr = @li_lqua_t-matnr&lt;/P&gt;&lt;P&gt;           AND spras = @sy-langu.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;* Looping MARD entries fro filling final table&lt;/P&gt;&lt;P&gt;    LOOP AT li_mard INTO DATA(lwa_mard).&lt;/P&gt;&lt;P&gt;      READ TABLE li_marc INTO DATA(lwa_marc)&lt;/P&gt;&lt;P&gt;      WITH KEY matnr = lwa_mard-matnr&lt;/P&gt;&lt;P&gt;               werks = lwa_mard-werks&lt;/P&gt;&lt;P&gt;               BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        IF lwa_marc-xchar EQ abap_true.&lt;/P&gt;&lt;P&gt;          DATA(lv_mbatch_flag) = abap_true.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        READ TABLE li_t320 TRANSPORTING NO FIELDS&lt;/P&gt;&lt;P&gt;        WITH KEY werks = lwa_mard-werks&lt;/P&gt;&lt;P&gt;                 lgort =  lwa_mard-lgort&lt;/P&gt;&lt;P&gt;                 BINARY SEARCH.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          DATA(lv_wm_flag) = abap_true.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;* When Material not in WM controlled SLOC and Material not batch managed&lt;/P&gt;&lt;P&gt;      IF lv_wm_flag IS INITIAL AND&lt;/P&gt;&lt;P&gt;         lv_mbatch_flag IS INITIAL.&lt;/P&gt;&lt;P&gt;        lwa_main-dlinl = lwa_mard-dlinl.&lt;/P&gt;&lt;P&gt;        lwa_main-labst = lwa_mard-labst.&lt;/P&gt;&lt;P&gt;* When Material not in WM controlled SLOC and Material is batch managed&lt;/P&gt;&lt;P&gt;      ELSEIF lv_wm_flag IS INITIAL AND&lt;/P&gt;&lt;P&gt;             lv_mbatch_flag IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        READ TABLE li_mchb INTO DATA(lwa_mchb)&lt;/P&gt;&lt;P&gt;        WITH KEY matnr = lwa_mard-matnr&lt;/P&gt;&lt;P&gt;                 werks = lwa_mard-werks&lt;/P&gt;&lt;P&gt;                 lgort = lwa_mard-lgort&lt;/P&gt;&lt;P&gt;                 BINARY SEARCH.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          lwa_main-dlinl = lwa_mchb-chdll.&lt;/P&gt;&lt;P&gt;          lwa_main-labst = lwa_mchb-clabs.&lt;/P&gt;&lt;P&gt;          lwa_main-charg = lwa_mchb-charg.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;* When Material not in WM controlled SLOC and Material not batch managed&lt;/P&gt;&lt;P&gt;      ELSEIF lv_wm_flag IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        READ TABLE li_lqua INTO DATA(lwa_lqua)&lt;/P&gt;&lt;P&gt;        WITH KEY lgnum = p_lgnum&lt;/P&gt;&lt;P&gt;                 matnr = lwa_mard-matnr&lt;/P&gt;&lt;P&gt;                 werks = lwa_mard-werks.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          lwa_main-dlinl = lwa_lqua-idatu.&lt;/P&gt;&lt;P&gt;          lwa_main-labst = lwa_lqua-gesme.&lt;/P&gt;&lt;P&gt;          lwa_main-charg = lwa_lqua-charg.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;* When last date counted is with in the range or blank&lt;/P&gt;&lt;P&gt;      IF lwa_main-dlinl IS INITIAL OR&lt;/P&gt;&lt;P&gt;         ( ( lwa_main-dlinl LT s_cdat-low ) OR&lt;/P&gt;&lt;P&gt;           ( lwa_main-dlinl GT s_cdat-high ) ).&lt;/P&gt;&lt;P&gt;        lwa_main-matnr = lwa_mard-matnr.&lt;/P&gt;&lt;P&gt;        lwa_main-lgort = lwa_mard-lgort.&lt;/P&gt;&lt;P&gt;        lwa_main-idatu = lwa_main-dlinl.&lt;/P&gt;&lt;P&gt;        lwa_main-abcin = lwa_marc-abcin.&lt;/P&gt;&lt;P&gt;        READ TABLE li_makt INTO DATA(lwa_makt)&lt;/P&gt;&lt;P&gt;        WITH KEY matnr = lwa_lqua-matnr&lt;/P&gt;&lt;P&gt;                 spras = sy-langu&lt;/P&gt;&lt;P&gt;                 BINARY SEARCH.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          lwa_main-maktg = lwa_makt-maktg.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR lwa_lqua.&lt;/P&gt;&lt;P&gt;        READ TABLE li_lqua INTO lwa_lqua&lt;/P&gt;&lt;P&gt;         WITH KEY lgnum = p_lgnum&lt;/P&gt;&lt;P&gt;                  matnr = lwa_mard-matnr&lt;/P&gt;&lt;P&gt;                  werks = lwa_mard-werks.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          lwa_main-lgnum = lwa_lqua-lgnum.&lt;/P&gt;&lt;P&gt;* When WM controlled&lt;/P&gt;&lt;P&gt;          IF lv_wm_flag IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;            lwa_main-lgtyp = lwa_lqua-lgtyp.&lt;/P&gt;&lt;P&gt;            lwa_main-lgpla = lwa_lqua-lgpla.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;* When IM Controlled, LGTYP will be blank&lt;/P&gt;&lt;P&gt;            lwa_main-lgpla = lwa_mard-lgpbe.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        APPEND lwa_main TO li_main.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR: lwa_main, lwa_mard, lwa_lqua, lwa_out,&lt;/P&gt;&lt;P&gt;             lwa_makt, lwa_marc, lwa_mchb.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;* Logic to update the randomaizer flag&lt;/P&gt;&lt;P&gt;    CLEAR: lwa_out.&lt;/P&gt;&lt;P&gt;    DATA(li_main_t) = li_main[].&lt;/P&gt;&lt;P&gt;    SORT li_main_t BY abcin.&lt;/P&gt;&lt;P&gt;* A Indicator&lt;/P&gt;&lt;P&gt;    IF lwa_ind-aind IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      DELETE li_main_t WHERE abcin NE lc_a.&lt;/P&gt;&lt;P&gt;      LOOP AT li_main_t ASSIGNING FIELD-SYMBOL(&amp;lt;lfs_main&amp;gt;).&lt;/P&gt;&lt;P&gt;        IF sy-tabix LE lwa_ind-aind.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'QF05_RANDOM_INTEGER'&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              ran_int_min = 1&lt;/P&gt;&lt;P&gt;              ran_int_max = lwa_ind-aind&lt;/P&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;P&gt;              ran_int     = lv_random.&lt;/P&gt;&lt;P&gt;          IF lv_random IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;            &amp;lt;lfs_main&amp;gt;-rflag = abap_true.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING &amp;lt;lfs_main&amp;gt; TO lwa_out.&lt;/P&gt;&lt;P&gt;            APPEND lwa_out TO gi_output.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR: lwa_main, lv_random.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;* B Indicator&lt;/P&gt;&lt;P&gt;    CLEAR: li_main_t[].&lt;/P&gt;&lt;P&gt;    IF lwa_ind-bind IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      li_main_t[] = li_main[].&lt;/P&gt;&lt;P&gt;      SORT li_main_t BY abcin.&lt;/P&gt;&lt;P&gt;      DELETE li_main_t WHERE abcin NE lc_b.&lt;/P&gt;&lt;P&gt;      LOOP AT li_main_t ASSIGNING &amp;lt;lfs_main&amp;gt;.&lt;/P&gt;&lt;P&gt;        IF sy-tabix LE lwa_ind-bind.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'QF05_RANDOM_INTEGER'&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              ran_int_min = 1&lt;/P&gt;&lt;P&gt;              ran_int_max = lwa_ind-bind&lt;/P&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;P&gt;              ran_int     = lv_random.&lt;/P&gt;&lt;P&gt;          IF lv_random IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;            &amp;lt;lfs_main&amp;gt;-rflag = abap_true.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING &amp;lt;lfs_main&amp;gt; TO lwa_out.&lt;/P&gt;&lt;P&gt;            APPEND lwa_out TO gi_output.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR: lwa_out, lv_random.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;* C Indicator&lt;/P&gt;&lt;P&gt;    CLEAR: li_main_t[].&lt;/P&gt;&lt;P&gt;    IF lwa_ind-cind IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      li_main_t[] = li_main[].&lt;/P&gt;&lt;P&gt;      SORT li_main_t BY abcin.&lt;/P&gt;&lt;P&gt;      DELETE li_main_t WHERE abcin NE lc_c.&lt;/P&gt;&lt;P&gt;      LOOP AT li_main_t ASSIGNING &amp;lt;lfs_main&amp;gt;.&lt;/P&gt;&lt;P&gt;        IF sy-tabix LE lwa_ind-cind.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'QF05_RANDOM_INTEGER'&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              ran_int_min = 1&lt;/P&gt;&lt;P&gt;              ran_int_max = lwa_ind-cind&lt;/P&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;P&gt;              ran_int     = lv_random.&lt;/P&gt;&lt;P&gt;          IF lv_random IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;            &amp;lt;lfs_main&amp;gt;-rflag = abap_true.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING &amp;lt;lfs_main&amp;gt; TO lwa_out.&lt;/P&gt;&lt;P&gt;            APPEND lwa_out TO gi_output.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR: lwa_out, lv_random.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;* D Indicator&lt;/P&gt;&lt;P&gt;    CLEAR: li_main_t[].&lt;/P&gt;&lt;P&gt;    IF lwa_ind-dind IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      li_main_t[] = li_main[].&lt;/P&gt;&lt;P&gt;      SORT li_main_t BY abcin.&lt;/P&gt;&lt;P&gt;      DELETE li_main_t WHERE abcin NE lc_d.&lt;/P&gt;&lt;P&gt;      LOOP AT li_main_t ASSIGNING &amp;lt;lfs_main&amp;gt;.&lt;/P&gt;&lt;P&gt;        IF sy-tabix LE lwa_ind-dind.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'QF05_RANDOM_INTEGER'&lt;/P&gt;&lt;P&gt;            EXPORTING&lt;/P&gt;&lt;P&gt;              ran_int_min = 1&lt;/P&gt;&lt;P&gt;              ran_int_max = lwa_ind-dind&lt;/P&gt;&lt;P&gt;            IMPORTING&lt;/P&gt;&lt;P&gt;              ran_int     = lv_random.&lt;/P&gt;&lt;P&gt;          IF lv_random IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;            &amp;lt;lfs_main&amp;gt;-rflag = abap_true.&lt;/P&gt;&lt;P&gt;            MOVE-CORRESPONDING &amp;lt;lfs_main&amp;gt; TO lwa_out.&lt;/P&gt;&lt;P&gt;            APPEND lwa_out TO gi_output.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR: lwa_out, lv_random.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD display_output.&lt;/P&gt;&lt;P&gt;    TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;* Data Declaration&lt;/P&gt;&lt;P&gt;    DATA: ti_fieldcat  TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;          lwa_fieldcat TYPE slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;          lwa_layout   TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;* Clear&lt;/P&gt;&lt;P&gt;    CLEAR: lwa_layout, lwa_fieldcat, ti_fieldcat.&lt;/P&gt;&lt;P&gt;* Layout&lt;/P&gt;&lt;P&gt;    lwa_layout-colwidth_optimize = abap_true.&lt;/P&gt;&lt;P&gt;    lwa_layout-box_fieldname = 'SEL'.&lt;/P&gt;&lt;P&gt;    IF gi_output[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SORT gi_output[] BY lgort lgtyp lgpla.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f01.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-002.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f02.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-003.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f03.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-004.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f04.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-005.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f06.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-007.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f07.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-008.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f08.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-009.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-fieldname  = text-f05.&lt;/P&gt;&lt;P&gt;      lwa_fieldcat-seltext_m  = text-006.&lt;/P&gt;&lt;P&gt;      APPEND lwa_fieldcat TO ti_fieldcat.&lt;/P&gt;&lt;P&gt;      CLEAR lwa_fieldcat.&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       = sy-repid&lt;/P&gt;&lt;P&gt;          i_callback_pf_status_set = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;          i_callback_user_command  = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;          is_layout                = lwa_layout&lt;/P&gt;&lt;P&gt;          it_fieldcat              = ti_fieldcat[]&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          t_outtab                 = gi_output[]&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          program_error            = 1&lt;/P&gt;&lt;P&gt;          OTHERS                   = 2.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;        MESSAGE text-e05 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE text-e05 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;FORM set_pf_status USING rt_extab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'STANDARD'.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                   rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'LICC'.&lt;/P&gt;&lt;P&gt;      DATA(li_output) = gi_output[].&lt;/P&gt;&lt;P&gt;      DELETE li_output WHERE sel EQ abap_false.&lt;/P&gt;&lt;P&gt;      DATA: lr_matnr TYPE RANGE OF matnr.&lt;/P&gt;&lt;P&gt;      IF li_output[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        "write the column carrid of your internal table in your range&lt;/P&gt;&lt;P&gt;        lr_matnr = VALUE #( FOR &amp;lt;fs_matnr&amp;gt; IN li_output&lt;/P&gt;&lt;P&gt;                            (&lt;/P&gt;&lt;P&gt;                              sign = 'I'&lt;/P&gt;&lt;P&gt;                              option = 'EQ'&lt;/P&gt;&lt;P&gt;                              low = &amp;lt;fs_matnr&amp;gt;-matnr&lt;/P&gt;&lt;P&gt;                              high = ''&lt;/P&gt;&lt;P&gt;                             ) ).&lt;/P&gt;&lt;P&gt;* Calling LICC Tcode skipping first screen&lt;/P&gt;&lt;P&gt;        SUBMIT rlinv060 WITH s1_lgnum = p_lgnum&lt;/P&gt;&lt;P&gt;                        WITH matnr IN lr_matnr.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MESSAGE text-e05 TYPE c_s DISPLAY LIKE c_e.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.&lt;/P&gt;&lt;P&gt;      LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Jul 2023 10:19:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/push-button-in-alv-report/m-p/6081973#M1357065</guid>
      <dc:creator>former_member1121942</dc:creator>
      <dc:date>2023-07-20T10:19:24Z</dc:date>
    </item>
  </channel>
</rss>

