cancel
Showing results for 
Search instead for 
Did you mean: 

How to get total text in ALV grid display

Former Member
0 Kudos

Hi All,

I am getting Sub total text, by using the event slis_ev_subtotal_text, but I am not getting Grand Total Text in ALV report.

I am using FM : Reuse_alv_grid_display.

i already searched in sdn but i did not find the solution.

Please advise me how to get the total text.

Thanks ,

Raja.

Accepted Solutions (1)

Accepted Solutions (1)

former_member230486
Contributor
0 Kudos

Hi Raja,

You just follow the below code,

TYPE-POOLS:SLIS.

DATA V1 TYPE EKKO-EBELN.
SELECT-OPTIONS:S_EBELN FOR V1.
DATA:V2 TYPE CHAR30 VALUE 'FS_FINAL-LIFNR',
      V3 TYPE LIFNR.

TYPES:BEGIN OF TY_EKKO,
         EBELN TYPE EBELN,
         BUKRS TYPE BUKRS,
         LIFNR TYPE LIFNR,
       END OF TY_EKKO.

TYPES:BEGIN OF TY_EKPO,
         EBELN TYPE EBELN,
         EBELP TYPE EBELP,
         MATNR TYPE MATNR,
         NETPR TYPE BPREI,
       END OF TY_EKPO.

TYPES:BEGIN OF TY_FINAL,
         SEL   TYPE CHAR1,
         TOTAL TYPE CHAR20,
         EBELN TYPE EBELN,
         EBELN1 TYPE EBELN,
         BUKRS TYPE BUKRS,
         LIFNR TYPE LIFNR,
         EBELP TYPE EBELP,
         MATNR TYPE MATNR,
         NETPR TYPE BPREI,
         COLOR TYPE SLIS_T_SPECIALCOL_ALV,
      END OF TY_FINAL.

TYPES:TT_EKKO TYPE STANDARD TABLE OF TY_EKKO,
       TT_EKPO TYPE STANDARD TABLE OF TY_EKPO,
       TT_FINAL TYPE STANDARD TABLE OF TY_FINAL.

DATA:IT_EKKO TYPE TT_EKKO,
      IT_EKPO TYPE TT_EKPO,
      IT_FINAL TYPE TT_FINAL.

DATA:FS_EKKO TYPE TY_EKKO,
      FS_EKPO TYPE TY_EKPO,
      FS_FINAL TYPE TY_FINAL.

DATA:IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
      FS_FCAT LIKE LINE OF IT_FCAT.

DATA:IT_SORT TYPE SLIS_T_SORTINFO_ALV,
      FS_SORT LIKE LINE OF IT_SORT.

DATA:SUB_TEXT TYPE SLIS_SUBTOT_TEXT.

DATA:IT_TOOLBAR TYPE SLIS_T_EXTAB,
      FS_TOOLBAR LIKE LINE OF IT_TOOLBAR.

DATA FS_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA:IT_EVENT TYPE SLIS_T_EVENT,
      FS_EVENT LIKE LINE OF IT_EVENT.

DATA FS_SCOL TYPE SLIS_SPECIALCOL_ALV.

FS_EVENT-NAME = 'SUBTOTAL_TEXT'.
FS_EVENT-FORM = 'ZSUBTOT'.
APPEND FS_EVENT TO IT_EVENT.
CLEAR FS_EVENT.

FS_LAYOUT-NO_TOTALLINE = 'X'.
FS_LAYOUT-SUBTOTALS_TEXT = 'Sub Total'.
FS_LAYOUT-BOX_FIELDNAME  = 'SEL'.

PERFORM FILL_FCAT USING '0' 'TOTAL'  ''              SPACE 'X' SPACE.
PERFORM FILL_FCAT USING '1' 'EBELN'  'PURCHASE.DOC'  SPACE 'X' SPACE.
PERFORM FILL_FCAT USING '1' 'EBELN1' 'PURCHASE.DOC'  SPACE SPACE SPACE.
PERFORM FILL_FCAT USING '2' 'EBELP'  'ITEM'          SPACE SPACE SPACE.
PERFORM FILL_FCAT USING '3' 'MATNR'  'MATERIAL NO'   SPACE SPACE SPACE.
PERFORM FILL_FCAT USING '4' 'BUKRS'  'CCODE'         SPACE SPACE SPACE.
PERFORM FILL_FCAT USING '5' 'LIFNR'  'VENDOR'        SPACE SPACE 'X'.
PERFORM FILL_FCAT USING '6' 'NETPR'  'NETPRICE'      'X'   SPACE SPACE.

SELECT EBELN
        BUKRS
        LIFNR
   FROM EKKO
   INTO TABLE IT_EKKO
  WHERE EBELN IN S_EBELN.

