<?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 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837233#M664381</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;    For subtotal first you have to get Total of column then only you will get subtotal.&lt;/P&gt;&lt;P&gt;For that you have to pass FIELDCAT-DO_SUM = 'X' Through Fieldcat To the column where you want to calculate Total And Subtotal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then For subtotal do the code like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First in SLIS define.&lt;/P&gt;&lt;P&gt;data : w_sort type slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;and.&lt;/P&gt;&lt;P&gt;Data : t_sort type slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then Fill The Sort Table like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;W_sort-spos = '1'.&lt;/P&gt;&lt;P&gt;w_sort-fieldname = 'MATNR'.   "Consider&lt;/P&gt;&lt;P&gt;W_sort-tabname = 'IT_OUT'.&lt;/P&gt;&lt;P&gt;w_sort-group = 'X'.&lt;/P&gt;&lt;P&gt;w_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;Append w_sort  To T_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And finally Assign T_SORT in REUSE_ALV_GRID_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward If Ans is Valuable.&lt;/P&gt;&lt;P&gt;Pradip Pawar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 04 Oct 2007 15:00:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-10-04T15:00:01Z</dc:date>
    <item>
      <title>ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837229#M664377</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;Pls tell me how to put subtotals in a alv grid.&lt;/P&gt;&lt;P&gt;Send me a sample coding for that.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 11:53:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837229#M664377</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T11:53:10Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837230#M664378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This ALV program have all the basic report requirements such as page heading, page no, sub-total and a grand total. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is a basic ALV with the followings:- &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Page Heading &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Page No &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Sub-Total &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Grand Total &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZALV. &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;DATA: G_REPID LIKE SY-REPID, &lt;/P&gt;&lt;P&gt;GS_PRINT            TYPE SLIS_PRINT_ALV, &lt;/P&gt;&lt;P&gt;GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, &lt;/P&gt;&lt;P&gt;GT_EVENTS           TYPE SLIS_T_EVENT, &lt;/P&gt;&lt;P&gt;GT_SORT             TYPE SLIS_T_SORTINFO_ALV, &lt;/P&gt;&lt;P&gt;GS_LAYOUT           TYPE SLIS_LAYOUT_ALV, &lt;/P&gt;&lt;P&gt;GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV, &lt;/P&gt;&lt;P&gt;FIELDCAT_LN LIKE LINE OF GT_FIELDCAT, &lt;/P&gt;&lt;P&gt;COL_POS TYPE I. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB, &lt;/P&gt;&lt;P&gt;  FIELD1(5) TYPE C, &lt;/P&gt;&lt;P&gt;  FIELD2(5) TYPE C, &lt;/P&gt;&lt;P&gt;  FIELD3(5) TYPE P DECIMALS 2, &lt;/P&gt;&lt;P&gt;END OF ITAB. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB1 OCCURS 0. &lt;/P&gt;&lt;P&gt;  INCLUDE STRUCTURE ITAB. &lt;/P&gt;&lt;P&gt;DATA: END OF ITAB1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0. &lt;/P&gt;&lt;P&gt;  INCLUDE STRUCTURE ITAB. &lt;/P&gt;&lt;P&gt;DATA: END OF ITAB_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Print Parameters &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PARAMETERS: &lt;/P&gt;&lt;P&gt;            P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE &lt;/P&gt;&lt;P&gt;            P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO &lt;/P&gt;&lt;P&gt;            P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE &lt;/P&gt;&lt;P&gt;            P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE &lt;/P&gt;&lt;P&gt;            P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO &lt;/P&gt;&lt;P&gt;            P_RESERV TYPE I.                  "NO OF FOOTER LINE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION. &lt;/P&gt;&lt;P&gt;G_REPID = SY-REPID. &lt;/P&gt;&lt;P&gt;PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST DATA &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MOVE 'TEST1' TO ITAB1-FIELD1. &lt;/P&gt;&lt;P&gt;MOVE 'TEST1' TO ITAB1-FIELD2. &lt;/P&gt;&lt;P&gt;MOVE '10.00' TO ITAB1-FIELD3. &lt;/P&gt;&lt;P&gt;APPEND ITAB1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE 'TEST2' TO ITAB1-FIELD1. &lt;/P&gt;&lt;P&gt;MOVE 'TEST2' TO ITAB1-FIELD2. &lt;/P&gt;&lt;P&gt;MOVE '20.00' TO ITAB1-FIELD3. &lt;/P&gt;&lt;P&gt;APPEND ITAB1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO 50 TIMES. &lt;/P&gt;&lt;P&gt;  APPEND ITAB1. &lt;/P&gt;&lt;P&gt;ENDDO. &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;PERFORM BUILD. &lt;/P&gt;&lt;P&gt;PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS. &lt;/P&gt;&lt;P&gt;PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;PERFORM CALL_ALV. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA FIELD CATALOG &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Explain Field Description to ALV &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR FIELDCAT_IN. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-FIELDNAME = 'FIELD1'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-TABNAME   = 'ITAB1'. &lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-NO_OUT    = ' '. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-SELTEXT_L = 'HEAD1'. &lt;/P&gt;&lt;P&gt;APPEND FIELDCAT_LN TO GT_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR FIELDCAT_IN. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-FIELDNAME = 'FIELD2'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-TABNAME   = 'ITAB1'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-NO_OUT    = 'X'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-SELTEXT_L = 'HEAD2'. &lt;/P&gt;&lt;P&gt;APPEND FIELDCAT_LN TO GT_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR FIELDCAT_IN. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-FIELDNAME     = 'FIELD3'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-TABNAME       = 'ITAB1'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "&amp;lt;- REF FIELD IN THE DICTIONNARY &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "&amp;lt;- REF TABLE IN THE DICTIONNARY &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-NO_OUT        = ' '. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY &lt;/P&gt;&lt;P&gt;APPEND FIELDCAT_LN TO GT_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA SORTING AND SUBTOTAL &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR GS_SORT. &lt;/P&gt;&lt;P&gt;GS_SORT-FIELDNAME = 'FIELD1'. &lt;/P&gt;&lt;P&gt;GS_SORT-SPOS      = 1. &lt;/P&gt;&lt;P&gt;GS_SORT-UP        = 'X'. &lt;/P&gt;&lt;P&gt;GS_SORT-SUBTOT    = 'X'. &lt;/P&gt;&lt;P&gt;APPEND GS_SORT TO GT_SORT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR GS_SORT. &lt;/P&gt;&lt;P&gt;GS_SORT-FIELDNAME = 'FIELD2'. &lt;/P&gt;&lt;P&gt;GS_SORT-SPOS      = 2. &lt;/P&gt;&lt;P&gt;GS_SORT-UP        = 'X'. &lt;/P&gt;&lt;P&gt;*GS_SORT-SUBTOT    = 'X'. &lt;/P&gt;&lt;P&gt;APPEND GS_SORT TO GT_SORT. &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;FORM CALL_ALV. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ABAP List Viewer &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_CALLBACK_PROGRAM = G_REPID &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_STRUCTURE_NAME = 'ITAB1' &lt;/P&gt;&lt;P&gt;IS_LAYOUT =  GS_LAYOUT &lt;/P&gt;&lt;P&gt;IT_FIELDCAT = GT_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_SPECIAL_GROUPS = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IT_SORT = GT_SORT[] &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_FILTER = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SAVE = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_VARIANT = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IT_EVENTS = GT_EVENTS[] &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IS_PRINT = GS_PRINT &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_REPREP_ID = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES &lt;/P&gt;&lt;P&gt;T_OUTTAB = ITAB1 &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;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER FORM &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT. &lt;/P&gt;&lt;P&gt;CONSTANTS: &lt;/P&gt;&lt;P&gt;GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. &lt;/P&gt;&lt;P&gt;*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: LS_EVENT TYPE SLIS_ALV_EVENT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET' &lt;/P&gt;&lt;P&gt;       EXPORTING &lt;/P&gt;&lt;P&gt;            I_LIST_TYPE = 0 &lt;/P&gt;&lt;P&gt;       IMPORTING &lt;/P&gt;&lt;P&gt;            ET_EVENTS   = LT_EVENTS. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE &lt;/P&gt;&lt;P&gt;                           INTO LS_EVENT. &lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0. &lt;/P&gt;&lt;P&gt;    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM. &lt;/P&gt;&lt;P&gt;    APPEND LS_EVENT TO LT_EVENTS. &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;define END_OF_PAGE event &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         INTO LS_EVENT. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF SY-SUBRC = 0. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  APPEND LS_EVENT TO LT_EVENTS. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER. &lt;/P&gt;&lt;P&gt;  DATA: GS_LINE TYPE SLIS_LISTHEADER. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR GS_LINE. &lt;/P&gt;&lt;P&gt;  GS_LINE-TYP  = 'H'. &lt;/P&gt;&lt;P&gt;  GS_LINE-INFO = 'HEADER 1'. &lt;/P&gt;&lt;P&gt;  APPEND GS_LINE TO GT_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR GS_LINE. &lt;/P&gt;&lt;P&gt;  GS_LINE-TYP  = 'S'. &lt;/P&gt;&lt;P&gt;  GS_LINE-KEY  = 'STATUS 1'. &lt;/P&gt;&lt;P&gt;  GS_LINE-INFO = 'INFO 1'. &lt;/P&gt;&lt;P&gt;  APPEND GS_LINE TO GT_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;  GS_LINE-KEY  = 'STATUS 2'. &lt;/P&gt;&lt;P&gt;  GS_LINE-INFO = 'INFO 2'. &lt;/P&gt;&lt;P&gt;  APPEND GS_LINE TO GT_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLEAR GS_LINE. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GS_LINE-TYP  = 'A'. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GS_LINE-INFO = 'ACTION'. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND GS_LINE TO  GT_TOP_OF_PAGE. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&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;P&gt;            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;  WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED. &lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM END_OF_PAGE. &lt;/P&gt;&lt;P&gt;  WRITE at (sy-linsz) sy-pagno CENTERED. &lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINT SETTINGS &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV. &lt;/P&gt;&lt;P&gt;  LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_NEW_PAGE        = P_NONEWP. &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO &lt;/P&gt;&lt;P&gt;  LS_PRINT-RESERVE_LINES      = P_RESERV. &lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END OF ZALV PROGRAM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 11:55:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837230#M664378</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T11:55:50Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837231#M664379</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;see this example.&lt;/P&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_repid like sy-repid,&lt;/P&gt;&lt;P&gt;gs_print type slis_print_alv,&lt;/P&gt;&lt;P&gt;gt_list_top_of_page type slis_t_listheader,&lt;/P&gt;&lt;P&gt;gt_events type slis_t_event,&lt;/P&gt;&lt;P&gt;gt_sort type slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;gs_layout type slis_layout_alv,&lt;/P&gt;&lt;P&gt;gt_fieldcat type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;fieldcat_ln like line of gt_fieldcat,&lt;/P&gt;&lt;P&gt;col_pos type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of itab,&lt;/P&gt;&lt;P&gt;field1(5) type c,&lt;/P&gt;&lt;P&gt;field2(5) type c,&lt;/P&gt;&lt;P&gt;field3(5) type p decimals 2,&lt;/P&gt;&lt;P&gt;end of itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of itab1 occurs 0.&lt;/P&gt;&lt;P&gt;include structure itab.&lt;/P&gt;&lt;P&gt;data: end of itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of itab_fieldcat occurs 0.&lt;/P&gt;&lt;P&gt;include structure itab.&lt;/P&gt;&lt;P&gt;data: end of itab_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Print Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;parameters:&lt;/P&gt;&lt;P&gt;p_print as checkbox default ' ', "PRINT IMMEDIATE&lt;/P&gt;&lt;P&gt;p_nosinf as checkbox default 'X', "NO SELECTION INFO&lt;/P&gt;&lt;P&gt;p_nocove as checkbox default ' ', "NO COVER PAGE&lt;/P&gt;&lt;P&gt;p_nonewp as checkbox default ' ', "NO NEW PAGE&lt;/P&gt;&lt;P&gt;p_nolinf as checkbox default 'X', "NO PRINT LIST INFO&lt;/P&gt;&lt;P&gt;p_reserv type i. "NO OF FOOTER LINE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;initialization.&lt;/P&gt;&lt;P&gt;g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;perform print_build using gs_print. "Print PARAMETERS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;move 'TEST1' to itab1-field1.&lt;/P&gt;&lt;P&gt;move 'TEST1' to itab1-field2.&lt;/P&gt;&lt;P&gt;move '10.00' to itab1-field3.&lt;/P&gt;&lt;P&gt;append itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do 7 times.&lt;/P&gt;&lt;P&gt;append itab1.&lt;/P&gt;&lt;P&gt;enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move 'TEST2' to itab1-field1.&lt;/P&gt;&lt;P&gt;move 'TEST2' to itab1-field2.&lt;/P&gt;&lt;P&gt;move '20.00' to itab1-field3.&lt;/P&gt;&lt;P&gt;append itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do 20 times.&lt;/P&gt;&lt;P&gt;append itab1.&lt;/P&gt;&lt;P&gt;enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move 'TEST3' to itab1-field1.&lt;/P&gt;&lt;P&gt;move 'TEST3' to itab1-field2.&lt;/P&gt;&lt;P&gt;move '30.00' to itab1-field3.&lt;/P&gt;&lt;P&gt;append itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do 5 times.&lt;/P&gt;&lt;P&gt;append itab1.&lt;/P&gt;&lt;P&gt;enddo.&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;perform build.&lt;/P&gt;&lt;P&gt;perform eventtab_build changing gt_events.&lt;/P&gt;&lt;P&gt;perform comment_build changing gt_list_top_of_page.&lt;/P&gt;&lt;P&gt;perform call_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA FIELD CATALOG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Explain Field Description to ALV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: fieldcat_in type slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear fieldcat_in.&lt;/P&gt;&lt;P&gt;fieldcat_ln-fieldname = 'FIELD1'.&lt;/P&gt;&lt;P&gt;fieldcat_ln-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT&lt;/P&gt;&lt;P&gt;fieldcat_ln-key = ' '. "SUBTOTAL KEY&lt;/P&gt;&lt;P&gt;fieldcat_ln-no_out = ' '.&lt;/P&gt;&lt;P&gt;fieldcat_ln-seltext_l = 'HEAD1'.&lt;/P&gt;&lt;P&gt;append fieldcat_ln to gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear fieldcat_in.&lt;/P&gt;&lt;P&gt;fieldcat_ln-fieldname = 'FIELD2'.&lt;/P&gt;&lt;P&gt;fieldcat_ln-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;fieldcat_ln-no_out = 'X'.&lt;/P&gt;&lt;P&gt;fieldcat_ln-seltext_l = 'HEAD2'.&lt;/P&gt;&lt;P&gt;append fieldcat_ln to gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear fieldcat_in.&lt;/P&gt;&lt;P&gt;fieldcat_ln-fieldname = 'FIELD3'.&lt;/P&gt;&lt;P&gt;fieldcat_ln-tabname = 'ITAB1'.&lt;/P&gt;&lt;P&gt;fieldcat_ln-ref_fieldname = 'MENGE'. "&amp;lt;- REF FIELD IN THE DICTIONNARY&lt;/P&gt;&lt;P&gt;fieldcat_ln-ref_tabname = 'MSEG'. "&amp;lt;- REF TABLE IN THE DICTIONNARY&lt;/P&gt;&lt;P&gt;fieldcat_ln-no_out = ' '.&lt;/P&gt;&lt;P&gt;fieldcat_ln-do_sum = 'X'. "SUM UPON DISPLAY&lt;/P&gt;&lt;P&gt;append fieldcat_ln to gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA SORTING AND SUBTOTAL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: gs_sort type slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear gs_sort.&lt;/P&gt;&lt;P&gt;gs_sort-fieldname = 'FIELD1'.&lt;/P&gt;&lt;P&gt;gs_sort-spos = 1.&lt;/P&gt;&lt;P&gt;gs_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;gs_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;append gs_sort to gt_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear gs_sort.&lt;/P&gt;&lt;P&gt;gs_sort-fieldname = 'FIELD2'.&lt;/P&gt;&lt;P&gt;gs_sort-spos = 2.&lt;/P&gt;&lt;P&gt;gs_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;*GS_SORT-SUBTOT = 'X'. **&lt;STRONG&gt;THIS SHOULD NOT BE UNCOMENTED&lt;/STRONG&gt;*&lt;/P&gt;&lt;P&gt;append gs_sort to gt_sort.&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;form call_alv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ABAP List Viewer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;i_callback_program = g_repid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;i_structure_name = 'ITAB1'&lt;/P&gt;&lt;P&gt;is_layout = gs_layout&lt;/P&gt;&lt;P&gt;it_fieldcat = gt_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_SPECIAL_GROUPS =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;it_sort = gt_sort[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_FILTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SAVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_VARIANT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;it_events = gt_events[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;is_print = gs_print&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_REPREP_ID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;t_outtab = itab1&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;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;form eventtab_build changing lt_events type slis_t_event.&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;gc_formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ls_event type slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;i_list_type = 0&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;et_events = lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table lt_events with key name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;into ls_event.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;move gc_formname_top_of_page to ls_event-form.&lt;/P&gt;&lt;P&gt;append ls_event to lt_events.&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;define END_OF_PAGE event&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTO LS_EVENT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND LS_EVENT TO LT_EVENTS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form comment_build changing gt_top_of_page type slis_t_listheader.&lt;/P&gt;&lt;P&gt;data: gs_line type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear gs_line.&lt;/P&gt;&lt;P&gt;gs_line-typ = 'H'.&lt;/P&gt;&lt;P&gt;gs_line-info = 'HEADER 1'.&lt;/P&gt;&lt;P&gt;append gs_line to gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear gs_line.&lt;/P&gt;&lt;P&gt;gs_line-typ = 'S'.&lt;/P&gt;&lt;P&gt;gs_line-key = 'STATUS 1'.&lt;/P&gt;&lt;P&gt;gs_line-info = 'INFO 1'.&lt;/P&gt;&lt;P&gt;append gs_line to gt_top_of_page.&lt;/P&gt;&lt;P&gt;gs_line-key = 'STATUS 2'.&lt;/P&gt;&lt;P&gt;gs_line-info = 'INFO 2'.&lt;/P&gt;&lt;P&gt;append gs_line to gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLEAR GS_LINE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GS_LINE-TYP = 'A'.&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;GS_LINE-INFO = 'ACTION'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND GS_LINE TO GT_TOP_OF_PAGE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&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;P&gt;it_list_commentary = gt_list_top_of_page.&lt;/P&gt;&lt;P&gt;write: sy-datum, 'Page No', sy-pagno left-justified.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form end_of_page.&lt;/P&gt;&lt;P&gt;write at (sy-linsz) sy-pagno centered.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINT SETTINGS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;form print_build using ls_print type slis_print_alv.&lt;/P&gt;&lt;P&gt;ls_print-print = p_print. "PRINT IMMEDIATE&lt;/P&gt;&lt;P&gt;ls_print-no_print_selinfos = p_nosinf. "NO SELECTION INFO&lt;/P&gt;&lt;P&gt;ls_print-no_coverpage = p_nocove. "NO COVER PAGE&lt;/P&gt;&lt;P&gt;ls_print-no_new_page = p_nonewp.&lt;/P&gt;&lt;P&gt;ls_print-no_print_listinfos = p_nolinf. "NO PRINT LIST INFO&lt;/P&gt;&lt;P&gt;ls_print-reserve_lines = p_reserv.&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;rgds,&lt;/P&gt;&lt;P&gt;bharat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 11:58:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837231#M664379</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T11:58:06Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837232#M664380</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;see this program you can understand very easily&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A Simple ABAP ALV LIST VIEWER Example &lt;/P&gt;&lt;P&gt;This ALV program have all the basic report requirements such as page heading, page no, sub-total and a grand total. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is a basic ALV with the followings:- &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Page Heading &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Page No &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Sub-Total &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- Grand Total &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZALV. &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;DATA: G_REPID LIKE SY-REPID, &lt;/P&gt;&lt;P&gt;GS_PRINT            TYPE SLIS_PRINT_ALV, &lt;/P&gt;&lt;P&gt;GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, &lt;/P&gt;&lt;P&gt;GT_EVENTS           TYPE SLIS_T_EVENT, &lt;/P&gt;&lt;P&gt;GT_SORT             TYPE SLIS_T_SORTINFO_ALV, &lt;/P&gt;&lt;P&gt;GS_LAYOUT           TYPE SLIS_LAYOUT_ALV, &lt;/P&gt;&lt;P&gt;GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV, &lt;/P&gt;&lt;P&gt;FIELDCAT_LN LIKE LINE OF GT_FIELDCAT, &lt;/P&gt;&lt;P&gt;COL_POS TYPE I. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB, &lt;/P&gt;&lt;P&gt;  FIELD1(5) TYPE C, &lt;/P&gt;&lt;P&gt;  FIELD2(5) TYPE C, &lt;/P&gt;&lt;P&gt;  FIELD3(5) TYPE P DECIMALS 2, &lt;/P&gt;&lt;P&gt;END OF ITAB. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB1 OCCURS 0. &lt;/P&gt;&lt;P&gt;  INCLUDE STRUCTURE ITAB. &lt;/P&gt;&lt;P&gt;DATA: END OF ITAB1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0. &lt;/P&gt;&lt;P&gt;  INCLUDE STRUCTURE ITAB. &lt;/P&gt;&lt;P&gt;DATA: END OF ITAB_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Print Parameters &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PARAMETERS: &lt;/P&gt;&lt;P&gt;            P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE &lt;/P&gt;&lt;P&gt;            P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO &lt;/P&gt;&lt;P&gt;            P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE &lt;/P&gt;&lt;P&gt;            P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE &lt;/P&gt;&lt;P&gt;            P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO &lt;/P&gt;&lt;P&gt;            P_RESERV TYPE I.                  "NO OF FOOTER LINE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION. &lt;/P&gt;&lt;P&gt;G_REPID = SY-REPID. &lt;/P&gt;&lt;P&gt;PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TEST DATA &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MOVE 'TEST1' TO ITAB1-FIELD1. &lt;/P&gt;&lt;P&gt;MOVE 'TEST1' TO ITAB1-FIELD2. &lt;/P&gt;&lt;P&gt;MOVE '10.00' TO ITAB1-FIELD3. &lt;/P&gt;&lt;P&gt;APPEND ITAB1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE 'TEST2' TO ITAB1-FIELD1. &lt;/P&gt;&lt;P&gt;MOVE 'TEST2' TO ITAB1-FIELD2. &lt;/P&gt;&lt;P&gt;MOVE '20.00' TO ITAB1-FIELD3. &lt;/P&gt;&lt;P&gt;APPEND ITAB1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO 50 TIMES. &lt;/P&gt;&lt;P&gt;  APPEND ITAB1. &lt;/P&gt;&lt;P&gt;ENDDO. &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;PERFORM BUILD. &lt;/P&gt;&lt;P&gt;PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS. &lt;/P&gt;&lt;P&gt;PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;PERFORM CALL_ALV. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA FIELD CATALOG &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Explain Field Description to ALV &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR FIELDCAT_IN. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-FIELDNAME = 'FIELD1'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-TABNAME   = 'ITAB1'. &lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-NO_OUT    = ' '. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-SELTEXT_L = 'HEAD1'. &lt;/P&gt;&lt;P&gt;APPEND FIELDCAT_LN TO GT_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR FIELDCAT_IN. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-FIELDNAME = 'FIELD2'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-TABNAME   = 'ITAB1'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-NO_OUT    = 'X'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-SELTEXT_L = 'HEAD2'. &lt;/P&gt;&lt;P&gt;APPEND FIELDCAT_LN TO GT_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR FIELDCAT_IN. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-FIELDNAME     = 'FIELD3'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-TABNAME       = 'ITAB1'. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "&amp;lt;- REF FIELD IN THE DICTIONNARY &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "&amp;lt;- REF TABLE IN THE DICTIONNARY &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-NO_OUT        = ' '. &lt;/P&gt;&lt;P&gt;FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY &lt;/P&gt;&lt;P&gt;APPEND FIELDCAT_LN TO GT_FIELDCAT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA SORTING AND SUBTOTAL &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR GS_SORT. &lt;/P&gt;&lt;P&gt;GS_SORT-FIELDNAME = 'FIELD1'. &lt;/P&gt;&lt;P&gt;GS_SORT-SPOS      = 1. &lt;/P&gt;&lt;P&gt;GS_SORT-UP        = 'X'. &lt;/P&gt;&lt;P&gt;GS_SORT-SUBTOT    = 'X'. &lt;/P&gt;&lt;P&gt;APPEND GS_SORT TO GT_SORT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR GS_SORT. &lt;/P&gt;&lt;P&gt;GS_SORT-FIELDNAME = 'FIELD2'. &lt;/P&gt;&lt;P&gt;GS_SORT-SPOS      = 2. &lt;/P&gt;&lt;P&gt;GS_SORT-UP        = 'X'. &lt;/P&gt;&lt;P&gt;*GS_SORT-SUBTOT    = 'X'. &lt;/P&gt;&lt;P&gt;APPEND GS_SORT TO GT_SORT. &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;FORM CALL_ALV. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ABAP List Viewer &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_CALLBACK_PROGRAM = G_REPID &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I_STRUCTURE_NAME = 'ITAB1' &lt;/P&gt;&lt;P&gt;IS_LAYOUT =  GS_LAYOUT &lt;/P&gt;&lt;P&gt;IT_FIELDCAT = GT_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_SPECIAL_GROUPS = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IT_SORT = GT_SORT[] &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_FILTER = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SAVE = ' ' &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_VARIANT = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IT_EVENTS = GT_EVENTS[] &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IS_PRINT = GS_PRINT &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_REPREP_ID = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0 &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER = &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER = &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES &lt;/P&gt;&lt;P&gt;T_OUTTAB = ITAB1 &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;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER FORM &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT. &lt;/P&gt;&lt;P&gt;CONSTANTS: &lt;/P&gt;&lt;P&gt;GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. &lt;/P&gt;&lt;P&gt;*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: LS_EVENT TYPE SLIS_ALV_EVENT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET' &lt;/P&gt;&lt;P&gt;       EXPORTING &lt;/P&gt;&lt;P&gt;            I_LIST_TYPE = 0 &lt;/P&gt;&lt;P&gt;       IMPORTING &lt;/P&gt;&lt;P&gt;            ET_EVENTS   = LT_EVENTS. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE &lt;/P&gt;&lt;P&gt;                           INTO LS_EVENT. &lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0. &lt;/P&gt;&lt;P&gt;    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM. &lt;/P&gt;&lt;P&gt;    APPEND LS_EVENT TO LT_EVENTS. &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;define END_OF_PAGE event &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         INTO LS_EVENT. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF SY-SUBRC = 0. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  APPEND LS_EVENT TO LT_EVENTS. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER. &lt;/P&gt;&lt;P&gt;  DATA: GS_LINE TYPE SLIS_LISTHEADER. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR GS_LINE. &lt;/P&gt;&lt;P&gt;  GS_LINE-TYP  = 'H'. &lt;/P&gt;&lt;P&gt;  GS_LINE-INFO = 'HEADER 1'. &lt;/P&gt;&lt;P&gt;  APPEND GS_LINE TO GT_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR GS_LINE. &lt;/P&gt;&lt;P&gt;  GS_LINE-TYP  = 'S'. &lt;/P&gt;&lt;P&gt;  GS_LINE-KEY  = 'STATUS 1'. &lt;/P&gt;&lt;P&gt;  GS_LINE-INFO = 'INFO 1'. &lt;/P&gt;&lt;P&gt;  APPEND GS_LINE TO GT_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;  GS_LINE-KEY  = 'STATUS 2'. &lt;/P&gt;&lt;P&gt;  GS_LINE-INFO = 'INFO 2'. &lt;/P&gt;&lt;P&gt;  APPEND GS_LINE TO GT_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLEAR GS_LINE. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GS_LINE-TYP  = 'A'. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GS_LINE-INFO = 'ACTION'. &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND GS_LINE TO  GT_TOP_OF_PAGE. &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&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;P&gt;            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE. &lt;/P&gt;&lt;P&gt;  WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED. &lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM END_OF_PAGE. &lt;/P&gt;&lt;P&gt;  WRITE at (sy-linsz) sy-pagno CENTERED. &lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINT SETTINGS &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV. &lt;/P&gt;&lt;P&gt;  LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_NEW_PAGE        = P_NONEWP. &lt;/P&gt;&lt;P&gt;  LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO &lt;/P&gt;&lt;P&gt;  LS_PRINT-RESERVE_LINES      = P_RESERV. &lt;/P&gt;&lt;P&gt;ENDFORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END OF ZALV PROGRAM &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;A href="http://help.sap.com/saphelp_nw04/helpdata/en/ee/b99d37e188a049e10000009b38f8cf/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/ee/b99d37e188a049e10000009b38f8cf/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward if usefull&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 12:02:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837232#M664380</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T12:02:24Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837233#M664381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;    For subtotal first you have to get Total of column then only you will get subtotal.&lt;/P&gt;&lt;P&gt;For that you have to pass FIELDCAT-DO_SUM = 'X' Through Fieldcat To the column where you want to calculate Total And Subtotal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then For subtotal do the code like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First in SLIS define.&lt;/P&gt;&lt;P&gt;data : w_sort type slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;and.&lt;/P&gt;&lt;P&gt;Data : t_sort type slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then Fill The Sort Table like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;W_sort-spos = '1'.&lt;/P&gt;&lt;P&gt;w_sort-fieldname = 'MATNR'.   "Consider&lt;/P&gt;&lt;P&gt;W_sort-tabname = 'IT_OUT'.&lt;/P&gt;&lt;P&gt;w_sort-group = 'X'.&lt;/P&gt;&lt;P&gt;w_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;Append w_sort  To T_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And finally Assign T_SORT in REUSE_ALV_GRID_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward If Ans is Valuable.&lt;/P&gt;&lt;P&gt;Pradip Pawar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 15:00:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837233#M664381</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T15:00:01Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837234#M664382</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;Use below code :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Declare gt_sort  as below :&lt;/P&gt;&lt;P&gt;data : gt_sort       TYPE slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;FORM f_alv_sort_subtot_info.
  DATA: ls_sort TYPE slis_sortinfo_alv.

  SORT  gt_output BY bukrs hkont.

  CLEAR ls_sort.
  ls_sort-fieldname = 'BUKRS'.
  ls_sort-up        = 'X'.
  ls_sort-subtot    = 'X'.
  APPEND ls_sort TO gt_sort.

  CLEAR ls_sort.
  ls_sort-fieldname = 'HKONT'.
  ls_sort-up        = 'X'.
  ls_sort-subtot    = 'X'.
  APPEND ls_sort TO gt_sort.

ENDFORM.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And pass the gt_sort to &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           it_sort                           = gt_sort[]&lt;/P&gt;&lt;P&gt;of REUSE_ALV_GRID_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Consider gt_output as your final internal table and subtotal by BUKRS and HKONT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sriram Ponna.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2007 15:09:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/2837234#M664382</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-10-04T15:09:42Z</dc:date>
    </item>
  </channel>
</rss>

