<?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 SUB TOTAL in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961468#M395210</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this sample report:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT ZALV. 
 
TYPE-POOLS: SLIS. 
 
DATA: G_REPID LIKE SY-REPID, 
GS_PRINT            TYPE SLIS_PRINT_ALV, 
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, 
GT_EVENTS           TYPE SLIS_T_EVENT, 
GT_SORT             TYPE SLIS_T_SORTINFO_ALV, 
GS_LAYOUT           TYPE SLIS_LAYOUT_ALV, 
GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV, 
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT, 
COL_POS TYPE I. 
 
DATA: BEGIN OF ITAB, 
  FIELD1(5) TYPE C, 
  FIELD2(5) TYPE C, 
  FIELD3(5) TYPE P DECIMALS 2, 
END OF ITAB. 
 
DATA: BEGIN OF ITAB1 OCCURS 0. 
  INCLUDE STRUCTURE ITAB. 
DATA: END OF ITAB1. 
 
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0. 
  INCLUDE STRUCTURE ITAB. 
DATA: END OF ITAB_FIELDCAT. 
 
* Print Parameters 
PARAMETERS: 
            P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE 
            P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO 
            P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE 
            P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE 
            P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO 
            P_RESERV TYPE I.                  "NO OF FOOTER LINE 
 
INITIALIZATION. 
G_REPID = SY-REPID. 
PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS 
 
START-OF-SELECTION. 
* TEST DATA 
MOVE 'TEST1' TO ITAB1-FIELD1. 
MOVE 'TEST1' TO ITAB1-FIELD2. 
MOVE '10.00' TO ITAB1-FIELD3. 
APPEND ITAB1. 
 
MOVE 'TEST2' TO ITAB1-FIELD1. 
MOVE 'TEST2' TO ITAB1-FIELD2. 
MOVE '20.00' TO ITAB1-FIELD3. 
APPEND ITAB1. 
 
DO 50 TIMES. 
  APPEND ITAB1. 
ENDDO. 
 
END-OF-SELECTION. 
 
PERFORM BUILD. 
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS. 
PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE. 
PERFORM CALL_ALV. 
 
FORM BUILD. 
* DATA FIELD CATALOG 
* Explain Field Description to ALV 
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV. 
 
CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME = 'FIELD1'. 
FIELDCAT_LN-TABNAME   = 'ITAB1'. 
*FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT 
&amp;lt;b&amp;gt;FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY&amp;lt;/b&amp;gt; 
FIELDCAT_LN-NO_OUT    = ' '. 
FIELDCAT_LN-SELTEXT_L = 'HEAD1'. 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 
 
CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME = 'FIELD2'. 
FIELDCAT_LN-TABNAME   = 'ITAB1'. 
FIELDCAT_LN-NO_OUT    = 'X'. 
FIELDCAT_LN-SELTEXT_L = 'HEAD2'. 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 
 
CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME     = 'FIELD3'. 
FIELDCAT_LN-TABNAME       = 'ITAB1'. 
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "&amp;lt;- REF FIELD IN THE DICTIONNARY 
FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "&amp;lt;- REF TABLE IN THE DICTIONNARY 
FIELDCAT_LN-NO_OUT        = ' '. 
FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 
 
&amp;lt;b&amp;gt;* DATA SORTING AND SUBTOTAL&amp;lt;/b&amp;gt; 
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. 
 
&amp;lt;b&amp;gt;CLEAR GS_SORT. 
GS_SORT-FIELDNAME = 'FIELD1'. 
GS_SORT-SPOS      = 1. 
GS_SORT-UP        = 'X'. 
GS_SORT-SUBTOT    = 'X'. 
APPEND GS_SORT TO GT_SORT. 
 
CLEAR GS_SORT. 
GS_SORT-FIELDNAME = 'FIELD2'. 
GS_SORT-SPOS      = 2. 
GS_SORT-UP        = 'X'. 
*GS_SORT-SUBTOT    = 'X'. 
APPEND GS_SORT TO GT_SORT.&amp;lt;/b&amp;gt; 
 
ENDFORM. 
 
