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: 

ALV-Need to display total in top/first line!!!

Former Member
0 Kudos

Hi,

i have 3 numerical fields in my ALV output. I need to display the total in top/first line in output and download the same in excel into local system.if possible send me the sample code to how to do it.

Regards,

Nandha.

1 ACCEPTED SOLUTION

hymavathi_oruganti
Active Contributor
0 Kudos

as sateesh suggested , u can use

TOTAL_BEFORE_ITEMS IN SLIS_ALV_LAYOUT AS 'X'.

and do_sum = 'X' IN SLIS_FIELDCAT_ALV.

U CAN DOWNLOAD TO EXCEL THROUGH MENU OPTION

5 REPLIES 5

Former Member
0 Kudos

Hi,

Check out the following link.

http://www.geocities.com/mpioud/Abap_programs.html

Thanks.

If this helps you reward with points.

Former Member
0 Kudos

hi ,

its very simple..

use TOTALS_BEFORE_ITEMS of the layout.. like

GS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.

regards

satesh

Former Member
0 Kudos
TABLES : BSEG , BKPF.
TABLES: SSCRFIELDS.
TABLES: ITCPO.

DATA :FLAG TYPE I, MAINTAIN TYPE I,
      FLAG1 TYPE I,
      FLAG2 TYPE I,
      FLAG3 TYPE I.
DATA :BEGIN OF ITAB_BKPF OCCURS 0,
      BUKRS LIKE BKPF-BUKRS,
      GJAHR LIKE BKPF-GJAHR,
      BELNR LIKE BKPF-BELNR,
      BLART LIKE BKPF-BLART,
      BUDAT LIKE BKPF-BUDAT,
END OF ITAB_BKPF.

DATA :BEGIN OF ITAB_BSEG OCCURS 0,
      BUKRS LIKE BSEG-BUKRS,
      GJAHR LIKE BSEG-GJAHR,
      BELNR LIKE BSEG-BELNR,
      BUZEI LIKE BSEG-BUZEI,
      BSCHL LIKE BSEG-BSCHL,
      HKONT LIKE BSEG-HKONT,
      DMBTR LIKE BSEG-DMBTR,
      MWSKZ LIKE BSEG-MWSKZ,
      ZUONR LIKE BSEG-ZUONR,
      KOSTL LIKE BSEG-KOSTL,
      FISTL LIKE BSEG-FISTL,
      FIPOS LIKE BSEG-FIPOS,
      SGTXT LIKE BSEG-SGTXT,
END OF ITAB_BSEG.

DATA BEGIN OF ITAB_BKPF_BSEG OCCURS 0.
  INCLUDE STRUCTURE ZBKPF_BSEG.
DATA END OF ITAB_BKPF_BSEG.

*DATA ITAB_BKPF_BSEG LIKE TABLE OF ZITAB_BKPF_BSEG WITH HEADER LINE.

DATA i_print LIKE TABLE OF ITCPO WITH HEADER LINE.

TYPE-POOLS : SLIS , kkblo.

DATA:TEXT2(30) VALUE 'Voucher Print',
     GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
     CT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
     IT_SORT TYPE SLIS_T_SORTINFO_ALV,
     WA_SORT TYPE SLIS_SORTINFO_ALV,
     WA_SUBT LIKE SLIS_EV_SUBTOTAL_TEXT,
     WA_I_EVENT TYPE SLIS_ALV_EVENT,
     TEMP_CAT TYPE SLIS_FIELDCAT_ALV
.

DATA : TEXT2538(16) VALUE 'Voucher Printing'.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_BUKRS LIKE BKPF-BUKRS OBLIGATORY.
"Company code

SELECT-OPTIONS : S_BELNR FOR BKPF-BELNR MODIF ID M01.
"Accounting Doc No
PARAMETERS: P_GJAHR LIKE BKPF-GJAHR MODIF ID M02.
"Fiscal year

SELECT-OPTIONS:  S_BLART FOR BKPF-BLART MODIF ID M03,
                                          "Document type
                 S_BUDAT FOR BKPF-BUDAT MODIF ID M04.
"Posting date

SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.

  IF S_BELNR IS NOT INITIAL.
    FLAG = 1.
  ENDIF.

  IF S_BLART IS NOT INITIAL.
    FLAG1 = 1.
  ENDIF.

  IF P_GJAHR IS NOT INITIAL.
    FLAG2 = 1.
  ENDIF.

  IF S_BUDAT IS NOT INITIAL.
    FLAG3 = 1.
  ENDIF.
  SELECT
      BUKRS
      GJAHR
      BELNR
    INTO CORRESPONDING FIELDS OF TABLE ITAB_BKPF
    FROM BKPF
    WHERE BUKRS EQ P_BUKRS
  .

  IF SY-SUBRC NE 0.
    MESSAGE E000(ZPROJ).
  ENDIF.

  IF FLAG NE 0.
    DELETE ITAB_BKPF WHERE
    NOT ( BELNR IN S_BELNR AND GJAHR EQ P_GJAHR )
    .
  ENDIF.

  IF FLAG1 NE 0.
    DELETE ITAB_BKPF WHERE
    NOT ( BLART IN S_BLART AND BUDAT IN S_BUDAT )
    .
  ENDIF.

  IF FLAG2 NE 0.
    DELETE ITAB_BKPF WHERE
    NOT ( GJAHR EQ P_GJAHR )
    .
  ENDIF.

  IF FLAG3 NE 0.
    DELETE ITAB_BKPF WHERE
    NOT ( BUDAT IN S_BUDAT )
    .
  ENDIF.
  SELECT
        BUKRS
        GJAHR
        BELNR
        BUZEI
        BSCHL
        HKONT
        DMBTR
        MWSKZ
        ZUONR
        KOSTL
        FISTL
        FIPOS
        SGTXT
     FROM BSEG
     INTO TABLE ITAB_BSEG
     FOR ALL ENTRIES IN ITAB_BKPF
       WHERE
          BUKRS EQ P_BUKRS AND
          BELNR EQ ITAB_BKPF-BELNR AND
          GJAHR EQ ITAB_BKPF-GJAHR
     .

  LOOP AT ITAB_BKPF.
    LOOP AT ITAB_BSEG WHERE BUKRS EQ ITAB_BKPF-BUKRS AND
                          BELNR EQ ITAB_BKPF-BELNR AND
                          GJAHR EQ ITAB_BKPF-GJAHR.
      MOVE-CORRESPONDING ITAB_BSEG TO ITAB_BKPF_BSEG.

*    MOVE-CORRESPONDING ITAB_BKPF TO ITAB_BKPF_BSEG.

      APPEND ITAB_BKPF_BSEG.
    ENDLOOP.
  ENDLOOP.

LOOP AT ITAB_BKPF_BSEG.
  ITAB_BKPF_BSEG-ZMENG = ITAB_BKPF_BSEG-DMBTR.
  MODIFY ITAB_BKPF_BSEG TRANSPORTING zmeng.
ENDLOOP.

  PERFORM CHANGE_CATALOG.
  PERFORM ALV_DISPLAY.

FORM CHANGE_CATALOG .
  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'BUKRS'.
  TEMP_CAT-SELTEXT_L = 'Company Code'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 30.
  TEMP_CAT-HOTSPOT = 'X'.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'BELNR'.
  TEMP_CAT-SELTEXT_L = 'Document No.'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-HOTSPOT = 'X'.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'GJAHR'.
  TEMP_CAT-SELTEXT_L = 'Fiscal Year'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  TEMP_CAT-HOTSPOT = 'X'.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'BUZEI'.
  TEMP_CAT-SELTEXT_L = 'Item'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 5.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'BSCHL'.
  TEMP_CAT-SELTEXT_L = 'Posting Key'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'HKONT'.
  TEMP_CAT-SELTEXT_L = 'Account'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'DMBTR'.
  TEMP_CAT-SELTEXT_L = 'Amount'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  TEMP_CAT-DO_SUM = 'X'.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'MWSKZ'.
  TEMP_CAT-SELTEXT_L = 'Tax'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'ZUONR'.
  TEMP_CAT-SELTEXT_L = 'Assignment'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.

  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'KOSTL'.
  TEMP_CAT-SELTEXT_L = 'Cost Center'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'FISTL'.
  TEMP_CAT-SELTEXT_L = 'Fund Center'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'FIPOS'.
  TEMP_CAT-SELTEXT_L = 'Commitment Item'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  CLEAR TEMP_CAT.
  TEMP_CAT-FIELDNAME  = 'SGTXT'.
  TEMP_CAT-SELTEXT_L = 'Text'.
  TEMP_CAT-TABNAME = 'ITAB_BKPF_BSEG'.
  TEMP_CAT-DDICTXT = 'L'.
  TEMP_CAT-OUTPUTLEN = 15.
  APPEND TEMP_CAT TO CT_FIELDCAT.

  GS_LAYOUT-ZEBRA = 'X'.