IF IT_EKKO IS NOT INITIAL.
   SELECT EBELN
          EBELP
          MATNR
          NETPR
     FROM EKPO
     INTO TABLE IT_EKPO
      FOR ALL ENTRIES IN IT_EKKO
    WHERE EBELN = IT_EKKO-EBELN.
ENDIF.

LOOP AT IT_EKPO INTO FS_EKPO.
   FS_FINAL-TOTAL = 'Grand Total'.
   FS_FINAL-EBELN = FS_EKPO-EBELN.
   FS_FINAL-EBELN1 = FS_EKPO-EBELN.
   FS_FINAL-EBELP = FS_EKPO-EBELP.
   FS_FINAL-MATNR = FS_EKPO-MATNR.
   FS_FINAL-NETPR = FS_EKPO-NETPR.

READ TABLE IT_EKKO
       INTO FS_EKKO
       WITH KEY EBELN = FS_EKPO-EBELN.
   FS_FINAL-BUKRS = FS_EKKO-BUKRS.
   FS_FINAL-LIFNR = FS_EKKO-LIFNR.
APPEND FS_FINAL TO IT_FINAL.
CLEAR FS_FINAL.
ENDLOOP.

FS_SORT-SPOS      = '00'.
FS_SORT-FIELDNAME = 'TOTAL'.
FS_SORT-UP = 'X'.
FS_SORT-SUBTOT    = 'X'.
APPEND FS_SORT TO IT_SORT.
CLEAR FS_SORT.

FS_SORT-SPOS      = '01'.
FS_SORT-FIELDNAME = 'EBELN'.
FS_SORT-UP = 'X'.
FS_SORT-SUBTOT    = 'X'.
APPEND FS_SORT TO IT_SORT.
CLEAR FS_SORT.

FS_TOOLBAR-FCODE = '&ALL'.
APPEND FS_TOOLBAR TO IT_TOOLBAR.
FS_LAYOUT-COLTAB_FIELDNAME = 'COLOR'.

LOOP AT IT_FINAL INTO FS_FINAL.
  IF FS_FINAL-NETPR LE 1500.
    FS_SCOL-FIELDNAME = 'NETPR'.
    FS_SCOL-COLOR-COL = 5.
    FS_SCOL-COLOR-INV = 1.
    FS_SCOL-COLOR-INT = 0.
MODIFY IT_FINAL FROM FS_FINAL TRANSPORTING COLOR.
  ENDIF.
ENDLOOP.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    I_PROGRAM_NAME               = SY-CPROG
    I_INTERNAL_TABNAME           = 'FS_FINAL'
    I_INCLNAME                   = SY-CPROG
   CHANGING
     CT_FIELDCAT                  = IT_FCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM                = SY-CPROG
    I_CALLBACK_PF_STATUS_SET          = 'PF_STATUS_SET'
    I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
    IS_LAYOUT                         = FS_LAYOUT
    IT_FIELDCAT                       = IT_FCAT
*   IT_EXCLUDING                      = IT_TOOLBAR
    IT_SORT                           = IT_SORT
    IT_EVENTS                         = IT_EVENT
   TABLES
     T_OUTTAB                          = IT_FINAL.


FORM FILL_FCAT  USING COL_POS FIELDNAME SELTEXT_M DO_SUM NO_OUT EDIT.
   FS_FCAT-COL_POS   = COL_POS.
   FS_FCAT-FIELDNAME = FIELDNAME.
   FS_FCAT-SELTEXT_M = SELTEXT_M.
   FS_FCAT-DO_SUM    = DO_SUM.
   FS_FCAT-NO_OUT    = NO_OUT.
   FS_FCAT-EDIT      = EDIT.
   APPEND FS_FCAT TO IT_FCAT.
   CLEAR FS_FCAT.
ENDFORM.                    " FILL_FCAT


FORM ZSUBTOT USING  I_LISTHEAD STRUCTURE FS_FINAL
                     I_SUBTOTAL TYPE SLIS_SUBTOT_TEXT.
   READ TABLE IT_SORT INTO FS_SORT WITH KEY FIELDNAME = 'EBELN'.
   IF SY-SUBRC = 0.
     IF  I_SUBTOTAL-CRITERIA = 'EBELN'.
       I_SUBTOTAL-DISPLAY_TEXT_FOR_SUBTOTAL = 'Sub total'.
     ENDIF.
   ENDIF.
ENDFORM.                    "subtotal

FORM PF_STATUS_SET USING X TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV'.
ENDFORM.

FORM USER_COMMAND USING A LIKE SY-UCOMM B TYPE SLIS_SELFIELD.
IF A = 'SAVE'.
MODIFY IT_FINAL FROM FS_FINAL INDEX B-TABINDEX.
ENDIF.
ENDFORM.

Answers (1)

Answers (1)

Former Member
0 Kudos

Thank u .

issue is resolved.