FORM CALL_ALV. 
* ABAP List Viewer 
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' 
EXPORTING 
* I_INTERFACE_CHECK = ' ' 
* I_BYPASSING_BUFFER = 
* I_BUFFER_ACTIVE = ' ' 
I_CALLBACK_PROGRAM = G_REPID 
* I_CALLBACK_PF_STATUS_SET = ' ' 
* I_CALLBACK_USER_COMMAND = ' ' 
I_STRUCTURE_NAME = 'ITAB1' 
IS_LAYOUT =  GS_LAYOUT 
IT_FIELDCAT = GT_FIELDCAT[] 
* IT_EXCLUDING = 
* IT_SPECIAL_GROUPS = 
  IT_SORT = GT_SORT[] 
* IT_FILTER = 
* IS_SEL_HIDE = 
* I_DEFAULT = 'X' 
* I_SAVE = ' ' 
* IS_VARIANT = 
  IT_EVENTS = GT_EVENTS[] 
* IT_EVENT_EXIT = 
  IS_PRINT = GS_PRINT 
* IS_REPREP_ID = 
* I_SCREEN_START_COLUMN = 0 
* I_SCREEN_START_LINE = 0 
* I_SCREEN_END_COLUMN = 0 
* I_SCREEN_END_LINE = 0 
* IMPORTING 
* E_EXIT_CAUSED_BY_CALLER = 
* ES_EXIT_CAUSED_BY_USER = 
TABLES 
T_OUTTAB = ITAB1 
EXCEPTIONS 
PROGRAM_ERROR = 1 
OTHERS = 2. 
ENDFORM. 
 
* HEADER FORM 
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT. 
CONSTANTS: 
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. 
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'. 
 
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT. 
 
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET' 
       EXPORTING 
            I_LIST_TYPE = 0 
       IMPORTING 
            ET_EVENTS   = LT_EVENTS. 
 
  READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE 
                           INTO LS_EVENT. 
  IF SY-SUBRC = 0. 
    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM. 
    APPEND LS_EVENT TO LT_EVENTS. 
  ENDIF. 
 
* define END_OF_PAGE event 
* READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE 
*                          INTO LS_EVENT. 
* IF SY-SUBRC = 0. 
*   MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM. 
*   APPEND LS_EVENT TO LT_EVENTS. 
* ENDIF. 
ENDFORM. 
 
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER. 
  DATA: GS_LINE TYPE SLIS_LISTHEADER. 
 
  CLEAR GS_LINE. 
  GS_LINE-TYP  = 'H'. 
  GS_LINE-INFO = 'HEADER 1'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
 
  CLEAR GS_LINE. 
  GS_LINE-TYP  = 'S'. 
  GS_LINE-KEY  = 'STATUS 1'. 
  GS_LINE-INFO = 'INFO 1'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
  GS_LINE-KEY  = 'STATUS 2'. 
  GS_LINE-INFO = 'INFO 2'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
 
* CLEAR GS_LINE. 
* GS_LINE-TYP  = 'A'. 
* 
* GS_LINE-INFO = 'ACTION'. 
* APPEND GS_LINE TO  GT_TOP_OF_PAGE. 
 
ENDFORM. 
 
FORM TOP_OF_PAGE. 
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' 
       EXPORTING 
            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE. 
  WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED. 
ENDFORM. 
 
FORM END_OF_PAGE. 
  WRITE at (sy-linsz) sy-pagno CENTERED. 
ENDFORM. 
 
* PRINT SETTINGS 
FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV. 
  LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE 
  LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO 
  LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE 
  LS_PRINT-NO_NEW_PAGE        = P_NONEWP. 
  LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO 
  LS_PRINT-RESERVE_LINES      = P_RESERV. 
ENDFORM.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If useful reward.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 02 Mar 2007 11:05:05 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-03-02T11:05:05Z</dc:date>
    <item>
      <title>ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961466#M395208</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI &lt;/P&gt;&lt;P&gt;AM DOING A ALV report in se 38 in which i need to display the subtotals on plant wise ,storage location wise apart from the grand total..please help me&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with regards&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 10:57:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961466#M395208</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T10:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961467#M395209</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check out this sample program for subtotals &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT z_alv_sub_totals .

TYPE-POOLS: slis.

DATA: BEGIN OF it_output OCCURS 0,
          var1(8) TYPE n,
          var2(10),
          var3 TYPE I,
      END OF it_output.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
       t_fieldcat TYPE slis_fieldcat_alv,
      it_sort TYPE slis_t_sortinfo_alv,
      t_sort TYPE slis_sortinfo_alv,
      v_repid LIKE sy-repid.

