Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Adding sub total icon in ALVs

former_member206396
Active Participant
0 Kudos

hai SDNs,

how to add sub total icon in ALV output list.

i have used reuse_alv_grid_display. so i am unable to add sub total button. i am able to add total button(grand)

could any pls help me out.

waiting for reply

thanking you,

thanks

Rama krishna S

4 REPLIES 4

Former Member
0 Kudos

sample code is:::

TYPE-POOLS : SLIS.

************************************************************************

  • T A B L E S

************************************************************************

TABLES : EKKO. " Purchasing Document Header

************************************************************************

  • D A T A - D E C L A R A T I O N

************************************************************************

TYPES: BEGIN OF X_EKKO ,

EBELN LIKE EKKO-EBELN,

END OF X_EKKO.

TYPES: BEGIN OF X_EKPO ,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

END OF X_EKPO.

TYPES: BEGIN OF X_EKET,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

CHARG LIKE EKET-CHARG,

END OF X_EKET.

TYPES: BEGIN OF X_FINAL ,

EBELN LIKE EKPO-EBELN,

MATNR LIKE EKPO-MATNR,

CHARG LIKE EKET-CHARG,

EBELP LIKE EKPO-EBELP,

MENGE LIKE EKPO-MENGE,

END OF X_FINAL.

DATA: IT_EKKO TYPE STANDARD TABLE OF X_EKKO WITH HEADER LINE.

DATA: IT_EKPO TYPE STANDARD TABLE OF X_EKPO WITH HEADER LINE.

DATA: IT_EKET TYPE STANDARD TABLE OF X_EKET WITH HEADER LINE.

DATA: IT_FINAL TYPE STANDARD TABLE OF X_FINAL WITH HEADER LINE.

***ALV Field catalog

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

***ALV Events

DATA : IT_EVENT TYPE SLIS_ALV_EVENT.

DATA : IT_EVENT1 TYPE SLIS_T_EVENT.

DATA : GT_SORT TYPE SLIS_T_SORTINFO_ALV,

GT_SORT1 TYPE SLIS_SORTINFO_ALV,

IT_LAYOUT TYPE SLIS_LAYOUT_ALV.

***ALV TOP-OF-PAGE

DATA : IT_HEADER1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE .

DATA : IT_HEADER TYPE SLIS_LISTHEADER.

DATA : V_REPID LIKE SY-REPID.

************************************************************************

  • S E L E C T I O N - S C R E E N

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 .

SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.

SELECTION-SCREEN END OF BLOCK B1.

************************************************************************

  • S T A R T - O F - S E L E C T I O N

************************************************************************

START-OF-SELECTION.

PERFORM GETDATA.

PERFORM FIELDCATALOG USING IT_FIELDCAT[].

PERFORM SUB_SORT.

PERFORM SUB_LAYOUT.

************************************************************************

  • END - O F - S E L E C T I O N

************************************************************************

END-OF-SELECTION.

IF NOT IT_FINAL[] IS INITIAL.

PERFORM DISPDATA.

ELSE.

MESSAGE I000(Z1).

ENDIF.

&----


*& Form GETDATA

&----


  • PERFORM TO GET DATA FROM EKPO TABLE

----


FORM GETDATA .

SELECT EBELN

INTO TABLE IT_EKKO

FROM EKKO

WHERE EBELN IN S_EBELN.

IF SY-SUBRC = 0.

SORT IT_EKKO BY EBELN.

ENDIF.

IF NOT IT_EKKO[] IS INITIAL.

SELECT EBELN

EBELP

MATNR

MENGE

INTO TABLE IT_EKPO

FROM EKPO

FOR ALL ENTRIES IN IT_EKKO

WHERE EBELN = IT_EKKO-EBELN.

IF SY-SUBRC = 0.

SELECT EBELN

EBELP

CHARG

INTO TABLE IT_EKET

FROM EKET

FOR ALL ENTRIES IN IT_EKPO

WHERE EBELN = IT_EKPO-EBELN AND

EBELP = IT_EKPO-EBELP.

ENDIF.

ENDIF.

LOOP AT IT_EKPO.

IT_FINAL-EBELN = IT_EKPO-EBELN.

