ALV with totals and sub totals in SAP ABAP

Working with totals and subtotals in SAP ALV reports using SAP ABAP, display totals and subtotals in ALV report

+ -

To calculate totals and sub-totals in ALV we need to sort the internal table in ascending order and we need to set SUBTOT = 'X' of SORT in ALV.

Layout:

Layout is a structure which is used to decorate or embellish the output of ALV Report.

Requirement: Display list of sales order for sales order range with totals and subtotals of price

Input screen

 Alv with totals and subtotals

Output screen (with totals and subtotals).

 Alv with totals and subtotals

Please follow previous lesson steps to create a fieldcatlog in ALV, in addition to that we will be adding additional properties hotspot, editable to output fields using layout options.

The below code is used to display totals and subtotals in ALV.

DATA : I_SORT TYPE SLIS_T_SORTINFO_ALV . 
DATA : WA_SORT LIKE LINE OF I_SORT . 
WA_SORT-FIELDNAME = 'VBELN '. 
WA_SORT-UP = 'X'. 
WA_SORT-SUBTOT = 'X '.

APPEND WA_SORT TO I_SORT .

Full referance code for displaying totals and subtotals in ALV

REPORT  ZALV_WITH_TOTALS_SUBTOT.
TYPE-POOLS SLIS .
tables : vbap.
TYPES : BEGIN OF TY_VBAP,
        VBELN TYPE VBAP-VBELN,
        POSNR TYPE VBAP-POSNR,
        MATNR TYPE VBAP-MATNR,
        NETWR TYPE VBAP-NETWR,
      END OF TY_VBAP.
DATA : I_VBAP TYPE TABLE OF TY_VBAP .
DATA : WA_VBAP TYPE TY_VBAP .

DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT LIKE LINE OF I_FCAT .
DATA : I_SORT TYPE SLIS_T_SORTINFO_ALV .
DATA : WA_SORT LIKE LINE OF I_SORT .
select-options : s_vbeln for vbap-vbeln.
START-OF-SELECTION .
  PERFORM GET_DATA .
  PERFORM CREATE_FCAT.
  PERFORM CALC_SUBTOT.

END-OF-SELECTION .
  PERFORM DISP_ALV .
FORM GET_DATA .
  SELECT VBELN POSNR MATNR NETWR FROM VBAP
      INTO TABLE I_VBAP where vbeln in s_vbeln
       .
ENDFORM.                    " GET_DATA
FORM DISP_ALV .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = SY-REPID
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
     IT_FIELDCAT                       = I_FCAT
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
     IT_SORT                           = I_SORT
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = I_VBAP
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
            .
  IF SY-SUBRC NE 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



ENDFORM.                    " DISP_ALV
FORM CREATE_FCAT .
  WA_FCAT-COL_POS = '1' .
  WA_FCAT-FIELDNAME = 'VBELN' .
  WA_FCAT-TABNAME = 'I_VBAP' .
  WA_FCAT-SELTEXT_M = 'SDNO' .
  WA_FCAT-KEY = 'X' .
  APPEND WA_FCAT TO I_FCAT .
  CLEAR WA_FCAT .

  WA_FCAT-COL_POS = '2' .
  WA_FCAT-FIELDNAME = 'POSNR' .
  WA_FCAT-TABNAME = 'I_VBAP' .
  WA_FCAT-SELTEXT_M = 'ITEMNO' .
*  WA_FCAT-NO_OUT = 'X' .
  WA_FCAT-HOTSPOT = 'X' .
  APPEND WA_FCAT TO I_FCAT .
  CLEAR WA_FCAT .

  WA_FCAT-COL_POS = '3' .
  WA_FCAT-FIELDNAME = 'MATNR' .
  WA_FCAT-TABNAME = 'I_VBAP' .
  WA_FCAT-SELTEXT_M = 'MATERIALNO' .
*  WA_FCAT-EDIT = 'X' .
  APPEND WA_FCAT TO I_FCAT .
  CLEAR WA_FCAT .

  WA_FCAT-COL_POS = '4' .
  WA_FCAT-FIELDNAME = 'NETWR' .
  WA_FCAT-TABNAME = 'I_VBAP' .
  WA_FCAT-SELTEXT_M = 'NETPRICE' .
  WA_FCAT-EMPHASIZE = 'C610'.
  WA_FCAT-DO_SUM = 'X' .
  APPEND WA_FCAT TO I_FCAT .
  CLEAR WA_FCAT .

ENDFORM.                    " CREATE_FCAT
FORM CALC_SUBTOT .
  WA_SORT-FIELDNAME = 'VBELN '.
  WA_SORT-UP = 'X'.
  WA_SORT-SUBTOT = 'X '.
  APPEND WA_SORT TO I_SORT .
ENDFORM.                    " CALC_SUBTOT

Learner Questions


No Questions by learners, be first one to ask ..!!

    Please Sign in to ask a question

    Was this lesson helpful to you? Yes No 29 People out of 31 think this lesson helpful


    Lesson Navigation

    ←Previous Chapter
    Next Chapter →