INITIALIZATION.
  v_repid = sy-repid.

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM sort_fields.
  PERFORM fill_fieldcat.
  PERFORM list_display.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM get_data.

  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'siddhu'.
  it_output-var3 = '20000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'chinni'.
  it_output-var3 = '100000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 2000.
  it_output-var2 = 'chicchu'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 2000.
  it_output-var2 = 'candy'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 4000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.


ENDFORM.                    " GET_DATA

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  fill_fieldcat
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM fill_fieldcat.
  PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
                             'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
                             'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.

ENDFORM.                    " fill_fieldcat

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  fill_fields
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_0146   text
*      --&amp;gt;P_0147   text
*      --&amp;gt;P_0148   text
*      --&amp;gt;P_0149   text
*----------------------------------------------------------------------*
FORM fill_fields USING    value(tabname) TYPE slis_tabname
                          value(fieldname) TYPE slis_fieldname
                          value(seltext_m) LIKE dd03p-scrtext_m
                          value(do_sum) TYPE c.
  t_fieldcat-tabname = tabname.
  t_fieldcat-fieldname = fieldname.
  t_fieldcat-seltext_m  = seltext_m.
  IF do_sum = 'X'.
    t_fieldcat-datatype = 'CURR'.
  ENDIF.
  t_fieldcat-do_sum = do_sum.
  APPEND t_fieldcat TO it_fieldcat.
  CLEAR t_fieldcat.
ENDFORM.                    " fill_fields

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  list_display
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM list_display.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
     i_callback_program             = v_repid
     it_fieldcat                    = it_fieldcat
     it_sort                        = it_sort[]
   TABLES
      t_outtab                       = it_output
   EXCEPTIONS
     program_error                  = 1
     OTHERS                         = 2
            .
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " list_display

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  sort_fields
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM sort_fields.
  t_sort-fieldname = 'VAR1'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 1.
  t_sort-up = 'X'.
  t_sort-subtot = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.

  t_sort-fieldname = 'VAR3'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 2.
  t_sort-up = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.

ENDFORM.                    " sort_fields&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 10:59:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961467#M395209</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T10:59:39Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961468#M395210</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this sample report:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT ZALV. 
 
TYPE-POOLS: SLIS. 
 
DATA: G_REPID LIKE SY-REPID, 
GS_PRINT            TYPE SLIS_PRINT_ALV, 
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, 
GT_EVENTS           TYPE SLIS_T_EVENT, 
GT_SORT             TYPE SLIS_T_SORTINFO_ALV, 
GS_LAYOUT           TYPE SLIS_LAYOUT_ALV, 
GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV, 
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT, 
COL_POS TYPE I. 
 
DATA: BEGIN OF ITAB, 
  FIELD1(5) TYPE C, 
  FIELD2(5) TYPE C, 
  FIELD3(5) TYPE P DECIMALS 2, 
END OF ITAB. 
 
DATA: BEGIN OF ITAB1 OCCURS 0. 
  INCLUDE STRUCTURE ITAB. 
DATA: END OF ITAB1. 
 
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0. 
  INCLUDE STRUCTURE ITAB. 
DATA: END OF ITAB_FIELDCAT. 
 
* Print Parameters 
PARAMETERS: 
            P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE 
            P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO 
            P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE 
            P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE 
            P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO 
            P_RESERV TYPE I.                  "NO OF FOOTER LINE 
 
INITIALIZATION. 
G_REPID = SY-REPID. 
PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS 
 
START-OF-SELECTION. 
* TEST DATA 
MOVE 'TEST1' TO ITAB1-FIELD1. 
MOVE 'TEST1' TO ITAB1-FIELD2. 
MOVE '10.00' TO ITAB1-FIELD3. 
APPEND ITAB1. 
 
MOVE 'TEST2' TO ITAB1-FIELD1. 
MOVE 'TEST2' TO ITAB1-FIELD2. 
MOVE '20.00' TO ITAB1-FIELD3. 
APPEND ITAB1. 
 
DO 50 TIMES. 
  APPEND ITAB1. 
ENDDO. 
 
END-OF-SELECTION. 
 
PERFORM BUILD. 
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS. 
PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE. 
PERFORM CALL_ALV. 
 
FORM BUILD. 
* DATA FIELD CATALOG 
* Explain Field Description to ALV 
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV. 
 
CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME = 'FIELD1'. 
FIELDCAT_LN-TABNAME   = 'ITAB1'. 
*FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT 
&amp;lt;b&amp;gt;FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY&amp;lt;/b&amp;gt; 
FIELDCAT_LN-NO_OUT    = ' '. 
FIELDCAT_LN-SELTEXT_L = 'HEAD1'. 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 
 
CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME = 'FIELD2'. 
FIELDCAT_LN-TABNAME   = 'ITAB1'. 
FIELDCAT_LN-NO_OUT    = 'X'. 
FIELDCAT_LN-SELTEXT_L = 'HEAD2'. 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 
 
CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME     = 'FIELD3'. 
FIELDCAT_LN-TABNAME       = 'ITAB1'. 
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "&amp;lt;- REF FIELD IN THE DICTIONNARY 
FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "&amp;lt;- REF TABLE IN THE DICTIONNARY 
FIELDCAT_LN-NO_OUT        = ' '. 
FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 
 
&amp;lt;b&amp;gt;* DATA SORTING AND SUBTOTAL&amp;lt;/b&amp;gt; 
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. 
 
&amp;lt;b&amp;gt;CLEAR GS_SORT. 
GS_SORT-FIELDNAME = 'FIELD1'. 
GS_SORT-SPOS      = 1. 
GS_SORT-UP        = 'X'. 
GS_SORT-SUBTOT    = 'X'. 
APPEND GS_SORT TO GT_SORT. 
 
CLEAR GS_SORT. 
GS_SORT-FIELDNAME = 'FIELD2'. 
GS_SORT-SPOS      = 2. 
GS_SORT-UP        = 'X'. 
*GS_SORT-SUBTOT    = 'X'. 
APPEND GS_SORT TO GT_SORT.&amp;lt;/b&amp;gt; 
 
ENDFORM. 
 
FORM CALL_ALV. 
* ABAP List Viewer 
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' 
EXPORTING 
* I_INTERFACE_CHECK = ' ' 
* I_BYPASSING_BUFFER = 
* I_BUFFER_ACTIVE = ' ' 
I_CALLBACK_PROGRAM = G_REPID 
* I_CALLBACK_PF_STATUS_SET = ' ' 
* I_CALLBACK_USER_COMMAND = ' ' 
I_STRUCTURE_NAME = 'ITAB1' 
IS_LAYOUT =  GS_LAYOUT 
IT_FIELDCAT = GT_FIELDCAT[] 
* IT_EXCLUDING = 
* IT_SPECIAL_GROUPS = 
  IT_SORT = GT_SORT[] 
* IT_FILTER = 
* IS_SEL_HIDE = 
* I_DEFAULT = 'X' 
* I_SAVE = ' ' 
* IS_VARIANT = 
  IT_EVENTS = GT_EVENTS[] 
* IT_EVENT_EXIT = 
  IS_PRINT = GS_PRINT 
* IS_REPREP_ID = 
* I_SCREEN_START_COLUMN = 0 
* I_SCREEN_START_LINE = 0 
* I_SCREEN_END_COLUMN = 0 
* I_SCREEN_END_LINE = 0 
* IMPORTING 
* E_EXIT_CAUSED_BY_CALLER = 
* ES_EXIT_CAUSED_BY_USER = 
TABLES 
T_OUTTAB = ITAB1 
EXCEPTIONS 
PROGRAM_ERROR = 1 
OTHERS = 2. 
ENDFORM. 
 
* HEADER FORM 
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT. 
CONSTANTS: 
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. 
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'. 
 
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT. 
 
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET' 
       EXPORTING 
            I_LIST_TYPE = 0 
       IMPORTING 
            ET_EVENTS   = LT_EVENTS. 
 
  READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE 
                           INTO LS_EVENT. 
  IF SY-SUBRC = 0. 
    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM. 
    APPEND LS_EVENT TO LT_EVENTS. 
  ENDIF. 
 
* define END_OF_PAGE event 
* READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE 
*                          INTO LS_EVENT. 
* IF SY-SUBRC = 0. 
*   MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM. 
*   APPEND LS_EVENT TO LT_EVENTS. 
* ENDIF. 
ENDFORM. 
 
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER. 
  DATA: GS_LINE TYPE SLIS_LISTHEADER. 
 
  CLEAR GS_LINE. 
  GS_LINE-TYP  = 'H'. 
  GS_LINE-INFO = 'HEADER 1'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
 
  CLEAR GS_LINE. 
  GS_LINE-TYP  = 'S'. 
  GS_LINE-KEY  = 'STATUS 1'. 
  GS_LINE-INFO = 'INFO 1'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
  GS_LINE-KEY  = 'STATUS 2'. 
  GS_LINE-INFO = 'INFO 2'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
 
