Anda di halaman 1dari 7

Display Subtotal and Total in ABAP ALV Grid

Posted in ABAP Tutorial on 14/11/2012

Use below steps to calculate totals in ABAP ALV.


1.

Build field catalog and set the field DO_SUM of field catalog to X for the field for which you want calculate
the totals.

2.

Pass field catalog to function module REUSE_ALV_GRID_DISPLAY.

TYPE-POOLS: slis.

" SLIS contains all the ALV data types

*&---------------------------------------------------------------------*
*& Data Declaration
*&---------------------------------------------------------------------*
DATA: it_sbook
TYPE TABLE OF sbook.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*Fetch data from the database
SELECT * FROM sbook INTO TABLE it_sbook.
*Build field catalog
wa_fieldcat-fieldname = 'CARRID'.
wa_fieldcat-seltext_m = 'Airline'.
APPEND wa_fieldcat TO it_fieldcat.

" Fieldname in the data table


" Column description in the output

wa_fieldcat-fieldname = 'CONNID'.
wa_fieldcat-seltext_m = 'Con. No.'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'FLDATE'.
wa_fieldcat-seltext_m = 'Date'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'BOOKID'.
wa_fieldcat-seltext_m = 'Book. ID'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'PASSNAME'.
wa_fieldcat-seltext_m = 'Passenger Name'.
APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'LOCCURAM'.
wa_fieldcat-seltext_m = 'Price'.
*Calculate Total for Price
wa_fieldcat-do_sum
= 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'LOCCURKEY'.
wa_fieldcat-seltext_m = 'Currency'.
APPEND wa_fieldcat TO it_fieldcat.
*Pass data and field catalog to ALV function module to display ALV list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat
= it_fieldcat
TABLES
t_outtab
= it_sbook
EXCEPTIONS
program_error = 1
OTHERS
= 2.
Output

Subtotal in ABAP ALV


To calculate subtotal in ALV, build sort catalog and set the field SUBTOT of sort catalog to X.

TYPE-POOLS: slis.

" SLIS contains all the ALV data types

*&---------------------------------------------------------------------*
*& Data Declaration

*&---------------------------------------------------------------------*
DATA: it_sbook

TYPE TABLE OF sbook.

DATA: it_fieldcat

TYPE slis_t_fieldcat_alv,

wa_fieldcat

TYPE slis_fieldcat_alv,

it_sort

TYPE slis_t_sortinfo_alv,

wa_sort

TYPE slis_sortinfo_alv..

*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.

*Fetch data from the database


SELECT * FROM sbook INTO TABLE it_sbook.

*Build field catalog


wa_fieldcat-fieldname

= 'CARRID'.

" Fieldname in the data table

wa_fieldcat-seltext_m

= 'Airline'.

" Column description in the output

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname

= 'CONNID'.

wa_fieldcat-seltext_m

= 'Con. No.'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname

= 'FLDATE'.

wa_fieldcat-seltext_m

= 'Date'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname

= 'BOOKID'.

wa_fieldcat-seltext_m

= 'Book. ID'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname

= 'PASSNAME'.

wa_fieldcat-seltext_m

= 'Passenger Name'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname

= 'LOCCURAM'.

wa_fieldcat-seltext_m

= 'Price'.

wa_fieldcat-do_sum

= 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname

= 'LOCCURKEY'.

wa_fieldcat-seltext_m

= 'Currency'.

APPEND wa_fieldcat TO it_fieldcat.


*Build sort catalog
wa_sort-spos

= 1.

wa_sort-fieldname = 'CARRID'.
wa_sort-up

= 'X'.

wa_sort-subtot

= 'X'.

APPEND wa_sort TO it_sort.

*Pass data and field catalog to ALV function module to display ALV list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat

= it_fieldcat

it_sort

= it_sort

TABLES
t_outtab

= it_sbook

EXCEPTIONS
program_error = 1
OTHERS
Output

= 2.

If you want to calculate subtotals for more fields, just add a record in sort field catalog for each field.

*Build sort catalog


wa_sort-spos

= 1.

wa_sort-fieldname = 'CARRID'.
wa_sort-up

= 'X'.

wa_sort-subtot

= 'X'.

APPEND wa_sort TO it_sort.

wa_sort-spos

= 2.

wa_sort-fieldname = 'CONNID'.
wa_sort-up

= 'X'.

wa_sort-subtot

= 'X'.

APPEND wa_sort TO it_sort.


Output

Anda mungkin juga menyukai