<b>GS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.</b>
data : text like slis_ev_subtotal_text value 'total'.
gs_layout-subtotals_text = text.
*gs_layout-totals_only = 'X'.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'BUKRS'.
  WA_SORT-SPOS      = 1.
  WA_SORT-UP = 'X'.
*wa_sort-group = '*'.
  APPEND WA_SORT TO IT_SORT.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'BELNR'.
  WA_SORT-SPOS      = 2.
  WA_SORT-SUBTOT = 'X'.
  WA_SORT-UP = 'X'.
  APPEND WA_SORT TO IT_SORT.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'GJAHR'.
  WA_SORT-SPOS      = 3.
  WA_SORT-SUBTOT = 'X'.
  WA_SORT-UP = 'X'.
  APPEND WA_SORT TO IT_SORT.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'DMBTR'.
  WA_SORT-SPOS      = 4.
  APPEND WA_SORT TO IT_SORT.

  gs_layout-subtotals_text = 'total'.

ENDFORM.
FORM ALV_DISPLAY.
  CALL FUNCTION 'REUSE_ALV_LIST_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        = 'USER_COMMAND'
*   I_STRUCTURE_NAME               =
     IS_LAYOUT                      = GS_LAYOUT
     IT_FIELDCAT                    = CT_FIELDCAT
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
     IT_SORT                        = IT_SORT[]
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_DEFAULT                      = 'X'
     I_SAVE                         = 'A'
*   IS_VARIANT                     =
*   IT_EVENTS                      =
*   IT_EVENT_EXIT                  =
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_SCREEN_START_COLUMN          = 0
*   I_SCREEN_START_LINE         0   = 0
*   I_SCREEN_END_COLUMN            = 0
*   I_SCREEN_END_LINE              = 0
*   IR_SALV_LIST_ADAPTER           =
*   IT_EXCEPT_QINFO                =
*   I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
    TABLES
      T_OUTTAB                       = ITAB_BKPF_BSEG
* 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.                    "ALV_DISPLAY

*i_calLback_user_command = 'USER_COMMAND'.

FORM USER_COMMAND
  USING UCOMM LIKE SY-UCOMM
  SELFIELD TYPE SLIS_SELFIELD.

  DATA wa LIKE LINE OF ITAB_BKPF_BSEG.
  DATA itab LIKE TABLE OF ITAB_BKPF_BSEG WITH HEADER LINE.
  READ TABLE ITAB_BKPF_BSEG index SELFIELD-TABINDEX INTO wa.

  APPEND ITAB_BKPF_BSEG TO ITAB.
    ENDLOOP.

CALL FUNCTION '/1BCDWB/SF00000204'
* EXPORTING
*   ARCHIVE_INDEX              =
*   ARCHIVE_INDEX_TAB          =
*   ARCHIVE_PARAMETERS         =
*   CONTROL_PARAMETERS         = i_ctrl
*   MAIL_APPL_OBJ              =
*   MAIL_RECIPIENT             =
*   MAIL_SENDER                =
*   OUTPUT_OPTIONS             = i_print
*   USER_SETTINGS              = 'X'
* IMPORTING
*   DOCUMENT_OUTPUT_INFO       =
*   JOB_OUTPUT_INFO            =
*   JOB_OUTPUT_OPTIONS         =
  TABLES
    ITAB_BKPF_BSEG             = ITAB
* EXCEPTIONS
*   FORMATTING_ERROR           = 1
*   INTERNAL_ERROR             = 2
*   SEND_ERROR                 = 3
*   USER_CANCELED              = 4
*   OTHERS                     = 5
          .
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.                    "user_command

former_member188685
Active Contributor
0 Kudos

Hi,

you can do that

pass this option to

<b>layout-totals_before_items = 'X'.</b>

Regards

vijay

hymavathi_oruganti
Active Contributor
0 Kudos

as sateesh suggested , u can use

TOTAL_BEFORE_ITEMS IN SLIS_ALV_LAYOUT AS 'X'.

and do_sum = 'X' IN SLIS_FIELDCAT_ALV.

U CAN DOWNLOAD TO EXCEL THROUGH MENU OPTION