* CLEAR GS_LINE. 
* GS_LINE-TYP  = 'A'. 
* 
* GS_LINE-INFO = 'ACTION'. 
* APPEND GS_LINE TO  GT_TOP_OF_PAGE. 
 
ENDFORM. 
 
FORM TOP_OF_PAGE. 
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' 
       EXPORTING 
            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE. 
  WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED. 
ENDFORM. 
 
FORM END_OF_PAGE. 
  WRITE at (sy-linsz) sy-pagno CENTERED. 
ENDFORM. 
 
* PRINT SETTINGS 
FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV. 
  LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE 
  LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO 
  LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE 
  LS_PRINT-NO_NEW_PAGE        = P_NONEWP. 
  LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO 
  LS_PRINT-RESERVE_LINES      = P_RESERV. 
ENDFORM.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If useful reward.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 11:05:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961468#M395210</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T11:05:05Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961469#M395211</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HEY BUT D VARIABLES IN D FIRST FIELS ARE NOT ADDED...I WANT D VARIABLE IN D FIELDS FIELD1 AND FIELD 3 TO B ADDED AND ALSO IN MY CASE I CANT GIVE D VALUES DEY R RETRIEVED FROM D TABLE....PLZZ GO THRU D CODE BELOW&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;&lt;/P&gt;&lt;P&gt;REPORT  ZSALES1.&lt;/P&gt;&lt;P&gt;DATA:X TYPE I,Y TYPE I,a type i,b type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:VBRP.&lt;/P&gt;&lt;P&gt;TYPE-POOLS:SLIS.&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF T_VBRP,&lt;/P&gt;&lt;P&gt;  VBELN TYPE VBRP-VBELN,&lt;/P&gt;&lt;P&gt;  FBUDA TYPE VBRP-FBUDA,&lt;/P&gt;&lt;P&gt;  WERKS TYPE VBRP-WERKS,&lt;/P&gt;&lt;P&gt;  LGORT TYPE VBRP-LGORT,&lt;/P&gt;&lt;P&gt;  NETWR TYPE VBRP-NETWR,&lt;/P&gt;&lt;P&gt;  Y TYPE I,&lt;/P&gt;&lt;P&gt;  END OF T_VBRP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:IT_VBRP TYPE STANDARD TABLE OF T_VBRP INITIAL SIZE 0   WITH HEADER LINE    ,&lt;/P&gt;&lt;P&gt;        WA_VBRP TYPE T_VBRP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS DATE FOR VBRP-FBUDA OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:PLANT FOR VBRP-WERKS NO INTERVALS.&lt;/P&gt;&lt;P&gt;  data: fieldcatalog type slis_t_fieldcat_alv with header line,&lt;/P&gt;&lt;P&gt;      gd_tab_group type slis_t_sp_group_alv,&lt;/P&gt;&lt;P&gt;      gd_layout    type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      gd_repid     like sy-repid.&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;perform data_retrieval.&lt;/P&gt;&lt;P&gt;perform build_fieldcatalog.&lt;/P&gt;&lt;P&gt;perform build_layout.&lt;/P&gt;&lt;P&gt;perform display_alv_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-FIELDNAME   = 'FBUDA'.&lt;/P&gt;&lt;P&gt;      fieldcatalog-seltext_m   = 'DATE '.&lt;/P&gt;&lt;P&gt;        fieldcatalog-col_pos     =  0.&lt;/P&gt;&lt;P&gt;          fieldcatalog-tabname = 'it_vbrp'.&lt;/P&gt;&lt;P&gt;            APPEND fieldcatalog TO fieldcatalog.&lt;/P&gt;&lt;P&gt;              CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         fieldcatalog-FIELDNAME   = 'VBELN'.&lt;/P&gt;&lt;P&gt;           fieldcatalog-seltext_m   = 'BILLING DOCUMENT NUMBER '.&lt;/P&gt;&lt;P&gt;             fieldcatalog-col_pos     =  1.&lt;/P&gt;&lt;P&gt;               fieldcatalog-tabname = 'it_vbrp'.&lt;/P&gt;&lt;P&gt;                 APPEND fieldcatalog TO fieldcatalog.&lt;/P&gt;&lt;P&gt;                   CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                fieldcatalog-FIELDNAME   = 'WERKS'.&lt;/P&gt;&lt;P&gt;                  fieldcatalog-seltext_m   = 'PLANT '.&lt;/P&gt;&lt;P&gt;                    fieldcatalog-col_pos     =  2.&lt;/P&gt;&lt;P&gt;                      fieldcatalog-tabname = 'it_vbrp'.&lt;/P&gt;&lt;P&gt;                        APPEND fieldcatalog TO fieldcatalog.&lt;/P&gt;&lt;P&gt;                          CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                      fieldcatalog-FIELDNAME   = 'LGORT'.&lt;/P&gt;&lt;P&gt;                         fieldcatalog-seltext_m   = 'STORAGE LOCATION '.&lt;/P&gt;&lt;P&gt;                             fieldcatalog-col_pos     =  3.&lt;/P&gt;&lt;P&gt;                                fieldcatalog-tabname = 'it_vbrp'.&lt;/P&gt;&lt;P&gt;                                    APPEND fieldcatalog TO fieldcatalog.&lt;/P&gt;&lt;P&gt;                                      CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                            fieldcatalog-FIELDNAME   = 'NETWR'.&lt;/P&gt;&lt;P&gt;                               fieldcatalog-seltext_m   = 'NET VALUE'.&lt;/P&gt;&lt;P&gt;                                  fieldcatalog-col_pos     =  4.&lt;/P&gt;&lt;P&gt;                                  FIELDCATALOG-DO_SUM = 'Y'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                      fieldcatalog-tabname = 'it_vbrp'.&lt;/P&gt;&lt;P&gt;                                         APPEND fieldcatalog TO fieldcatalog.&lt;/P&gt;&lt;P&gt;                                            CLEAR fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_layout.&lt;/P&gt;&lt;P&gt;  gd_layout-NO_INPUT = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;  GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).&lt;/P&gt;&lt;P&gt;  ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  form display_alv_report.&lt;/P&gt;&lt;P&gt;  gd_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_callback_program      = gd_repid&lt;/P&gt;&lt;P&gt;             is_layout               = gd_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat             = fieldcatalog[]&lt;/P&gt;&lt;P&gt;            i_save                  = 'X'&lt;/P&gt;&lt;P&gt;            tables&lt;/P&gt;&lt;P&gt;            t_outtab                = IT_VBRP&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;&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endform.                    " DISPLAY_ALV_REPORT&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;form data_retrieval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select FBUDA VBELN WERKS LGORT NETWR&lt;/P&gt;&lt;P&gt;  from vbrp&lt;/P&gt;&lt;P&gt;    into CORRESPONDING FIELDS OF TABLE IT_VBRP&lt;/P&gt;&lt;P&gt;      WHERE FBUDA in date and&lt;/P&gt;&lt;P&gt;  WERKS IN PLANT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;X = IT_VBRP-NETWR .&lt;/P&gt;&lt;P&gt;  ADD X TO Y.&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PLZ EXECUTE D CODE ONCE SO U WIL,GET A CLEAR IDEA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THANKS &lt;/P&gt;&lt;P&gt;VIJAY&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 11:29:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961469#M395211</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T11:29:15Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961470#M395212</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi vasanth&lt;/P&gt;&lt;P&gt;please go thru the code dat i had given...once u compile dat u can c d total in d netvalue field at d end of the page sinilarly i want total at d end of each storage location and at d end of each plant...please help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 11:35:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961470#M395212</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T11:35:12Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961471#M395213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Vijay,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;COpy this code and execute. I have made the change&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*REPORT ZSALES1.
DATA:X TYPE I,Y TYPE I,A TYPE I,B TYPE I.


