<?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: alv report in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-report/m-p/4040898#M965870</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;check this sample report to get top of page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  ZMAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Types&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types: begin of tp_data,&lt;/P&gt;&lt;P&gt;matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;mtart like mara-mtart,&lt;/P&gt;&lt;P&gt;mbrsh like mara-mbrsh,&lt;/P&gt;&lt;P&gt;matkl like mara-matkl,&lt;/P&gt;&lt;P&gt;meins like mara-meins,&lt;/P&gt;&lt;P&gt;spras like makt-spras,&lt;/P&gt;&lt;P&gt;maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       end of tp_data,&lt;/P&gt;&lt;P&gt;       tp_tbl_data type standard table of tp_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&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;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data objects (variable declarations and definitions)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report data to be shown.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: it_data type standard table of tp_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading of the report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: t_heading type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;========================== Selection Screen ==========================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of block b1 with frame title text-t01.&lt;/P&gt;&lt;P&gt;DATA: w_aux_matnr like mara-matnr.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_matnr for w_aux_matnr .&lt;/P&gt;&lt;P&gt;DATA: w_aux_ersda like mara-ersda.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_ersda for w_aux_ersda .&lt;/P&gt;&lt;P&gt;DATA: w_aux_mtart like mara-mtart.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_mtart for w_aux_mtart .&lt;/P&gt;&lt;P&gt;*DATA: w_aux_matnr like makt-matnr.&lt;/P&gt;&lt;P&gt;*SELECT-OPTIONS s_matnr for w_aux_matnr .&lt;/P&gt;&lt;P&gt;DATA: w_aux_spras like makt-spras.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_spras for w_aux_spras .&lt;/P&gt;&lt;P&gt;selection-screen: end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;=========================== Event Blocks =============================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get_data using it_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;  perform build_alv using it_data t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;=========================== Subroutines ==============================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Gets the information to be shown in the report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get_data using t_data type tp_tbl_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT k~spras&lt;/P&gt;&lt;P&gt;m~matnr&lt;/P&gt;&lt;P&gt;m~mtart&lt;/P&gt;&lt;P&gt;m~mbrsh&lt;/P&gt;&lt;P&gt;m~matkl&lt;/P&gt;&lt;P&gt;m~meins&lt;/P&gt;&lt;P&gt;k~maktx&lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE t_data&lt;/P&gt;&lt;P&gt;FROM mara as m&lt;/P&gt;&lt;P&gt;inner join makt as k on m&lt;SUB&gt;matnr = k&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;WHERE m~matnr in s_matnr&lt;/P&gt;&lt;P&gt; AND m~ersda in s_ersda&lt;/P&gt;&lt;P&gt; AND m~mtart in s_mtart&lt;/P&gt;&lt;P&gt; AND k~matnr in s_matnr&lt;/P&gt;&lt;P&gt; AND k~spras in s_spras&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " get_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_alv&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;      Builds and display the ALV Grid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_alv using t_data type tp_tbl_data&lt;/P&gt;&lt;P&gt;                     t_heading  type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV required data objects.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: w_title   type lvc_title,&lt;/P&gt;&lt;P&gt;      w_comm    type slis_formname,&lt;/P&gt;&lt;P&gt;      w_status  type slis_formname,&lt;/P&gt;&lt;P&gt;      x_layout  type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      t_event    type slis_t_event,&lt;/P&gt;&lt;P&gt;      t_fieldcat type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      t_sort     type slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;refresh t_fieldcat.&lt;/P&gt;&lt;P&gt;refresh t_event.&lt;/P&gt;&lt;P&gt;refresh t_sort.&lt;/P&gt;&lt;P&gt;clear x_layout.&lt;/P&gt;&lt;P&gt;clear w_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field Catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform set_fieldcat2 using:&lt;/P&gt;&lt;P&gt;1 'SPRAS' 'SPRAS' 'MAKT' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;2 'MATNR' 'MATNR' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;3 'MTART' 'MTART' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;4 'MBRSH' 'MBRSH' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;5 'MATKL' 'MATKL' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;6 'MEINS' 'MEINS' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;7 'MAKTX' 'MAKTX' 'MAKT' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;x_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Top of page heading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform set_top_page_heading using t_heading t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform set_events using t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUI Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_status = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User commands&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_comm   = 'USER_COMMAND'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM set_order USING '&amp;lt;field&amp;gt;' 'IT_DATA' 'X' space space t_sort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Displays the ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      it_fieldcat              = t_fieldcat&lt;/P&gt;&lt;P&gt;      is_layout                = x_layout&lt;/P&gt;&lt;P&gt;      it_sort                  = t_sort&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = w_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = w_comm&lt;/P&gt;&lt;P&gt;      i_save                   = 'X'&lt;/P&gt;&lt;P&gt;      it_events                = t_event&lt;/P&gt;&lt;P&gt;      i_grid_title             = w_title&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      t_outtab                 = t_data&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 &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " build_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_top_page_heading&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;      Creates the report headings.&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 set_top_page_heading using t_heading type slis_t_listheader&lt;/P&gt;&lt;P&gt;                                t_events  type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: x_heading type slis_listheader,&lt;/P&gt;&lt;P&gt;      x_event   type line of slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report title&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear t_heading[].&lt;/P&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'H'.&lt;/P&gt;&lt;P&gt;  x_heading-info = 'Material Info'(001).&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'Program: '.&lt;/P&gt;&lt;P&gt;  x_heading-info = sy-repid.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User who is running the report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'User: '.&lt;/P&gt;&lt;P&gt;  x_heading-info = sy-uname.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date of execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'Date: '.&lt;/P&gt;&lt;P&gt;  write sy-datum to x_heading-info.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Time of execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'Time: '.&lt;/P&gt;&lt;P&gt;  write sy-uzeit to x_heading-info.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Top of page event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  x_event-name = slis_ev_top_of_page.&lt;/P&gt;&lt;P&gt;  x_event-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  append x_event to t_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  set_events&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;      Sets the events for ALV.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      The TOP_OF_PAGE event is alredy being registered in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the set_top_page_heading subroutine.&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 set_events using t_events type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: x_event   type line of slis_t_event.&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;Example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; clear x_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; x_event-name = .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; x_event-form = .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; append x_event to t_event.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  set_order&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;      Adds an entry to the order table.&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 set_order USING p_fieldname p_tabname p_up p_down p_subtot&lt;/P&gt;&lt;P&gt;                     t_sort TYPE slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: x_sort TYPE slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR x_sort.&lt;/P&gt;&lt;P&gt;  x_sort-fieldname = p_fieldname.&lt;/P&gt;&lt;P&gt;  x_sort-tabname   = p_tabname.&lt;/P&gt;&lt;P&gt;  x_sort-up = p_up.&lt;/P&gt;&lt;P&gt;  x_sort-down = p_down.&lt;/P&gt;&lt;P&gt;  x_sort-subtot = p_subtot.&lt;/P&gt;&lt;P&gt;  APPEND x_sort TO t_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "set_order&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  set_fieldcat2&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;      Adds an entry to the field catalog.&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 set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname&lt;/P&gt;&lt;P&gt;p_ref_tabname&lt;/P&gt;&lt;P&gt;      p_outputlen p_noout&lt;/P&gt;&lt;P&gt;      p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt&lt;/P&gt;&lt;P&gt;      p_hotspot p_showasicon p_checkbox p_edit&lt;/P&gt;&lt;P&gt;      p_dosum&lt;/P&gt;&lt;P&gt;      t_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: wa_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;General settings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_fieldcat-fieldname = p_fieldname.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = p_colpos.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-no_out = p_noout.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-hotspot = p_hotspot.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-checkbox = p_checkbox.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-icon = p_showasicon.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum = p_dosum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set reference fieldname, tablenam and rollname.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If p_ref_tabname is not given, the ref_fieldname given is a data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*element.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If p_ref_tabname is given, the ref_fieldname given is a field of a&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*table. In case ref_fieldname is not given, it is copied from the&lt;/P&gt;&lt;P&gt;*fieldname.&lt;/P&gt;&lt;P&gt;  IF p_ref_tabname IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-rollname =   p_ref_fieldname.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ref_tabname = p_ref_tabname.&lt;/P&gt;&lt;P&gt;    IF p_ref_fieldname EQ space.&lt;/P&gt;&lt;P&gt;      wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      wa_fieldcat-ref_fieldname =   p_ref_fieldname.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;Set output length.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT p_outputlen IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-outputlen = p_outputlen.&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;Set text headers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT p_seltext_m IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-seltext_m = p_seltext_m.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_seltext_l IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-seltext_l = p_seltext_l.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_seltext_s IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-seltext_s = p_seltext_s.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_reptext_ddic IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-reptext_ddic = p_reptext_ddic.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_ddictxt IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ddictxt = p_ddictxt.&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;Set as editable or not.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_edit IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-input     = 'X'.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-edit     = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                   "set_fieldcat2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;=========================== Subroutines called by ALV ================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_page&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;      Called on top_of_page ALV event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Prints the heading.&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 top_of_page.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    i_logo             = 'XXXXX'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      it_list_commentary = t_heading.&lt;/P&gt;&lt;P&gt;endform.                    " alv_top_of_page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Called on user_command ALV event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Executes custom commands.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using r_ucomm     like sy-ucomm&lt;/P&gt;&lt;P&gt;                        rs_selfield type slis_selfield.&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;Example Code&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;Executes a command considering the sy-ucomm.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CASE r_ucomm.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHEN '&amp;amp;IC1'.&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;     Set your "double click action" response here.&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;     Example code: Create and display a status message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DATA: w_msg TYPE string,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           w_row(4) TYPE n.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     w_row = rs_selfield-tabindex.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONCATENATE 'You have clicked row' w_row&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 'field' rs_selfield-fieldname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 'with value' rs_selfield-value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 INTO w_msg SEPARATED BY space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MESSAGE w_msg TYPE 'S'.&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; ENDCASE.&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; End of example code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points if hlpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Jun 2008 09:28:26 GMT</pubDate>
    <dc:creator>GauthamV</dc:creator>
    <dc:date>2008-06-19T09:28:26Z</dc:date>
    <item>
      <title>alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-report/m-p/4040897#M965869</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 doing one report for this i have get top-of-page.&lt;/P&gt;&lt;P&gt;i am using below code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM dispaly_data .&lt;/P&gt;&lt;P&gt;*data: g_repid type sy-repid.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     g_repid = sy-repid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR wa_layout.&lt;/P&gt;&lt;P&gt;  wa_layout-zebra = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR wa_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Call the grid function module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      is_layout                         = wa_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat                       = it_fieldcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EXCLUDING                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_SORT                           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_default                         = 'X'&lt;/P&gt;&lt;P&gt;      i_save                            = 'A'&lt;/P&gt;&lt;P&gt;      i_callback_html_top_of_page       = 'SUB_TOP_OF_PAGE'&lt;/P&gt;&lt;P&gt;      i_html_height_top           = 8&lt;/P&gt;&lt;P&gt;      is_variant                        = g_variant&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EVENTS                         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                          = it_final[]&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 &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.                               " IF sy-subrc &amp;lt;&amp;gt; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " dispaly_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  sub_top_of_page&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;TOP        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 sub_top_of_page USING top TYPE REF TO cl_dd_document .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Align output text column&lt;/P&gt;&lt;P&gt;  CALL METHOD top-&amp;gt;add_gap&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      width = 180.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Write text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD top-&amp;gt;add_text&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      text      = text-028&lt;/P&gt;&lt;P&gt;      sap_style = 'HEADING'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add new-line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD top-&amp;gt;new_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but in the output i am not getting heding of report .&lt;/P&gt;&lt;P&gt;pl, correct if any mistake of coding.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points.&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jun 2008 09:24:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-report/m-p/4040897#M965869</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-19T09:24:19Z</dc:date>
    </item>
    <item>
      <title>Re: alv report</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-report/m-p/4040898#M965870</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;check this sample report to get top of page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  ZMAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Types&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types: begin of tp_data,&lt;/P&gt;&lt;P&gt;matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;mtart like mara-mtart,&lt;/P&gt;&lt;P&gt;mbrsh like mara-mbrsh,&lt;/P&gt;&lt;P&gt;matkl like mara-matkl,&lt;/P&gt;&lt;P&gt;meins like mara-meins,&lt;/P&gt;&lt;P&gt;spras like makt-spras,&lt;/P&gt;&lt;P&gt;maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       end of tp_data,&lt;/P&gt;&lt;P&gt;       tp_tbl_data type standard table of tp_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&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;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data objects (variable declarations and definitions)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report data to be shown.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: it_data type standard table of tp_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading of the report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: t_heading type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;========================== Selection Screen ==========================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of block b1 with frame title text-t01.&lt;/P&gt;&lt;P&gt;DATA: w_aux_matnr like mara-matnr.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_matnr for w_aux_matnr .&lt;/P&gt;&lt;P&gt;DATA: w_aux_ersda like mara-ersda.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_ersda for w_aux_ersda .&lt;/P&gt;&lt;P&gt;DATA: w_aux_mtart like mara-mtart.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_mtart for w_aux_mtart .&lt;/P&gt;&lt;P&gt;*DATA: w_aux_matnr like makt-matnr.&lt;/P&gt;&lt;P&gt;*SELECT-OPTIONS s_matnr for w_aux_matnr .&lt;/P&gt;&lt;P&gt;DATA: w_aux_spras like makt-spras.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS s_spras for w_aux_spras .&lt;/P&gt;&lt;P&gt;selection-screen: end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;=========================== Event Blocks =============================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get_data using it_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;  perform build_alv using it_data t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;=========================== Subroutines ==============================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Gets the information to be shown in the report.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get_data using t_data type tp_tbl_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT k~spras&lt;/P&gt;&lt;P&gt;m~matnr&lt;/P&gt;&lt;P&gt;m~mtart&lt;/P&gt;&lt;P&gt;m~mbrsh&lt;/P&gt;&lt;P&gt;m~matkl&lt;/P&gt;&lt;P&gt;m~meins&lt;/P&gt;&lt;P&gt;k~maktx&lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE t_data&lt;/P&gt;&lt;P&gt;FROM mara as m&lt;/P&gt;&lt;P&gt;inner join makt as k on m&lt;SUB&gt;matnr = k&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;WHERE m~matnr in s_matnr&lt;/P&gt;&lt;P&gt; AND m~ersda in s_ersda&lt;/P&gt;&lt;P&gt; AND m~mtart in s_mtart&lt;/P&gt;&lt;P&gt; AND k~matnr in s_matnr&lt;/P&gt;&lt;P&gt; AND k~spras in s_spras&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " get_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_alv&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;      Builds and display the ALV Grid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_alv using t_data type tp_tbl_data&lt;/P&gt;&lt;P&gt;                     t_heading  type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV required data objects.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: w_title   type lvc_title,&lt;/P&gt;&lt;P&gt;      w_comm    type slis_formname,&lt;/P&gt;&lt;P&gt;      w_status  type slis_formname,&lt;/P&gt;&lt;P&gt;      x_layout  type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      t_event    type slis_t_event,&lt;/P&gt;&lt;P&gt;      t_fieldcat type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      t_sort     type slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;refresh t_fieldcat.&lt;/P&gt;&lt;P&gt;refresh t_event.&lt;/P&gt;&lt;P&gt;refresh t_sort.&lt;/P&gt;&lt;P&gt;clear x_layout.&lt;/P&gt;&lt;P&gt;clear w_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field Catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform set_fieldcat2 using:&lt;/P&gt;&lt;P&gt;1 'SPRAS' 'SPRAS' 'MAKT' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;2 'MATNR' 'MATNR' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;3 'MTART' 'MTART' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;4 'MBRSH' 'MBRSH' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;5 'MATKL' 'MATKL' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;6 'MEINS' 'MEINS' 'MARA' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat ,&lt;/P&gt;&lt;P&gt;7 'MAKTX' 'MAKTX' 'MAKT' space space space space space space space space&lt;/P&gt;&lt;P&gt;space space space space t_fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;x_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Top of page heading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform set_top_page_heading using t_heading t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform set_events using t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUI Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_status = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User commands&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_comm   = 'USER_COMMAND'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM set_order USING '&amp;lt;field&amp;gt;' 'IT_DATA' 'X' space space t_sort.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Displays the ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;      it_fieldcat              = t_fieldcat&lt;/P&gt;&lt;P&gt;      is_layout                = x_layout&lt;/P&gt;&lt;P&gt;      it_sort                  = t_sort&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set = w_status&lt;/P&gt;&lt;P&gt;      i_callback_user_command  = w_comm&lt;/P&gt;&lt;P&gt;      i_save                   = 'X'&lt;/P&gt;&lt;P&gt;      it_events                = t_event&lt;/P&gt;&lt;P&gt;      i_grid_title             = w_title&lt;/P&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      t_outtab                 = t_data&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 &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " build_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_top_page_heading&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;      Creates the report headings.&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 set_top_page_heading using t_heading type slis_t_listheader&lt;/P&gt;&lt;P&gt;                                t_events  type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: x_heading type slis_listheader,&lt;/P&gt;&lt;P&gt;      x_event   type line of slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report title&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear t_heading[].&lt;/P&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'H'.&lt;/P&gt;&lt;P&gt;  x_heading-info = 'Material Info'(001).&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'Program: '.&lt;/P&gt;&lt;P&gt;  x_heading-info = sy-repid.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;User who is running the report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'User: '.&lt;/P&gt;&lt;P&gt;  x_heading-info = sy-uname.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Date of execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'Date: '.&lt;/P&gt;&lt;P&gt;  write sy-datum to x_heading-info.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Time of execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear x_heading.&lt;/P&gt;&lt;P&gt;  x_heading-typ = 'S'.&lt;/P&gt;&lt;P&gt;  x_heading-key = 'Time: '.&lt;/P&gt;&lt;P&gt;  write sy-uzeit to x_heading-info.&lt;/P&gt;&lt;P&gt;  append x_heading to t_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Top of page event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  x_event-name = slis_ev_top_of_page.&lt;/P&gt;&lt;P&gt;  x_event-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  append x_event to t_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  set_events&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;      Sets the events for ALV.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      The TOP_OF_PAGE event is alredy being registered in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the set_top_page_heading subroutine.&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 set_events using t_events type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: x_event   type line of slis_t_event.&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;Example&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; clear x_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; x_event-name = .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; x_event-form = .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; append x_event to t_event.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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  set_order&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;      Adds an entry to the order table.&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 set_order USING p_fieldname p_tabname p_up p_down p_subtot&lt;/P&gt;&lt;P&gt;                     t_sort TYPE slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: x_sort TYPE slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR x_sort.&lt;/P&gt;&lt;P&gt;  x_sort-fieldname = p_fieldname.&lt;/P&gt;&lt;P&gt;  x_sort-tabname   = p_tabname.&lt;/P&gt;&lt;P&gt;  x_sort-up = p_up.&lt;/P&gt;&lt;P&gt;  x_sort-down = p_down.&lt;/P&gt;&lt;P&gt;  x_sort-subtot = p_subtot.&lt;/P&gt;&lt;P&gt;  APPEND x_sort TO t_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "set_order&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  set_fieldcat2&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;      Adds an entry to the field catalog.&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 set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname&lt;/P&gt;&lt;P&gt;p_ref_tabname&lt;/P&gt;&lt;P&gt;      p_outputlen p_noout&lt;/P&gt;&lt;P&gt;      p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt&lt;/P&gt;&lt;P&gt;      p_hotspot p_showasicon p_checkbox p_edit&lt;/P&gt;&lt;P&gt;      p_dosum&lt;/P&gt;&lt;P&gt;      t_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: wa_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;General settings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_fieldcat-fieldname = p_fieldname.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = p_colpos.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-no_out = p_noout.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-hotspot = p_hotspot.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-checkbox = p_checkbox.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-icon = p_showasicon.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum = p_dosum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set reference fieldname, tablenam and rollname.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If p_ref_tabname is not given, the ref_fieldname given is a data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*element.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If p_ref_tabname is given, the ref_fieldname given is a field of a&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*table. In case ref_fieldname is not given, it is copied from the&lt;/P&gt;&lt;P&gt;*fieldname.&lt;/P&gt;&lt;P&gt;  IF p_ref_tabname IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-rollname =   p_ref_fieldname.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ref_tabname = p_ref_tabname.&lt;/P&gt;&lt;P&gt;    IF p_ref_fieldname EQ space.&lt;/P&gt;&lt;P&gt;      wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      wa_fieldcat-ref_fieldname =   p_ref_fieldname.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;Set output length.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT p_outputlen IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-outputlen = p_outputlen.&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;Set text headers.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF NOT p_seltext_m IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-seltext_m = p_seltext_m.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_seltext_l IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-seltext_l = p_seltext_l.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_seltext_s IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-seltext_s = p_seltext_s.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_reptext_ddic IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-reptext_ddic = p_reptext_ddic.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT p_ddictxt IS INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ddictxt = p_ddictxt.&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;Set as editable or not.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_edit IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-input     = 'X'.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-edit     = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                   "set_fieldcat2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;=========================== Subroutines called by ALV ================&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_page&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;      Called on top_of_page ALV event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Prints the heading.&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 top_of_page.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    i_logo             = 'XXXXX'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      it_list_commentary = t_heading.&lt;/P&gt;&lt;P&gt;endform.                    " alv_top_of_page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Called on user_command ALV event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Executes custom commands.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using r_ucomm     like sy-ucomm&lt;/P&gt;&lt;P&gt;                        rs_selfield type slis_selfield.&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;Example Code&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;Executes a command considering the sy-ucomm.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CASE r_ucomm.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHEN '&amp;amp;IC1'.&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;     Set your "double click action" response here.&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;     Example code: Create and display a status message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DATA: w_msg TYPE string,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           w_row(4) TYPE n.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     w_row = rs_selfield-tabindex.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONCATENATE 'You have clicked row' w_row&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 'field' rs_selfield-fieldname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 'with value' rs_selfield-value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 INTO w_msg SEPARATED BY space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MESSAGE w_msg TYPE 'S'.&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; ENDCASE.&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; End of example code.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points if hlpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Jun 2008 09:28:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-report/m-p/4040898#M965870</guid>
      <dc:creator>GauthamV</dc:creator>
      <dc:date>2008-06-19T09:28:26Z</dc:date>
    </item>
  </channel>
</rss>

