<?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 header in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426792#M542162</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 program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; THIS PROGRAM IS TO DISPLAY AN ALV REPORT ACCORDING TO THE&lt;/P&gt;&lt;P&gt;*&amp;amp;      SALES ORDER NUMBER PROVIDED                                    *&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  z6smahajan_s_salesorder  NO STANDARD PAGE HEADING MESSAGE-ID z6suruchi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;*&amp;amp;               TYPE-POOL&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;               TABLES                                                *&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;TABLES: vbak,                        "SALES ORDER HEADER&lt;/P&gt;&lt;P&gt;        vbap,                        "DETAILS&lt;/P&gt;&lt;P&gt;        vbpa,                        "Sales Document: Partner&lt;/P&gt;&lt;P&gt;        tpart.                       "Business Partner Functions: Texts&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;      DECLARATION OF INTERNAL TABLES                                 *&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;&lt;/P&gt;&lt;P&gt;*This internal table would be used for the display of all the sales data.&lt;/P&gt;&lt;P&gt;DATA:   BEGIN OF it_sales OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbak-vbeln,      "Sales Document&lt;/P&gt;&lt;P&gt;        posnr LIKE vbap-posnr,      "Item number of the SD document&lt;/P&gt;&lt;P&gt;        kunnr LIKE vbak-kunnr,      "SOLD TO PARTY&lt;/P&gt;&lt;P&gt;        erdat LIKE vbak-erdat,      "Date on which the record was created&lt;/P&gt;&lt;P&gt;        matnr LIKE vbap-matnr,      "MATERIAL number&lt;/P&gt;&lt;P&gt;        arktx LIKE vbap-arktx,      "Short Text for Sales Order Item&lt;/P&gt;&lt;P&gt;        vtext LIKE tpart-vtext,     "DESCRIPTION&lt;/P&gt;&lt;P&gt;        sp LIKE vbpa-kunnr,         "Sold to party&lt;/P&gt;&lt;P&gt;        bp LIKE vbpa-kunnr,         "Bill to party&lt;/P&gt;&lt;P&gt;        py LIKE vbpa-kunnr,         "payee&lt;/P&gt;&lt;P&gt;        sh LIKE vbpa-kunnr,         "Ship to party&lt;/P&gt;&lt;P&gt;        END OF it_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*This internal table will contain the data related to partner functions.&lt;/P&gt;&lt;P&gt;DATA:   BEGIN OF it_partner OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbak-vbeln,  "Sales Document&lt;/P&gt;&lt;P&gt;        parvw LIKE vbpa-parvw,  "Partner function&lt;/P&gt;&lt;P&gt;        kunnr LIKE vbpa-kunnr,&lt;/P&gt;&lt;P&gt;        END OF it_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This table would contain all distinct partner functions.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF i_vbpa OCCURS 0,&lt;/P&gt;&lt;P&gt;       parvw LIKE vbpa-parvw,&lt;/P&gt;&lt;P&gt;       END   OF i_vbpa.&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;      DECLARATION OF VARIABLES                                       *&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;DATA : v_count TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: &amp;lt;b&amp;gt;i_header TYPE slis_t_listheader,&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;**----THIS WILL BE USED TO DISPLAY THE HEADER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**----Table for catalog of the fields to be displayed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_layout TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;**----LAYOUT To pass the overall structure of the ALV report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      v_repid   LIKE sy-repid,&lt;/P&gt;&lt;P&gt;**----To pass name of the report in function module for ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_event  TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;**----TO DEFINE THE EVENT CATALOG-Internal table to capture various events in ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_event  TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;**----THIS IS A STRUCTURE TO HANDLE DIFFERENT EVENTS&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;               SELECTION SCREEN                                     *&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;SELECTION-SCREEN BEGIN OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;**----For sales order number&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : s_vbeln FOR vbak-vbeln OBLIGATORY.&lt;/P&gt;&lt;P&gt;**----For date of creation&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : s_erdat FOR vbak-erdat.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;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;               AT SELECTION-SCREEN                                   *&lt;/P&gt;&lt;P&gt;*&amp;amp;   VALIDATION FOR THE INPUT IN THE SELECTION SCREEN&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;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**---- Validate Sales Order number entered&lt;/P&gt;&lt;P&gt;  PERFORM validate_sales_order.&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;               START-OF-SELECTION                                    *&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;**---- Select Data based on the selection criteria.&lt;/P&gt;&lt;P&gt;  PERFORM select_data.&lt;/P&gt;&lt;P&gt;**----  Build Event Catalog&lt;/P&gt;&lt;P&gt;  PERFORM zf_eventcat USING i_event.&lt;/P&gt;&lt;P&gt;**---- Build Fieldcat&lt;/P&gt;&lt;P&gt;  PERFORM zf_fieldcat USING fieldcatalog[].  "FOR DEFINING FIELDCATALOG FOR FIRST SCREEN&lt;/P&gt;&lt;P&gt;**---- Create Layout&lt;/P&gt;&lt;P&gt;  PERFORM zf_layout.&lt;/P&gt;&lt;P&gt;**---- Display ALV Grid Report&lt;/P&gt;&lt;P&gt;  PERFORM display_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                          TOP_OF_PAGE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&amp;lt;b&amp;gt;FORM top_of_page.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH i_header.&lt;/P&gt;&lt;P&gt;**----To display the header in the ALV report.&lt;/P&gt;&lt;P&gt;  &amp;lt;b&amp;gt;PERFORM zf_header USING i_header.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----To print the headings and other comments for the list.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = i_header&lt;/P&gt;&lt;P&gt;      i_logo             = 'ENJOYSAP_LOGO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "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  zf_header&lt;/P&gt;&lt;P&gt;*&amp;amp;  To display the header in the ALV report.&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;lt;b&amp;gt;FORM zf_header USING p_i_header TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: t_header TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;  DATA: v_text(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE sy-datum TO v_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_header.&lt;/P&gt;&lt;P&gt;  t_header-typ = 'S'.&lt;/P&gt;&lt;P&gt;  t_header-key = 'Date'.&lt;/P&gt;&lt;P&gt;  t_header-info = v_text.&lt;/P&gt;&lt;P&gt;  APPEND t_header TO p_i_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_header&amp;lt;/b&amp;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  SELECT_DATA&lt;/P&gt;&lt;P&gt;**---- Select Data based on the selection criteria.&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;FORM select_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR it_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbak~vbeln&lt;/P&gt;&lt;P&gt;         vbak~kunnr&lt;/P&gt;&lt;P&gt;         vbak~erdat&lt;/P&gt;&lt;P&gt;         vbap~posnr&lt;/P&gt;&lt;P&gt;         vbap~matnr&lt;/P&gt;&lt;P&gt;         vbap~arktx&lt;/P&gt;&lt;P&gt;         INTO CORRESPONDING FIELDS OF TABLE it_sales&lt;/P&gt;&lt;P&gt;    FROM vbak INNER JOIN vbap&lt;/P&gt;&lt;P&gt;      ON vbak&lt;SUB&gt;vbeln = vbap&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt;   WHERE vbak&lt;SUB&gt;vbeln IN s_vbeln AND vbak&lt;/SUB&gt;erdat IN s_erdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----If no data exists, stop execution&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e057.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbeln&lt;/P&gt;&lt;P&gt;         parvw&lt;/P&gt;&lt;P&gt;         kunnr&lt;/P&gt;&lt;P&gt;   FROM vbpa&lt;/P&gt;&lt;P&gt;     INTO CORRESPONDING FIELDS OF TABLE it_partner&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN it_sales&lt;/P&gt;&lt;P&gt;    WHERE vbeln = it_sales-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----If no data exists, stop execution&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE i002(sy) WITH 'NO DATA TO PROCESS'.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_partner.&lt;/P&gt;&lt;P&gt;    MOVE it_partner-parvw TO i_vbpa-parvw.&lt;/P&gt;&lt;P&gt;    COLLECT i_vbpa.&lt;/P&gt;&lt;P&gt;    CLEAR i_vbpa.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_vbpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----To move the partner function data to the table it_sales which would be finally passed to ALV&lt;/P&gt;&lt;P&gt;  LOOP AT it_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_vbpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_partner WITH KEY vbeln = it_sales-vbeln&lt;/P&gt;&lt;P&gt;                                    parvw = i_vbpa-parvw.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if partner function is Sold to party&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'AG'.&lt;/P&gt;&lt;P&gt;          it_sales-sp = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If partner function is Bill to party&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'RE'.&lt;/P&gt;&lt;P&gt;          it_sales-bp = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If partner function is ship to party&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'WE'.&lt;/P&gt;&lt;P&gt;          it_sales-sh = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if partner function is Payee&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'RG'.&lt;/P&gt;&lt;P&gt;          it_sales-py = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To modify the internal table after copying the partner function values&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MODIFY it_sales.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To clear the work areas of the three internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR : it_sales,&lt;/P&gt;&lt;P&gt;            it_partner,&lt;/P&gt;&lt;P&gt;            i_vbpa.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SELECT_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  zf_eventcat&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    To Build Event Catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&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;FORM zf_eventcat  USING    p_i_event TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----Returns table of possible events for a list type&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type     = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events       = p_i_event&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      list_type_wrong = 1&lt;/P&gt;&lt;P&gt;      OTHERS          = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MOVE 'TOP_OF_PAGE' TO t_event-form.&lt;/P&gt;&lt;P&gt;    MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_eventcat&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  zf_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;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM zf_fieldcat  USING    p_fieldcatalog TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'VBELN'.                      " FIELD FOR WHICH CATALOG ID FILLED.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'SALES NO'.                 " MEDIUM TEXT FOR HEADER.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 1.                            " POSITION OF THE COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.                           " SET THE OUTPUT LENGTH.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.                          " COLOR OF THIS COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.                          " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.&lt;/P&gt;&lt;P&gt;  fieldcatalog-hotspot     = 'X'.                          " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ERDAT'.                      " FIELD FOR WHICH CATALOG ID FILLED.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'CRTD ON'.                    " MEDIUM TEXT FOR HEADER.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 2.                            " POSITION OF THE COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.                           " SET THE OUTPUT LENGTH.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.                          " COLOR OF THIS COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.                          " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.&lt;/P&gt;&lt;P&gt;  fieldcatalog-hotspot     = 'X'.                          " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MATNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'MAT NO'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 3.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'POSNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'ITEM NO'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 4.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ARKTX'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'DESC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 5.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'SP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 6.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'BP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'BP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 7.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'PY'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'PY'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 8.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SH'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'SH'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 9.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_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  zf_layout&lt;/P&gt;&lt;P&gt;*&amp;amp;       Create Layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM zf_layout .&lt;/P&gt;&lt;P&gt;  i_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_layout&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  DISPLAY_ALV&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Display ALV Grid 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 display_alv .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  v_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To display the data in internal table it_sales in grid format.&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 = v_repid&lt;/P&gt;&lt;P&gt;      is_layout          = i_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat        = fieldcatalog[]&lt;/P&gt;&lt;P&gt;      it_events          = i_event[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab           = it_sales&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.                    " DISPLAY_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;P&gt;*&amp;amp;      Form  validate_sales_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;P&gt;**---- Validate Sales Order number entered&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_sales_order .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**---- Variable to hold the Sales Order Value.&lt;/P&gt;&lt;P&gt;  DATA : w_vbeln LIKE vbak-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE vbeln&lt;/P&gt;&lt;P&gt;         FROM   vbak&lt;/P&gt;&lt;P&gt;         INTO   w_vbeln&lt;/P&gt;&lt;P&gt;         WHERE  vbeln IN s_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**---- If not found, stop execution&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    SET CURSOR FIELD 'S_VBELN-LOW'.&lt;/P&gt;&lt;P&gt;    MESSAGE e002(sy) WITH 'No Sales Order Found'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_sales_order&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Suruchi Mahajan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Jun 2007 05:50:04 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-20T05:50:04Z</dc:date>
    <item>
      <title>ALV header</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426789#M542159</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HOw to add header in ALV reports?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2007 05:40:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426789#M542159</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-20T05:40:48Z</dc:date>
    </item>
    <item>
      <title>Re: ALV header</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426790#M542160</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Add the title in the Layout of the ALV. Layout shuold be of type lvc_s_layo. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;layout-grid_title = 'Title'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Nithya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2007 05:46:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426790#M542160</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-20T05:46:06Z</dc:date>
    </item>
    <item>
      <title>Re: ALV header</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426791#M542161</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;u need to pass the values to the alv grid / list function module for header.&lt;/P&gt;&lt;P&gt; SLIS_T_LISTHEADER - is the structure used for header .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pass the internal table in REUSE_ALV_COMMENTARY_WRITE FM&lt;/P&gt;&lt;P&gt;and then pass the event table to alv grid / list FM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points if helpful&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2007 05:48:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426791#M542161</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-20T05:48:10Z</dc:date>
    </item>
    <item>
      <title>Re: ALV header</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426792#M542162</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 program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; THIS PROGRAM IS TO DISPLAY AN ALV REPORT ACCORDING TO THE&lt;/P&gt;&lt;P&gt;*&amp;amp;      SALES ORDER NUMBER PROVIDED                                    *&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  z6smahajan_s_salesorder  NO STANDARD PAGE HEADING MESSAGE-ID z6suruchi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;*&amp;amp;               TYPE-POOL&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;               TABLES                                                *&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;TABLES: vbak,                        "SALES ORDER HEADER&lt;/P&gt;&lt;P&gt;        vbap,                        "DETAILS&lt;/P&gt;&lt;P&gt;        vbpa,                        "Sales Document: Partner&lt;/P&gt;&lt;P&gt;        tpart.                       "Business Partner Functions: Texts&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;      DECLARATION OF INTERNAL TABLES                                 *&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;&lt;/P&gt;&lt;P&gt;*This internal table would be used for the display of all the sales data.&lt;/P&gt;&lt;P&gt;DATA:   BEGIN OF it_sales OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbak-vbeln,      "Sales Document&lt;/P&gt;&lt;P&gt;        posnr LIKE vbap-posnr,      "Item number of the SD document&lt;/P&gt;&lt;P&gt;        kunnr LIKE vbak-kunnr,      "SOLD TO PARTY&lt;/P&gt;&lt;P&gt;        erdat LIKE vbak-erdat,      "Date on which the record was created&lt;/P&gt;&lt;P&gt;        matnr LIKE vbap-matnr,      "MATERIAL number&lt;/P&gt;&lt;P&gt;        arktx LIKE vbap-arktx,      "Short Text for Sales Order Item&lt;/P&gt;&lt;P&gt;        vtext LIKE tpart-vtext,     "DESCRIPTION&lt;/P&gt;&lt;P&gt;        sp LIKE vbpa-kunnr,         "Sold to party&lt;/P&gt;&lt;P&gt;        bp LIKE vbpa-kunnr,         "Bill to party&lt;/P&gt;&lt;P&gt;        py LIKE vbpa-kunnr,         "payee&lt;/P&gt;&lt;P&gt;        sh LIKE vbpa-kunnr,         "Ship to party&lt;/P&gt;&lt;P&gt;        END OF it_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*This internal table will contain the data related to partner functions.&lt;/P&gt;&lt;P&gt;DATA:   BEGIN OF it_partner OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbak-vbeln,  "Sales Document&lt;/P&gt;&lt;P&gt;        parvw LIKE vbpa-parvw,  "Partner function&lt;/P&gt;&lt;P&gt;        kunnr LIKE vbpa-kunnr,&lt;/P&gt;&lt;P&gt;        END OF it_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This table would contain all distinct partner functions.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF i_vbpa OCCURS 0,&lt;/P&gt;&lt;P&gt;       parvw LIKE vbpa-parvw,&lt;/P&gt;&lt;P&gt;       END   OF i_vbpa.&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;      DECLARATION OF VARIABLES                                       *&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;DATA : v_count TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: &amp;lt;b&amp;gt;i_header TYPE slis_t_listheader,&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;**----THIS WILL BE USED TO DISPLAY THE HEADER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**----Table for catalog of the fields to be displayed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_layout TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;**----LAYOUT To pass the overall structure of the ALV report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      v_repid   LIKE sy-repid,&lt;/P&gt;&lt;P&gt;**----To pass name of the report in function module for ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_event  TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;**----TO DEFINE THE EVENT CATALOG-Internal table to capture various events in ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_event  TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;**----THIS IS A STRUCTURE TO HANDLE DIFFERENT EVENTS&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;               SELECTION SCREEN                                     *&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;SELECTION-SCREEN BEGIN OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;**----For sales order number&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : s_vbeln FOR vbak-vbeln OBLIGATORY.&lt;/P&gt;&lt;P&gt;**----For date of creation&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : s_erdat FOR vbak-erdat.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;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;               AT SELECTION-SCREEN                                   *&lt;/P&gt;&lt;P&gt;*&amp;amp;   VALIDATION FOR THE INPUT IN THE SELECTION SCREEN&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;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**---- Validate Sales Order number entered&lt;/P&gt;&lt;P&gt;  PERFORM validate_sales_order.&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;               START-OF-SELECTION                                    *&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;**---- Select Data based on the selection criteria.&lt;/P&gt;&lt;P&gt;  PERFORM select_data.&lt;/P&gt;&lt;P&gt;**----  Build Event Catalog&lt;/P&gt;&lt;P&gt;  PERFORM zf_eventcat USING i_event.&lt;/P&gt;&lt;P&gt;**---- Build Fieldcat&lt;/P&gt;&lt;P&gt;  PERFORM zf_fieldcat USING fieldcatalog[].  "FOR DEFINING FIELDCATALOG FOR FIRST SCREEN&lt;/P&gt;&lt;P&gt;**---- Create Layout&lt;/P&gt;&lt;P&gt;  PERFORM zf_layout.&lt;/P&gt;&lt;P&gt;**---- Display ALV Grid Report&lt;/P&gt;&lt;P&gt;  PERFORM display_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                          TOP_OF_PAGE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&amp;lt;b&amp;gt;FORM top_of_page.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH i_header.&lt;/P&gt;&lt;P&gt;**----To display the header in the ALV report.&lt;/P&gt;&lt;P&gt;  &amp;lt;b&amp;gt;PERFORM zf_header USING i_header.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----To print the headings and other comments for the list.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = i_header&lt;/P&gt;&lt;P&gt;      i_logo             = 'ENJOYSAP_LOGO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "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  zf_header&lt;/P&gt;&lt;P&gt;*&amp;amp;  To display the header in the ALV report.&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;lt;b&amp;gt;FORM zf_header USING p_i_header TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: t_header TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;  DATA: v_text(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE sy-datum TO v_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_header.&lt;/P&gt;&lt;P&gt;  t_header-typ = 'S'.&lt;/P&gt;&lt;P&gt;  t_header-key = 'Date'.&lt;/P&gt;&lt;P&gt;  t_header-info = v_text.&lt;/P&gt;&lt;P&gt;  APPEND t_header TO p_i_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_header&amp;lt;/b&amp;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  SELECT_DATA&lt;/P&gt;&lt;P&gt;**---- Select Data based on the selection criteria.&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;FORM select_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR it_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbak~vbeln&lt;/P&gt;&lt;P&gt;         vbak~kunnr&lt;/P&gt;&lt;P&gt;         vbak~erdat&lt;/P&gt;&lt;P&gt;         vbap~posnr&lt;/P&gt;&lt;P&gt;         vbap~matnr&lt;/P&gt;&lt;P&gt;         vbap~arktx&lt;/P&gt;&lt;P&gt;         INTO CORRESPONDING FIELDS OF TABLE it_sales&lt;/P&gt;&lt;P&gt;    FROM vbak INNER JOIN vbap&lt;/P&gt;&lt;P&gt;      ON vbak&lt;SUB&gt;vbeln = vbap&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt;   WHERE vbak&lt;SUB&gt;vbeln IN s_vbeln AND vbak&lt;/SUB&gt;erdat IN s_erdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----If no data exists, stop execution&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e057.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbeln&lt;/P&gt;&lt;P&gt;         parvw&lt;/P&gt;&lt;P&gt;         kunnr&lt;/P&gt;&lt;P&gt;   FROM vbpa&lt;/P&gt;&lt;P&gt;     INTO CORRESPONDING FIELDS OF TABLE it_partner&lt;/P&gt;&lt;P&gt;        FOR ALL ENTRIES IN it_sales&lt;/P&gt;&lt;P&gt;    WHERE vbeln = it_sales-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----If no data exists, stop execution&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE i002(sy) WITH 'NO DATA TO PROCESS'.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_partner.&lt;/P&gt;&lt;P&gt;    MOVE it_partner-parvw TO i_vbpa-parvw.&lt;/P&gt;&lt;P&gt;    COLLECT i_vbpa.&lt;/P&gt;&lt;P&gt;    CLEAR i_vbpa.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_vbpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----To move the partner function data to the table it_sales which would be finally passed to ALV&lt;/P&gt;&lt;P&gt;  LOOP AT it_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_vbpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_partner WITH KEY vbeln = it_sales-vbeln&lt;/P&gt;&lt;P&gt;                                    parvw = i_vbpa-parvw.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if partner function is Sold to party&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'AG'.&lt;/P&gt;&lt;P&gt;          it_sales-sp = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If partner function is Bill to party&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'RE'.&lt;/P&gt;&lt;P&gt;          it_sales-bp = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If partner function is ship to party&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'WE'.&lt;/P&gt;&lt;P&gt;          it_sales-sh = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      if partner function is Payee&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF i_vbpa-parvw = 'RG'.&lt;/P&gt;&lt;P&gt;          it_sales-py = it_partner-kunnr.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To modify the internal table after copying the partner function values&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MODIFY it_sales.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To clear the work areas of the three internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR : it_sales,&lt;/P&gt;&lt;P&gt;            it_partner,&lt;/P&gt;&lt;P&gt;            i_vbpa.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SELECT_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  zf_eventcat&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    To Build Event Catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&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;FORM zf_eventcat  USING    p_i_event TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**----Returns table of possible events for a list type&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type     = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events       = p_i_event&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      list_type_wrong = 1&lt;/P&gt;&lt;P&gt;      OTHERS          = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE p_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MOVE 'TOP_OF_PAGE' TO t_event-form.&lt;/P&gt;&lt;P&gt;    MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_eventcat&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  zf_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;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM zf_fieldcat  USING    p_fieldcatalog TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'VBELN'.                      " FIELD FOR WHICH CATALOG ID FILLED.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'SALES NO'.                 " MEDIUM TEXT FOR HEADER.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 1.                            " POSITION OF THE COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.                           " SET THE OUTPUT LENGTH.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.                          " COLOR OF THIS COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.                          " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.&lt;/P&gt;&lt;P&gt;  fieldcatalog-hotspot     = 'X'.                          " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ERDAT'.                      " FIELD FOR WHICH CATALOG ID FILLED.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'CRTD ON'.                    " MEDIUM TEXT FOR HEADER.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 2.                            " POSITION OF THE COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.                           " SET THE OUTPUT LENGTH.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.                          " COLOR OF THIS COLUMN.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.                          " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.&lt;/P&gt;&lt;P&gt;  fieldcatalog-hotspot     = 'X'.                          " MARK THIS FIELD AS HOTSOPT TO CAUSE THE F2 EVENTS TO TRIGGER.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MATNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'MAT NO'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 3.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'POSNR'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'ITEM NO'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 4.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 20.&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ARKTX'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'DESC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 5.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'SP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 6.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'BP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'BP'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 7.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'PY'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'PY'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 8.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SH'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-seltext_m   = 'SH'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = 9.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 25.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_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  zf_layout&lt;/P&gt;&lt;P&gt;*&amp;amp;       Create Layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM zf_layout .&lt;/P&gt;&lt;P&gt;  i_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " zf_layout&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  DISPLAY_ALV&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Display ALV Grid 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 display_alv .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  v_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To display the data in internal table it_sales in grid format.&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 = v_repid&lt;/P&gt;&lt;P&gt;      is_layout          = i_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat        = fieldcatalog[]&lt;/P&gt;&lt;P&gt;      it_events          = i_event[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab           = it_sales&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.                    " DISPLAY_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;P&gt;*&amp;amp;      Form  validate_sales_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;P&gt;**---- Validate Sales Order number entered&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM validate_sales_order .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**---- Variable to hold the Sales Order Value.&lt;/P&gt;&lt;P&gt;  DATA : w_vbeln LIKE vbak-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE vbeln&lt;/P&gt;&lt;P&gt;         FROM   vbak&lt;/P&gt;&lt;P&gt;         INTO   w_vbeln&lt;/P&gt;&lt;P&gt;         WHERE  vbeln IN s_vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**---- If not found, stop execution&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    SET CURSOR FIELD 'S_VBELN-LOW'.&lt;/P&gt;&lt;P&gt;    MESSAGE e002(sy) WITH 'No Sales Order Found'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_sales_order&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Suruchi Mahajan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2007 05:50:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426792#M542162</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-20T05:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: ALV header</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426793#M542163</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 the code.&lt;/P&gt;&lt;P&gt;Reward if usefull.&lt;/P&gt;&lt;P&gt;*Program to Test ALV Display With Header &amp;amp; Footer.&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  ZSSK02                                                      *&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;REPORT  ZSSK02                                  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Table declaration.&lt;/P&gt;&lt;P&gt;TABLES:ZEMP_MST,ZDEPT_MST,ZDESG_MST,ZSL_TXN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Varriable declaration.&lt;/P&gt;&lt;P&gt;TYPE-POOLS SLIS.&lt;/P&gt;&lt;P&gt;DATA : POS TYPE I.&lt;/P&gt;&lt;P&gt;DATA  REPID  LIKE SY-REPID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;       F2 TYPE SLIS_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;       L_LAYOUT TYPE SLIS_LAYOUT_ALV.&lt;/P&gt;&lt;P&gt;DATA  L_POS TYPE I VALUE 1.               "position of the column&lt;/P&gt;&lt;P&gt;DATA  GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;*DATA  GT_SORT TYPE SLIS_T_SORTINFO_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  GT_EVENTS    TYPE SLIS_T_EVENT,&lt;/P&gt;&lt;P&gt;       FS_EVENTCAT LIKE LINE OF GT_EVENTs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table declaration.&lt;/P&gt;&lt;P&gt;*DATA  BEGIN OF IT_SORT OCCURS 5.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INCLUDE TYPE SLIS_SORTINFO_ALV.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*DATA  END OF IT_SORT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF ITAB OCCURS 0,&lt;/P&gt;&lt;P&gt;      ZEMPNO    LIKE ZEMP_MST-ZEMPNO,&lt;/P&gt;&lt;P&gt;      ZEMPNAME  LIKE ZEMP_MST-ZEMPNAME,&lt;/P&gt;&lt;P&gt;      ZDEPTCD   LIKE ZEMP_MST-ZDEPTCD,&lt;/P&gt;&lt;P&gt;      ZDEPTNAME LIKE ZDEPT_MST-ZDEPTNAME,&lt;/P&gt;&lt;P&gt;      ZDESGCD   LIKE ZEMP_MST-ZDESGCD,&lt;/P&gt;&lt;P&gt;      ZDESGNAME LIKE ZDESG_MST-ZDESGNAME,&lt;/P&gt;&lt;P&gt;     END OF ITAB.&lt;/P&gt;&lt;P&gt;REFRESH ITAB.CLEAR ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT A&lt;SUB&gt;ZEMPNO A&lt;/SUB&gt;ZEMPNAME A&lt;SUB&gt;ZDEPTCD B&lt;/SUB&gt;ZDEPTNAME A&lt;SUB&gt;ZDESGCD C&lt;/SUB&gt;ZDESGNAME&lt;/P&gt;&lt;P&gt;       FROM ZEMP_MST AS A&lt;/P&gt;&lt;P&gt;         INNER JOIN ZDEPT_MST AS B&lt;/P&gt;&lt;P&gt;           ON A&lt;SUB&gt;ZDEPTCD EQ B&lt;/SUB&gt;ZDEPTCD&lt;/P&gt;&lt;P&gt;         INNER JOIN ZDESG_MST AS C&lt;/P&gt;&lt;P&gt;           ON A&lt;SUB&gt;ZDESGCD EQ C&lt;/SUB&gt;ZDESGCD&lt;/P&gt;&lt;P&gt;       INTO CORRESPONDING FIELDS OF TABLE ITAB.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;   MESSAGE E899(M3) WITH 'No records'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform f_build_eventcat.&lt;/P&gt;&lt;P&gt;PERFORM LAYOUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&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  LAYOUT&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;FORM LAYOUT .&lt;/P&gt;&lt;P&gt;  PERFORM FCAT USING 'ZEMPNO'    'ITAB' '' 'Emp.No.'   'ZEMPNO'    'ZEMP_MST'  ''.&lt;/P&gt;&lt;P&gt;  PERFORM FCAT USING 'ZEMPNAME'  'ITAB' '' 'Emp. Name' 'ZEMPNAME'  'ZEMP_MST'  ''.&lt;/P&gt;&lt;P&gt;  PERFORM FCAT USING 'ZDEPTCD'   'ITAB' '' 'Dept.Code' 'ZDEPTCD'   'ZEMP_MST'  ''.&lt;/P&gt;&lt;P&gt;  PERFORM FCAT USING 'ZDEPTNAME' 'ITAB' '' 'Dept.Name' 'ZDEPTNAME' 'ZDEPT_MST' ''.&lt;/P&gt;&lt;P&gt;  PERFORM FCAT USING 'ZDESGCD'   'ITAB' '' 'Desg.Code' 'ZDESGCD'   'ZEMP_MST'  ''.&lt;/P&gt;&lt;P&gt;  PERFORM FCAT USING 'ZDESGNAME' 'ITAB' '' 'Desg.Name' 'ZDESGNAME' 'ZDESG_MST' ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM LSORT USING  'ZEMPNO' 'IDATA' ''.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM LSORT USING  'ZEMPNAME' 'IDATA' ''.&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; MOVE IT_SORT[] TO GT_SORT[].&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REPID = SY-REPID.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;         I_CALLBACK_PROGRAM       = REPID&lt;/P&gt;&lt;P&gt;         IT_FIELDCAT              = F1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        IT_SORT                  = GT_SORT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         I_SAVE                   = 'X'&lt;/P&gt;&lt;P&gt;         IT_EVENTS                = GT_EVENTS[]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     TABLES&lt;/P&gt;&lt;P&gt;          T_OUTTAB                 = ITAB.&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;ENDFORM.                    " LAYOUT&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  FCAT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.&lt;/P&gt;&lt;P&gt;  ADD 1 TO POS.&lt;/P&gt;&lt;P&gt;  F2-COL_POS       = POS.&lt;/P&gt;&lt;P&gt;  F2-FIELDNAME     = P_FIELD.&lt;/P&gt;&lt;P&gt;  F2-TABNAME       = P_TABLE.&lt;/P&gt;&lt;P&gt;  F2-SELTEXT_L     = P_TEXT.&lt;/P&gt;&lt;P&gt;  F2-REF_FIELDNAME = P_RFIELD.&lt;/P&gt;&lt;P&gt;  F2-REF_TABNAME   = P_RTABLE.&lt;/P&gt;&lt;P&gt;  F2-DO_SUM        = P_SUM.&lt;/P&gt;&lt;P&gt;  F2-NO_OUT        = P_DISP.&lt;/P&gt;&lt;P&gt;  APPEND F2 TO F1.&lt;/P&gt;&lt;P&gt;  CLEAR F2.&lt;/P&gt;&lt;P&gt;ENDFORM.                " FCAT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  LSORT&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;*FORM LSORT USING P_FIELD P_TABLE P_UP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ADD 1 TO L_POS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IT_SORT-SPOS      = L_POS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IT_SORT-FIELDNAME = P_FIELD.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IT_SORT-TABNAME   = P_TABLE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IT_SORT-UP        = P_UP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND IT_SORT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM.                    " LSORT&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt;FORM F_BUILD_EVENTCAT .&lt;/P&gt;&lt;P&gt; CLEAR: GT_EVENTS.  REFRESH: GT_EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: FS_EVENTCAT.&lt;/P&gt;&lt;P&gt;  FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.&lt;/P&gt;&lt;P&gt;  APPEND FS_EVENTCAT TO GT_EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: FS_EVENTCAT.&lt;/P&gt;&lt;P&gt;  FS_EVENTCAT-NAME = 'END_OF_LIST'.&lt;/P&gt;&lt;P&gt;  FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.&lt;/P&gt;&lt;P&gt;  APPEND FS_EVENTCAT TO GT_EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " F_BUILD_EVENTCAT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_REPORT_HEADER_ALV.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'Z_YHEAD_PRINT'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   TITLE1        = 'XYZ Limited'&lt;/P&gt;&lt;P&gt;   TITLE2        = 'Employee Master'&lt;/P&gt;&lt;P&gt;   TITLE3        = 'Created on '&lt;/P&gt;&lt;P&gt;   COLOR         = 'X'&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  F_WRITE_SUMMARY&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;      Write summary before exit&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 F_WRITE_SUMMARY .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;write:/ 'Welcome to XYZ Limited'.&lt;/P&gt;&lt;P&gt;write:/ 'This is a test program to display Report in ALV Format'.&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;Regards&lt;/P&gt;&lt;P&gt;shibino&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2007 05:58:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426793#M542163</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-20T05:58:39Z</dc:date>
    </item>
    <item>
      <title>Re: ALV header</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426794#M542164</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;Just add :&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;    ...&lt;/P&gt;&lt;P&gt;    i_callback_top_of_page          = 'TOP_OF_PAGE'&lt;/P&gt;&lt;P&gt;    ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and define your header :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM top_of_page.&lt;/P&gt;&lt;P&gt;*ALV Header declarations&lt;/P&gt;&lt;P&gt;  DATA: t_header TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;        wa_header TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_header.&lt;/P&gt;&lt;P&gt;  wa_header-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  wa_header-info = 'Header ALV'.&lt;/P&gt;&lt;P&gt;  APPEND wa_header TO t_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            it_list_commentary = t_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "top-of-page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2007 08:46:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-header/m-p/2426794#M542164</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-20T08:46:13Z</dc:date>
    </item>
  </channel>
</rss>