TABLES:VBRP.
TYPE-POOLS:SLIS.
TYPES:BEGIN OF T_VBRP,
VBELN TYPE VBRP-VBELN,
FBUDA TYPE VBRP-FBUDA,
WERKS TYPE VBRP-WERKS,
LGORT TYPE VBRP-LGORT,
NETWR TYPE VBRP-NETWR,
Y TYPE I,
END OF T_VBRP.
DATA:      IT_SORT TYPE SLIS_T_SORTINFO_ALV,
      T_SORT TYPE SLIS_SORTINFO_ALV.


DATA:IT_VBRP TYPE STANDARD TABLE OF T_VBRP INITIAL SIZE 0 WITH HEADER
LINE ,
WA_VBRP TYPE T_VBRP.

SELECT-OPTIONS DATE FOR VBRP-FBUDA OBLIGATORY.
SELECT-OPTIONS:PLANT FOR VBRP-WERKS NO INTERVALS.
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID.




PERFORM DATA_RETRIEVAL.
PERFORM BUILD_FIELDCATALOG.
PERFORM SORT_FIELDS.

PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.



*---------------------------------------------------------------------*
*       FORM build_fieldcatalog                                       *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG.



  FIELDCATALOG-FIELDNAME = 'FBUDA'.
  FIELDCATALOG-SELTEXT_M = 'DATE '.
  FIELDCATALOG-COL_POS = 0.
  FIELDCATALOG-TABNAME = 'it_vbrp'.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR FIELDCATALOG.



  FIELDCATALOG-FIELDNAME = 'VBELN'.
  FIELDCATALOG-SELTEXT_M = 'BILLING DOCUMENT NUMBER '.
  FIELDCATALOG-COL_POS = 1.
  FIELDCATALOG-TABNAME = 'it_vbrp'.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR FIELDCATALOG.



  FIELDCATALOG-FIELDNAME = 'WERKS'.
  FIELDCATALOG-SELTEXT_M = 'PLANT '.
  FIELDCATALOG-COL_POS = 2.
  FIELDCATALOG-TABNAME = 'it_vbrp'.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR FIELDCATALOG.



  FIELDCATALOG-FIELDNAME = 'LGORT'.
  FIELDCATALOG-SELTEXT_M = 'STORAGE LOCATION '.
  FIELDCATALOG-COL_POS = 3.
  FIELDCATALOG-TABNAME = 'it_vbrp'.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR FIELDCATALOG.



  FIELDCATALOG-FIELDNAME = 'NETWR'.
  FIELDCATALOG-SELTEXT_M = 'NET VALUE'.
  FIELDCATALOG-COL_POS = 4.
  FIELDCATALOG-DO_SUM = 'Y'.

  FIELDCATALOG-TABNAME = 'it_vbrp'.
  APPEND FIELDCATALOG TO FIELDCATALOG.
  CLEAR FIELDCATALOG.


