REPORT  ZALV_WITH_TOTALS_SUBTOT.

TYPE-POOLS SLIS .

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 .

START-OF-SELECTION .
  PERFORM GET_DATA .
  PERFORM CREATE_FCAT.
  PERFORM CALC_SUBTOT.

END-OF-SELECTION .
  PERFORM DISP_ALV .


FORM GET_DATA .
  SELECT * FROM VBAP
      INTO CORRESPONDING FIELDS OF TABLE I_VBAP
       .
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 <> 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
 
Serkan AKKAVAK
Bilgisayar Mühendisi
serkurumsal@yandex.com