IT_FINAL-EBELP = IT_EKPO-EBELP.

IT_FINAL-MATNR = IT_EKPO-MATNR.

IT_FINAL-MENGE = IT_EKPO-MENGE.

READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN

EBELP = IT_EKPO-EBELP.

IF SY-SUBRC = 0.

IT_FINAL-CHARG = IT_EKET-CHARG.

CLEAR IT_EKET.

ENDIF.

APPEND IT_FINAL.

CLEAR IT_FINAL.

ENDLOOP.

ENDFORM. " GETDATA

&----


*& Form DISPDATA

&----


  • PERFORM TO DISPLAY DATA

----


FORM DISPDATA .

V_REPID = SY-REPID.

ENDFORM. " DISPDATA

&----


*& Form FIELDCATALOG

&----


  • PEROFRM TO POPULATE FIELD CATALOG

----


FORM FIELDCATALOG USING P_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : T_FIELD_CAT TYPE SLIS_FIELDCAT_ALV.

DATA : V_CNT TYPE I.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'EBELN'.

T_FIELD_CAT-OUTPUTLEN = 18.

T_FIELD_CAT-SELTEXT_L = 'PO DOC NUMBER'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'MATNR'.

T_FIELD_CAT-OUTPUTLEN = 18.

T_FIELD_CAT-SELTEXT_L = 'MATERIAL NUMBER'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'CHARG'.

T_FIELD_CAT-OUTPUTLEN = 10.

T_FIELD_CAT-SELTEXT_L = 'BATCH'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'EBELP'.

T_FIELD_CAT-OUTPUTLEN = 14.

T_FIELD_CAT-SELTEXT_L = 'LINE ITEM NO'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

V_CNT = V_CNT + 1.

T_FIELD_CAT-COL_POS = V_CNT.

T_FIELD_CAT-FIELDNAME = 'MENGE'.

T_FIELD_CAT-DO_SUM = 'X'.

T_FIELD_CAT-OUTPUTLEN = 18.

T_FIELD_CAT-SELTEXT_L = 'PO QUANTITY'.

APPEND T_FIELD_CAT TO IT_FIELDCAT.

CLEAR T_FIELD_CAT.

ENDFORM. " FIELDCATALOG

&----


*& Form SUB_SORT

&----


  • PERFORM TO SORT

----


FORM SUB_SORT .

DATA L_CNT TYPE I.

L_CNT = L_CNT + 1.

GT_SORT1-FIELDNAME = 'EBELN'.

GT_SORT1-SPOS = L_CNT.

GT_SORT1-UP = 'X'.

GT_SORT1-SUBTOT = 'X'.

APPEND GT_SORT1 TO GT_SORT.

CLEAR GT_SORT1.

L_CNT = L_CNT + 1.

GT_SORT1-FIELDNAME = 'MATNR'.

GT_SORT1-SPOS = L_CNT.

GT_SORT1-UP = 'X'.

GT_SORT1-SUBTOT = 'X'.

APPEND GT_SORT1 TO GT_SORT.

CLEAR GT_SORT1.

L_CNT = L_CNT + 1.

GT_SORT1-FIELDNAME = 'CHARG'.

GT_SORT1-SPOS = L_CNT.

GT_SORT1-UP = 'X'.

GT_SORT1-SUBTOT = 'X'.

APPEND GT_SORT1 TO GT_SORT.

CLEAR GT_SORT1.

ENDFORM. " SUB_SORT

&----


*& Form SUB_LAYOUT

&----


  • text

----


FORM SUB_LAYOUT .

IT_LAYOUT-NO_TOTALLINE = ''.

IT_LAYOUT-SUBTOTALS_TEXT = 'SUB TOTAL'.

IT_LAYOUT-TOTALS_TEXT = 'GRAND TOTAL'.

ENDFORM. " SUB_LAYOUT

Former Member
0 Kudos

If you have enabled subtotalling using te SORT table , then the SUBTOTAL button will appear on the toolbar.

Regards,

Ravi

Note :Please mark the helpful answers

MariaJoãoRocha
Contributor
0 Kudos

Hi,

SAP puts subtotal button automatically, you just have to press the button total first.

Best Regards,

Maria João Rocha