ENDFORM.



*---------------------------------------------------------------------*
*       FORM build_layout                                             *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM BUILD_LAYOUT.
  GD_LAYOUT-NO_INPUT = 'X'.
  GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM.



*---------------------------------------------------------------------*
*       FORM display_alv_report                                       *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT.
  GD_REPID = SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM = GD_REPID
            IS_LAYOUT          = GD_LAYOUT
            IT_FIELDCAT        = FIELDCATALOG[]
            IT_SORT            = IT_SORT[]
            I_SAVE             = 'X'
       TABLES
            T_OUTTAB           = IT_VBRP
       EXCEPTIONS
            PROGRAM_ERROR      = 1
            OTHERS             = 2.

  IF SY-SUBRC &amp;lt;&amp;gt; 0.
  ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT




*---------------------------------------------------------------------*
*       FORM data_retrieval                                           *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM DATA_RETRIEVAL.

  SELECT FBUDA VBELN WERKS LGORT NETWR
  FROM VBRP
  INTO CORRESPONDING FIELDS OF TABLE IT_VBRP
  WHERE FBUDA IN DATE AND
  WERKS IN PLANT.

  X = IT_VBRP-NETWR .
  ADD X TO Y.



ENDFORM.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  sort_fields
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM SORT_FIELDS.
  T_SORT-FIELDNAME = 'WERKS'.
  T_SORT-TABNAME = 'IT_VBRP'.
  T_SORT-SPOS = 1.
  T_SORT-UP = 'X'.
  T_SORT-SUBTOT = 'X'.
  APPEND T_SORT TO IT_SORT.
  CLEAR T_SORT.

  T_SORT-FIELDNAME = 'LGORT'.
  T_SORT-TABNAME = 'IT_VBRP'.
  T_SORT-SPOS = 2.
  T_SORT-UP = 'X'.
  APPEND T_SORT TO IT_SORT.
  CLEAR T_SORT.

ENDFORM.                    " sort_fields
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If useful reward.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 11:38:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961471#M395213</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T11:38:07Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961472#M395214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;thank u once again...at d same time am carefuly watching everything coz i shpould also develop on my skillss&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 12:24:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961472#M395214</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T12:24:04Z</dc:date>
    </item>
    <item>
      <title>Re: ALV SUB TOTAL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961473#M395215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;See the code changes in bold,&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA:X TYPE I,Y TYPE I,a type i,b type i.


TABLES:VBRP.
TYPE-POOLS:SLIS.
TYPES:BEGIN OF T_VBRP,
VBELN TYPE VBRP-VBELN,
FBUDA TYPE VBRP-FBUDA,
WERKS TYPE VBRP-WERKS,
LGORT TYPE VBRP-LGORT,
NETWR TYPE VBRP-NETWR,
Y TYPE I,
END OF T_VBRP.


DATA:IT_VBRP TYPE STANDARD TABLE OF T_VBRP INITIAL SIZE 0 WITH HEADER
LINE ,
WA_VBRP TYPE T_VBRP.

SELECT-OPTIONS DATE FOR VBRP-FBUDA OBLIGATORY.
SELECT-OPTIONS:PLANT FOR VBRP-WERKS NO INTERVALS.
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;lt;b&amp;gt; DATA:   wa_sortinfo TYPE slis_sortinfo_alv,&lt;/P&gt;&lt;P&gt;       i_sortcat TYPE slis_t_sortinfo_alv.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
 PERFORM sortcat_init CHANGING i_sortcat.

perform display_alv_report.

FORM build_fieldcatalog.

fieldcatalog-FIELDNAME = 'FBUDA'.
fieldcatalog-seltext_m = 'DATE '.
fieldcatalog-col_pos = 0.
fieldcatalog-tabname = 'it_vbrp'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-FIELDNAME = 'VBELN'.
fieldcatalog-seltext_m = 'BILLING DOCUMENT NUMBER '.
fieldcatalog-col_pos = 1.
fieldcatalog-tabname = 'it_vbrp'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-FIELDNAME = 'WERKS'.
fieldcatalog-seltext_m = 'PLANT '.
fieldcatalog-col_pos = 2.
fieldcatalog-tabname = 'it_vbrp'.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;lt;b&amp;gt;FIELDCATALOG-DO_SUM = 'X'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-FIELDNAME = 'LGORT'.
fieldcatalog-seltext_m = 'STORAGE LOCATION '.
fieldcatalog-col_pos = 3.
fieldcatalog-tabname = 'it_vbrp'.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;lt;b&amp;gt;FIELDCATALOG-DO_SUM = 'X'.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.

fieldcatalog-FIELDNAME = 'NETWR'.
fieldcatalog-seltext_m = 'NET VALUE'.
fieldcatalog-col_pos = 4.
FIELDCATALOG-DO_SUM = 'X'.

fieldcatalog-tabname = 'it_vbrp'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM.

FORM build_layout.
gd_layout-NO_INPUT = 'X'.
gd_layout-colwidth_optimize = 'X'.
GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM.&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;lt;b&amp;gt;it_sort                = i_sortcat&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;i_save = 'X'
tables
t_outtab = IT_VBRP
exceptions
program_error = 1
others = 2.

if sy-subrc &amp;lt;&amp;gt; 0.
endif.
endform. " DISPLAY_ALV_REPORT&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;FORM sortcat_init CHANGING i_sortcat TYPE slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_sortinfo.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-tabname = 'IT_VBRP'.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-spos = 1.            " First sort by this field.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-up = 'X'.            "   Ascending&lt;/P&gt;&lt;P&gt;  wa_sortinfo-subtot = 'X'.        " Subtotal at Name1&lt;/P&gt;&lt;P&gt;  APPEND wa_sortinfo TO i_sortcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_sortinfo.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-fieldname = 'LGORT'.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-tabname = 'IT_VBRP'.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-spos = 2.            " Sec sort by this field.&lt;/P&gt;&lt;P&gt;  wa_sortinfo-up = 'X'.            "   Ascending&lt;/P&gt;&lt;P&gt;  wa_sortinfo-subtot = 'X'.        " Subtotal at Name1&lt;/P&gt;&lt;P&gt;  APPEND wa_sortinfo TO i_sortcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sortcat_init&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;form data_retrieval.

select FBUDA VBELN WERKS LGORT NETWR
from vbrp
into CORRESPONDING FIELDS OF TABLE IT_VBRP
WHERE FBUDA in date and
WERKS IN PLANT.

X = IT_VBRP-NETWR .
ADD X TO Y.
endform.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if this works fine.&lt;/P&gt;&lt;P&gt;It will sort both on WERKS and LGORT.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2007 12:29:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-sub-total/m-p/1961473#M395215</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-02T12:29:54Z</dc:date>
    </item>
  </channel>
</rss>

