Regarding Total in ALV

Hi all,
   I am using alv to display Currency fields in a tax return report.........I want to display the sum of a perticular column or all the columns when i press the total button from alv selecting the required columns. But its coming only for first two columns not for all. Please help.
Regards.

Hi,
This ALV program have all the basic report requirements such as page heading, page no, sub-total and a grand total.
* This is a basic ALV with the followings:-
* - Page Heading
* - Page No
* - Sub-Total
* - Grand Total
REPORT ZALV.
TYPE-POOLS: SLIS.
DATA: G_REPID LIKE SY-REPID,
GS_PRINT            TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS           TYPE SLIS_T_EVENT,
GT_SORT             TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT           TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.
DATA: BEGIN OF ITAB,
  FIELD1(5) TYPE C,
  FIELD2(5) TYPE C,
  FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0.
  INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
  INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.
* Print Parameters
PARAMETERS:
            P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
            P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
            P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
            P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
            P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
            P_RESERV TYPE I.                  "NO OF FOOTER LINE
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS
START-OF-SELECTION.
* TEST DATA
MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.
MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.
DO 50 TIMES.
  APPEND ITAB1.
ENDDO.
END-OF-SELECTION.
PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.
FORM BUILD.
* DATA FIELD CATALOG
* Explain Field Description to ALV
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD1'.
FIELDCAT_LN-TABNAME   = 'ITAB1'.
*FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY
FIELDCAT_LN-NO_OUT    = ' '.
FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD2'.
FIELDCAT_LN-TABNAME   = 'ITAB1'.
FIELDCAT_LN-NO_OUT    = 'X'.
FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME     = 'FIELD3'.
FIELDCAT_LN-TABNAME       = 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT        = ' '.
FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.
* DATA SORTING AND SUBTOTAL
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD1'.
GS_SORT-SPOS      = 1.
GS_SORT-UP        = 'X'.
GS_SORT-SUBTOT    = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD2'.
GS_SORT-SPOS      = 2.
GS_SORT-UP        = 'X'.
*GS_SORT-SUBTOT    = 'X'.
APPEND GS_SORT TO GT_SORT.
ENDFORM.
FORM CALL_ALV.
* ABAP List Viewer
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT =  GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
  IT_SORT = GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
  IT_EVENTS = GT_EVENTS[]
* IT_EVENT_EXIT =
  IS_PRINT = GS_PRINT
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
* HEADER FORM
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            I_LIST_TYPE = 0
       IMPORTING
            ET_EVENTS   = LT_EVENTS.
  READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE
                           INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO LT_EVENTS.
  ENDIF.
* define END_OF_PAGE event
* READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE
*                          INTO LS_EVENT.
* IF SY-SUBRC = 0.
*   MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
*   APPEND LS_EVENT TO LT_EVENTS.
* ENDIF.
ENDFORM.
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
  DATA: GS_LINE TYPE SLIS_LISTHEADER.
  CLEAR GS_LINE.
  GS_LINE-TYP  = 'H'.
  GS_LINE-INFO = 'HEADER 1'.
  APPEND GS_LINE TO GT_TOP_OF_PAGE.
  CLEAR GS_LINE.
  GS_LINE-TYP  = 'S'.
  GS_LINE-KEY  = 'STATUS 1'.
  GS_LINE-INFO = 'INFO 1'.
  APPEND GS_LINE TO GT_TOP_OF_PAGE.
  GS_LINE-KEY  = 'STATUS 2'.
  GS_LINE-INFO = 'INFO 2'.
  APPEND GS_LINE TO GT_TOP_OF_PAGE.
* CLEAR GS_LINE.
* GS_LINE-TYP  = 'A'.
* GS_LINE-INFO = 'ACTION'.
* APPEND GS_LINE TO  GT_TOP_OF_PAGE.
ENDFORM.
FORM TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
  WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
FORM END_OF_PAGE.
  WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.
* PRINT SETTINGS
FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
  LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE
  LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO
  LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE
  LS_PRINT-NO_NEW_PAGE        = P_NONEWP.
  LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
  LS_PRINT-RESERVE_LINES      = P_RESERV.
ENDFORM.
*END OF ZALV PROGRAM
Regards
Sudheer

Similar Messages

  • Regarding sub totaling in alv

    hi,
    i am making report in alv in which i have to display the sub totals and den full total.
    is it possible to display sub total in ALV acccording to material type wise or itemid wise.
    plzz help me with some example.
    If find useful he or she will definately rewarded.........

    Hi, 
    The following example for sub totall for ALV  report..
    u have to pass do_sum = 'X'. for perticuler fileds.
    if it is use full answer reward me a points..
    *& Report  ZDEL_ALV1
    *Description:        This ALV interactive report is display Delivary
                       status
    REPORT  zdel_alv1 NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 60.
    *TABLE DECLARATION
    TABLES : likp,                     "Delivery Header Data
             lips,                     "Delivery item Data
             vbup.                     "sales document item status
    TYPE-POOLS : slis.
    *SRUCTURE DECLARATION
    *THIS TABLE FOR HEADER DETAILS
    TYPES : BEGIN OF t_likp ,
            vbeln LIKE likp-vbeln,     "Delivery number
            kosta like vbup-kosta,
            kunnr LIKE likp-kunnr,     "Customer number
            wadat LIKE likp-wadat,     "Planned goods movement date
            ernam LIKE likp-ernam,     "Name of person
            vkorg LIKE likp-vkorg,     "Sales organization
            lfart LIKE likp-lfart,      "DELIVERY TYPE
            ntgew LIKE likp-ntgew,      "NET WEIGHT
            END OF t_likp.
    *THIS TABLE FOR ITEM DETAILS
    TYPES : BEGIN OF t_lips ,
            vbeln LIKE lips-vbeln,     "Delivery number
            posnr LIKE lips-posnr,     "delivery item
            matnr LIKE lips-matnr,     "Material number
            lfimg LIKE lips-lfimg,     "Actual quantity delivered
            ntgew LIKE lips-ntgew,     "Net weight
            exbwr LIKE lips-exbwr,     "Externally entered posting amount
            arktx LIKE lips-arktx,     "Short text SO Item
            END OF t_lips.
    *THIS IS FOR FINAL OUTPUT
    TYPES : BEGIN OF t_vbup ,
            vbeln LIKE likp-vbeln,     "Delivery number
            kosta LIKE vbup-kosta,     "Picking status/Putaway status
            posnr LIKE vbup-posnr,     "delivery item
            matnr LIKE lips-matnr,     "Material number
            lfimg LIKE lips-lfimg,     "Actual quantity delivered
            ntgew LIKE lips-ntgew,     "Net weight
            exbwr LIKE lips-exbwr,     "Externally entered posting amount
            arktx LIKE lips-arktx,     "SHORT text SO Item
            description(20),           "for display text
            END OF t_vbup.
    *INTERNAL TABLES
    DATA : i_likp TYPE STANDARD TABLE OF t_likp.
    DATA : i_lips TYPE STANDARD TABLE OF t_lips.
    DATA : i_vbup TYPE STANDARD TABLE OF t_vbup.
    DATA : repid LIKE sy-repid.
    DATA : delivar1(10) TYPE c.
    *WORK AREA
    DATA : wa_likp TYPE t_likp.
    DATA : wa_lips TYPE t_lips.
    DATA : wa_vbup TYPE t_vbup.
    DATA:  i_vbup1 LIKE wa_vbup OCCURS 0 WITH  HEADER LINE.
    *SLIS TABLE DECLARATIONS
    DATA: i_fieldcat TYPE slis_t_fieldcat_alv  WITH HEADER LINE,
          i_events TYPE slis_t_event,
          w_events TYPE slis_alv_event,
          i_fieldcat1 TYPE slis_t_fieldcat_alv  WITH HEADER LINE,
          i_layout TYPE slis_layout_alv.
    *SELECTING RANGE OF VALUES
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_vbeln  FOR likp-vbeln,
                     s_kunnr  FOR likp-kunnr,
                     s_wadat  FOR likp-wadat.
    SELECTION-SCREEN END OF BLOCK b1 .
    *CHOOSE ONE CHECK BOX FOR DISPLAYING THE DELIVARY STATUS
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS : cb_kostc AS CHECKBOX,"DEFAULT 'X',
                 cb_kosta AS CHECKBOX,
                 cb_kostb AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK b2.
    *INTIALIZATION CHECK
    INITIALIZATION.
      repid = sy-repid.
    *START-OF-SELECTION
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM get_field.
    PERFORM GET_EVENTS.
      PERFORM display.
    *END-OF-SELECTION
    END-OF-SELECTION.
    *&      Form  RUCOMM
          This form getting details from lips table for displaying
           the item details and all select statements for delivary status
         -->R_UCOMM    text
         -->RS_SELFIELDtext
    FORM user_command USING r_ucomm LIKE sy-ucomm  rs_selfield TYPE
                                                   slis_selfield.
      IF rs_selfield-fieldname = 'VBELN'.
        delivar1 = rs_selfield-value.
      ENDIF.
      IF cb_kostc = 'X'.
      SELECT   VBELN KOSTA   FROM   VBUP
      INTO TABLE I_VBUP
      WHERE  VBELN IN DELIVAR
      AND KOSTA = 'C'.
      SELECT VBELN MATNR LFIMG EXBWR INTO TABLE I_LIPS FROM LIPS
                                        WHERE VBELN EQ DELIVAR1.
        REFRESH i_vbup1[].
        CLEAR i_vbup1.
        SELECT avbeln akosta bposnr bmatnr blfimg bntgew b~exbwr
        b~arktx
        INTO TABLE i_vbup
        FROM vbup AS a INNER JOIN lips AS b
        ON avbeln = bvbeln
        WHERE a~vbeln EQ delivar1
           AND kosta = 'C'.
      ELSEIF cb_kosta = 'X'.
      SELECT   VBELN KOSTA   FROM   VBUP
      INTO TABLE I_VBUP
      WHERE  VBELN IN DELIVAR
      AND KOSTA = 'A'.
        SELECT avbeln akosta bposnr bmatnr blfimg bntgew b~exbwr
        b~arktx
        INTO TABLE i_vbup
        FROM vbup AS a INNER JOIN lips AS b
        ON avbeln = bvbeln
        WHERE a~vbeln EQ delivar1
           AND kosta = 'A'.
      ELSEIF cb_kostb = 'X'.
        SELECT   VBELN KOSTA   FROM   VBUP
      INTO TABLE I_VBUP
      WHERE  VBELN IN DELIVAR
      AND KOSTA = 'B'.
        SELECT avbeln akosta bposnr bmatnr blfimg bntgew b~exbwr
        b~arktx
        INTO TABLE i_vbup
        FROM vbup AS a INNER JOIN lips AS b
        ON avbeln = bvbeln
        WHERE a~vbeln EQ delivar1
           AND kosta = 'B'.
      ENDIF.
      CLEAR i_vbup1.
      LOOP AT i_vbup INTO wa_vbup.
        i_vbup1-vbeln = wa_vbup-vbeln.
        i_vbup1-kosta = wa_vbup-kosta.
        IF wa_vbup-kosta = 'C'.
          i_vbup1-description = 'COMPLETELY PROCESSED'.
        ELSEIF wa_vbup-kosta = 'B'.
          i_vbup1-description = 'PARTIALLY PROCESSED'.
        ELSEIF wa_vbup-kosta = 'A'.
          i_vbup1-description = 'NOT YET PROCESSED'.
        ENDIF.
        i_vbup1-posnr = wa_vbup-posnr.
        i_vbup1-matnr = wa_vbup-matnr.
        i_vbup1-lfimg = wa_vbup-lfimg.
        i_vbup1-ntgew = wa_vbup-ntgew.
        i_vbup1-exbwr = wa_vbup-exbwr.
        i_vbup1-arktx = wa_vbup-arktx.
        APPEND i_vbup1 .
      ENDLOOP.
      SORT i_vbup1 BY vbeln matnr lfimg.
      DELETE ADJACENT DUPLICATES FROM i_vbup1 COMPARING vbeln matnr lfimg.
    SELECT VBELN MATNR LFIMG EXBWR INTO TABLE I_LIPS FROM LIPS
                                         WHERE VBELN EQ DELIVAR1.
    *This function module for displaying the item details
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = repid
          it_fieldcat             = i_fieldcat1[]
          i_callback_top_of_page  = 'TOP_OF_PAGE'
          i_callback_user_command = 'USER_COMMAND1'
          it_events               = i_events
        TABLES
          t_outtab                = i_vbup1
        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.
      CLEAR i_vbup1.
    ENDFORM.                    "RUCOMM
    *&      Form  USER_COMMAND1
          text
         -->R_UCOMM1   text
         -->RS_SELFIELDtext
    FORM user_command1 USING r_ucomm1 LIKE sy-ucomm  rs_selfield1 TYPE
                                                     slis_selfield.
      DATA: deliv(10) TYPE c.
      IF rs_selfield1 = 'VBELN'.
        deliv = rs_selfield1-value.
      ENDIF.
      SET PARAMETER ID 'VL' FIELD delivar1.
      CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
    ENDFORM.                    "USER_COMMAND1
    *&      Form  GET_DATA
          This form for getting the data from likp table
    -->  p1        text
    <--  p2        text
    FORM get_data .
    SELECT VBELN KUNNR WADAT FROM LIKP INTO TABLE I_LIKP
                                     WHERE VBELN IN S_VBELN
                                     AND KUNNR IN S_KUNNR
                                     AND WADAT IN S_WADAT.
      REFRESH i_likp[].
      CLEAR i_likp.
      IF cb_kostc = 'X' AND cb_kosta = ' ' AND cb_kostb = ''.
        SELECT avbeln akosta bkunnr bwadat bernam bvkorg blfart bntgew
        INTO TABLE i_likp
        FROM vbup AS a INNER JOIN likp AS b
        ON avbeln = bvbeln
        WHERE
              b~kunnr IN s_kunnr
              AND b~vbeln IN s_vbeln
              AND b~wadat IN s_wadat
               AND a~kosta = 'C'.
      ELSEIF cb_kosta = 'X' AND cb_kostb = ' ' AND cb_kostc = ''.
        SELECT avbeln akosta bkunnr bwadat bernam bvkorg blfart bntgew
           INTO TABLE i_likp
           FROM vbup AS a INNER JOIN likp AS b
           ON avbeln = bvbeln
           WHERE
                 b~kunnr IN s_kunnr
                 AND b~vbeln IN s_vbeln
                 AND b~wadat IN s_wadat
                  AND a~kosta = 'A'.
      ELSEIF cb_kostb = 'X' AND cb_kosta = '' AND cb_kostc = ''.
        SELECT avbeln akosta bkunnr bwadat bernam bvkorg blfart bntgew
           INTO TABLE i_likp
           FROM vbup AS a INNER JOIN likp AS b
           ON avbeln = bvbeln
           WHERE
                 b~kunnr IN s_kunnr
                 AND b~vbeln IN s_vbeln
                 AND b~wadat IN s_wadat
                  AND kosta = 'B'.
      ELSEIF cb_kostc = 'X' AND cb_kosta = 'X' AND cb_kostb = 'X'.
        SELECT avbeln akosta bkunnr bwadat bernam bvkorg blfart bntgew
        INTO TABLE i_likp
        FROM vbup AS a INNER JOIN likp AS b
        ON avbeln = bvbeln
        WHERE
              b~kunnr IN s_kunnr
              AND b~vbeln IN s_vbeln
              AND b~wadat IN s_wadat
              AND kosta NE ' '.
      ENDIF.
      DELETE ADJACENT DUPLICATES FROM i_likp.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_FIELD
          This form for defining the every fields from likp & lips tables
    FORM get_field .
    *This fields are retrieving from header table(likp)
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'VBELN'.
      i_fieldcat-seltext_m = 'SALES ORDER NO'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'KUNNR'.
      i_fieldcat-seltext_m = 'CUSTOMER NO'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'WADAT'.
      i_fieldcat-seltext_m = 'DATE'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'ERNAM'.
      i_fieldcat-seltext_m = 'NAME OF PERSON'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'VKORG'.
      i_fieldcat-seltext_m = 'SALES ORGANIZATION'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'LFART'.
      i_fieldcat-seltext_m = 'DELIVERY TYPE'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
      i_fieldcat-fieldname = 'NTGEW'.
      i_fieldcat-seltext_m = 'NET WEIGHT'.
      i_fieldcat-do_sum = 'X'.
      APPEND i_fieldcat TO i_fieldcat.
      CLEAR i_fieldcat.
    *This fields are retrieving from item table(lips)
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'VBELN'.
      i_fieldcat1-seltext_m = 'DELIVAR NO'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'POSNR'.
      i_fieldcat1-seltext_m = 'DELIVERY ITEM'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'MATNR'.
      i_fieldcat1-seltext_m = 'MATERIAL NO'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'LFIMG'.
      i_fieldcat1-seltext_m = 'ACTUAL QUANTITY'.
      i_fieldcat1-do_sum    = 'X'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'NTGEW'.
      i_fieldcat1-seltext_m = 'NET WEIGHT'.
      i_fieldcat1-do_sum = 'X'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'EXBWR'.
      i_fieldcat1-seltext_m = 'AMOUNT'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'ARKTX'.
      i_fieldcat1-seltext_m = 'SHORT TEXT FOR so ITEM'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
      i_fieldcat1-fieldname = 'DESCRIPTION'.
      i_fieldcat1-seltext_m = 'PICKING STATUS'.
      APPEND i_fieldcat1 TO i_fieldcat1.
      CLEAR i_fieldcat1.
    ENDFORM.                    " GET_FIELD
    *&      Form  GET_EVENTS
          This form defining the events
    *FORM GET_EVENTS .
    CLEAR W_EVENTS.
    W_EVENTS-NAME = 'USER_COMMAND'.
    W_EVENTS-FORM = 'RUCOMM'.
    APPEND W_EVENTS TO I_EVENTS.
    *ENDFORM.                    " GET_EVENTS
    *&      Form  DISPLAY
         This form is going to display header details from likp table
    FORM display .
    *This function module for displaying the header details
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = repid
          i_callback_top_of_page  = 'TOP-OF-PAGE'
          i_callback_user_command = 'USER_COMMAND'
          it_fieldcat             = i_fieldcat[]
          i_save                  = 'X'
          it_events               = i_events
        TABLES
          t_outtab                = i_likp
        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.                    " DISPLAY
    *&      Form  TOP-OF-PAGE
        This form is going to display top-of-page header text
    FORM top-of-page.
      DATA:  i_list_comments TYPE slis_t_listheader.
      DATA:  w_list_comments TYPE slis_listheader.
      CLEAR: i_list_comments[].
      w_list_comments-typ  = 'H'. "H=Header, S=Selection, A=Action
      w_list_comments-info = 'DELIVERY ORDER DETAILS'.
      APPEND w_list_comments TO i_list_comments.
      w_list_comments-typ  = 'A'. " H = Header, S = Selection, A = Action
      w_list_comments-info = 'Basic list'.
      APPEND w_list_comments TO i_list_comments.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          i_logo             = 'enjoy'
          it_list_commentary = i_list_comments.
    ENDFORM.                    "TOP-OF-PAGE
    *&      Form  TOP_OF_PAGE
           This form is going to display top-of-page item text
    FORM top_of_page.
      DATA:  i_list_comments TYPE slis_t_listheader.
      DATA:  w_list_comments TYPE slis_listheader.
      DATA : i_line LIKE w_list_comments-info.
      CONCATENATE 'DELIVERY ITEM DETAILS :' delivar1 INTO i_line .
    SEPARATED BY SPACE.
      CLEAR: i_list_comments[].
      w_list_comments-typ  = 'H'. "H=Header, S=Selection, A=Action
      w_list_comments-info = i_line.
      APPEND w_list_comments TO i_list_comments.
      w_list_comments-typ  = 'A'. " H = Header, S = Selection, A = Action
      w_list_comments-info = 'Secondary list'.
      APPEND w_list_comments TO i_list_comments.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          i_logo             = 'enjoy'
          it_list_commentary = i_list_comments.
    ENDFORM.                    "TOP_OF_PAGE

  • Subtotal in ALV grid for a particular type and Grand total in ALV

    Hi,
    I need to have sub total for a particular type(eg: goods, services).. and grand total at end in ALV grid..
    ALV output required as below:
    Type     VAT registration number     Country      Total Gross Amounts       Total Tax Amounts       Total Amount, ex-tax
    Goods     ATU12345678     AT                  222.42      0         222.42
    Goods     NL123456789B02     NL               3,417.00      0      3,417.00
         Goods Total                    3,639.42                -         3,639.42
    Services     ATU12345678     AT               2,342.34      0      2,342.34
    Services     NL123456789B02     NL                  223.33      0         223.33
         Services Total                    2,565.67                -         2,565.67
         Grand Total                    6,205.09                -         6,205.09
    Let me as to how to achieve the above type in ALV grid...
    Regards
    Shiva

    check this link..
    Grand Totals in ALV grid disply function module
    or do like this..
    REPORT  ZALVTESTFORSUBTOTAL.
    tables:pa0008.
    type-pools:slis.
    types:begin of ty_pa0008,
          pernr like pa0008-pernr,
          begda like pa0008-begda,
          endda like pa0008-endda,
          ansal like pa0008-ansal,
          lga01 like pa0008-lga01,
          bet01 like pa0008-bet01,
          end of ty_pa0008.
    data:it_pa0008 type standard table of ty_pa0008 with header line.
    data:it_fieldcat type SLIS_T_FIELDCAT_ALV,
         wa_fieldcat type slis_fieldcat_alv,
         it_layout type slis_layout_alv,
         WA_events TYPE slis_alv_event,
         it_events TYPE slis_t_event.
    select-options:s_pernr for pa0008-pernr.
    start-of-selection.
    perform getD_data.
    perform disp_alv.
    *&      Form  getD_data
          text
    -->  p1        text
    <--  p2        text
    form getD_data .
    select pernr
           begda
           endda
           ansal
           lga01
           bet01
           from pa0008
           into table it_pa0008
           where pernr in s_pernr.
    sort it_pa0008 by pernr begda descending.
    endform.                    " getD_data
    *&      Form  disp_alv
          text
    -->  p1        text
    <--  p2        text
    form disp_alv .
    wa_fieldcat-fieldname = 'PERNR'.
    wa_FIELDCAT-REPTEXT_DDIC = 'Personnel no'.
    *WA_FIELDCAT-no_subtotals = 'X'.
    append wa_fieldcat to it_fieldcat.
    clear wa_fieldcat.
    wa_fieldcat-fieldname = 'BEGDA'.
    wa_FIELDCAT-REPTEXT_DDIC = 'Start date'.
    append wa_fieldcat to it_fieldcat.
    clear wa_fieldcat.
    wa_fieldcat-fieldname = 'ENDDA'.
    wa_FIELDCAT-REPTEXT_DDIC = 'End date'.
    append wa_fieldcat to it_fieldcat.
    clear wa_fieldcat.
    wa_fieldcat-fieldname = 'ANSAL'.
    wa_FIELDCAT-REPTEXT_DDIC = 'Annula salary'.
    wa_fieldcat-do_sum = 'X'.
    append wa_fieldcat to it_fieldcat.
    clear wa_fieldcat.
    wa_fieldcat-fieldname = 'LGA01'.
    wa_FIELDCAT-REPTEXT_DDIC = 'Wage Type'.
    append wa_fieldcat to it_fieldcat.
    clear wa_fieldcat.
    wa_fieldcat-fieldname = 'BET01'.
    wa_FIELDCAT-REPTEXT_DDIC = 'Amount for wagetype'.
    append wa_fieldcat to it_fieldcat.
    clear wa_fieldcat.
    DATA: sort TYPE slis_sortinfo_alv,
    it_sort TYPE slis_t_sortinfo_alv.
    sort-fieldname = 'PERNR'.
    sort-subtot = 'X'.
    SORT-UP = 'X'.
    APPEND sort TO it_sort.
    *sort-fieldname = 'BEGDA'.
    *SORT-NO_SUBTOTS = 'X'.
    *APPEND sort TO it_sort.
    IT_layout-totals_text = 'total text'.
    IT_layout-subtotals_text = 'Subtotal text'.
    *WA_EVENTS-NAME = 'SUBTOTAL TEXT'.
    *WA_EVENTS-FORM = 'SUBTOTAL TEXT'.
    *APPEND WA_EVENTS TO IT_EVENTS.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM             = sy-repid
       IS_LAYOUT                      = it_LAYOUT
       IT_FIELDCAT                    = IT_FIELDCAT
       it_sort                        = it_sort
      it_events                      = it_events
       TABLES
        t_outtab                       = it_pa0008 .
    endform.                    " disp_alv

  • Currency wise grand totals IN ALV

    Hi friends,
    I  have problem  in alv report, my requirement is want to display the
    currency wise grand totals in ALV Report.if any having this idea please
    address the solution.
    yours
    ramakrishna.Y

    if i am not wrong then ithink you are talking about subtotal as per currency .
    then you have to use sort fnality..
    you have to write your fieldcat for currency value field
    wfieldcat-do_sum = 'X'.
    data : isort type slis_t_sortinfo_alv,
             wsort type slis_sortinfo_alv.
    wsort-spos = 1.
    wsort-up = 'X'.
    wsort-fieldname = ' YOUR CURRency key field in caps'.
    wsort-group = 'UL'.
    append wsort to isort.
    you have to pass that to reuse alv fm it_sort = isort.
    regards
    shiba dutta

  • How to display total in ALV Header

    How to display total in ALV Header?

    Hi Venkey,
    As far as your issue is concerned I would like to quote my perception.
    Create a header internal table with title and number of records.
    At the later part of your program you should have found the total number of records ,now assign it to the header internal table and print it.
    For further clarification you can go check this link:
    http://wiki.sdn.sap.com/wiki/display/ABAP/AddHeadertoALVreport
    Thanks
    P.Srikanth

  • Total in ALV Grid

    I have data like currency and amounts and i want to display that amount as a total in alv display..
    i used do_sum = x whle building fieldcat but itsdisplaying it currencywise like sub total...instead i want to total for all currencies and display it..
    please guide

    See the following example in this example  WAERS is CUKY type
    DATA: BEGIN OF ITAB OCCURS 0,
           BELNR LIKE BSEG-BELNR,
           GJAHR TYPE I,
           WRBTR TYPE I,
           WAERS LIKE BKPF-WAERS,
           TOTAL TYPE P,
          END OF ITAB.
    DATA: LAYOUT     TYPE SLIS_LAYOUT_ALV,
          IT_EVENTS  TYPE SLIS_T_EVENT,
          FCAT       TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          REC_FCAT   TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    START-OF-SELECTION.
      FCAT-COL_POS       = 1.
      FCAT-FIELDNAME     = 'BELNR'.
      FCAT-TABNAME       = 'ITAB'.
      FCAT-REF_FIELDNAME = 'BELNR'.
      FCAT-REF_TABNAME   = 'BSEG'.
      APPEND FCAT.
      FCAT-COL_POS       = 2.
      FCAT-FIELDNAME     = 'GJAHR'.
      FCAT-TABNAME       = 'ITAB'.
      FCAT-REF_FIELDNAME = 'GJAHR'.
      FCAT-DATATYPE      = 'INT4'.
      FCAT-INTTYPE       = 'I'.
      FCAT-DO_SUM        = 'X'.
    APPEND FCAT.
      FCAT-COL_POS       = 3.
      FCAT-FIELDNAME     = 'WRBTR'.
      FCAT-TABNAME       = 'ITAB'.
      FCAT-DATATYPE      = 'INT4'.
      FCAT-INTTYPE       = 'I'.
      FCAT-DO_SUM        = 'X'.
      APPEND FCAT.
    FCAT-COL_POS       = 4.
      FCAT-FIELDNAME     = 'TOTAL'.
      FCAT-TABNAME       = 'ITAB'.
    *  FCAT-DATATYPE      = 'INT4'.
      FCAT-INTTYPE       = 'P'.
      FCAT-DO_SUM        = 'X'.
      APPEND FCAT.
      DO 10 TIMES.
        ITAB-WRBTR = SY-INDEX.
        ITAB-GJAHR = SY-INDEX + 1.
       ITAB-TOTAL = ITAB-WRBTR / ITAB-GJAHR.
        APPEND ITAB.
      ENDDO.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          I_CALLBACK_PROGRAM = 'Z_TOT_ALV'.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT   = LAYOUT
          IT_FIELDCAT = FCAT[]
          I_TABNAME   = 'ITAB'
          IT_EVENTS   = IT_EVENTS[]
        TABLES
          T_OUTTAB    = ITAB[].
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
    Edited by: kk.adhvaryu on Apr 5, 2010 9:23 AM

  • Totals and Sub-Totals in ALV GRID

    Could anyone advice, how to display sub-totals and totals in ALV Grid(using FM).
    Ex:           value1    value2
                      100        50
                      200        50
        subtotal   300      100
        total                    400
    Thanks in advance...

    Refer below demo code and see perform Sort_list..
    it wil serve ur purpose.
    REPORT  ZGILL_ALV    message-id rp                           .
    type-pools slis.
    tables: zgill_main,zgill_details.
    data z_fieldcat type slis_t_fieldcat_alv.
    data begin of itab occurs 0.
    DATA ICON TYPE ICON-ID.
         include structure zgill_main.
    data salary like zgill_details-salary.
    data end of itab.
    *data itab1 like table of itab with header line.
    data : WA_SORT TYPE SLIS_SORTINFO_ALV,
           IT_SORT TYPE SLIS_T_SORTINFO_ALV,
           WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
           IT_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
           WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
    PARAMETERS: p_list  radiobutton group A1,
                P_GRID  RADIOBUTTON GROUP A1.
    SELECT-OPTIONS: S_PERNR FOR ZGILL_MAIN-PERNR.
    start-of-selection.
    perform fill_itab.
    perform sort_list.
    **************Start of scenario without container******************************************
    *********Method 1***********
    perform fill_fieldcat.  " Manuallly Preparing Fiedl Catalog
    *********Method 2***********
    *perform fill_fieldcat1 changing z_fieldcat.   "Preparing field catalog with merge function
    perform display_alv.
    *****************end of scenario without container*****************************************
    *&      Form  fill_itab
          text
    -->  p1        text
    <--  p2        text
    form fill_itab .
    *select * from zgill_main up to 20 rows INTO CORRESPONDING FIELDS OF TABLE itab.
    *ITAB1[] = ITAB[].
    select apernr aname aorg adob b~salary INTO CORRESPONDING FIELDS OF TABLE itab
           from zgill_main as a join zgill_details as b on apernr = bpernr
           WHERE A~PERNR IN S_PERNR.
    LOOP AT ITAB.
    IF ITAB-PERNR < 1111.
    ITAB-ICON = '@08@'.
    ELSEIF ITAB-PERNR > 1111 AND ITAB-PERNR < 11111111.
    ITAB-ICON = '@09@'.
    ELSEIF ITAB-PERNR GE 11111111.
    ITAB-ICON = '@0A@'.
    ENDIF.
    MODIFY ITAB INDEX SY-TABIX.
    ENDLOOP.
    endform.                    " fill_itab
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    form display_alv .
    data repid like sy-repid.
    REPID = SY-REPID.
    WA_LAYOUT-ZEBRA = 'X'.
    WA_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'.
    WA_LAYOUT-SUBTOTALS_TEXT = 'SUBTOTAL'.
    WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.
    IF P_GRID = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = repid
       IT_FIELDCAT                       = IT_FIELDTAB
       IT_SORT                           = IT_SORT
       IS_LAYOUT                         = WA_LAYOUT
    TABLES
        t_outtab                          = itab[]
    EXCEPTIONS
       PROGRAM_ERROR                     = 1
       OTHERS                            = 2.
    IF sy-subrc <> 0.
       message e016 with 'Error in Display'.
    ENDIF.
    ELSEIF P_LIST = 'X'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = repid
       IT_FIELDCAT                       = IT_FIELDTAB
       IT_SORT                           = IT_SORT
       IS_LAYOUT                         = WA_LAYOUT
    TABLES
        t_outtab                          = itab[]
    EXCEPTIONS
       PROGRAM_ERROR                     = 1
       OTHERS                            = 2.
    IF sy-subrc <> 0.
       message e016 with 'Error in Display'.
    ENDIF.
    ENDIF.
    endform.                    " display_alv
    *&      Form  fill_fieldcat1
          text
    -->  p1        text
    <--  p2        text
    form fill_fieldcat1  changing d_fcat type slis_t_fieldcat_alv.
    data repid like sy-repid.
    data d_fcat1 type slis_t_fieldcat_alv with header line.
    REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
       I_PROGRAM_NAME               = repid
       I_INTERNAL_TABNAME           = 'ITAB'
       I_STRUCTURE_NAME             = 'ZGILL_MAIN'
      I_CLIENT_NEVER_DISPLAY       = 'X'
      I_INCLNAME                   =
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
    CHANGING
        ct_fieldcat                  = d_fcat[]
    EXCEPTIONS
       INCONSISTENT_INTERFACE       = 1
       PROGRAM_ERROR                = 2
       OTHERS                       = 3.
    IF sy-subrc <> 0.
       message e016 with 'Error in preparing fiedl catalog'.
    ENDIF.
    loop at d_fcat into d_fcat1.
    case d_fcat1-fieldname.
    when 'NAME'.
    d_fcat1-reptext_ddic = 'Emp Name'.
    MODIFY D_FCAT FROM D_FCAT1.
    WHEN 'PERNR'.
    d_fcat1-reptext_ddic = 'Emp Num'.
    MODIFY D_FCAT FROM D_FCAT1.
    WHEN 'ORG'.
    d_fcat1-reptext_ddic = 'Org Unit'.
    MODIFY D_FCAT FROM D_FCAT1.
    endcase.
    clear d_fcat1.
    endloop.
    endform.                    " fill_fieldcat1
    *&      Form  sort_list
          text
    -->  p1        text
    <--  p2        text
    form sort_list .
    CLEAR WA_SORT.
    WA_SORT-FIELDNAME = 'DOB'.
    WA_SORT-SPOS = '1'.
    WA_SORT-UP = 'X'.
    WA_SORT-SUBTOT = 'X'.
    APPEND WA_SORT TO IT_SORT.
    CLEAR WA_SORT.
    WA_SORT-FIELDNAME = 'NAME'.
    WA_SORT-SPOS = '1'.
    WA_SORT-UP = 'X'.
    APPEND WA_SORT TO IT_SORT.
    CLEAR WA_SORT.
    endform.                    " sort_list
    *&      Form  fill_fieldcat
          text
    -->  p1        text
    <--  p2        text
    form fill_fieldcat .
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'ITAB'.
    WA_FIELDCAT-FIELDNAME = 'ICON'.
    WA_FIELDCAT-SELTEXT_L = 'TRAFFIC'.
    WA_FIELDCAT-ICON = 'X'.
    WA_FIELDCAT-ddictxt = 'l'.
    WA_FIELDCAT-COL_POS = 1.
    WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO IT_FIELDTAB.
    CLEAR WA_FIELDCAT .
    WA_FIELDCAT-TABNAME = 'ITAB'.
    WA_FIELDCAT-FIELDNAME = 'PERNR'.
    WA_FIELDCAT-SELTEXT_L = 'EMP NUMBER'.
    WA_FIELDCAT-ddictxt = 'l'.
    WA_FIELDCAT-COL_POS = 2.
    WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO IT_FIELDTAB.
    CLEAR WA_FIELDCAT .
    when 'maktx'.
    WA_FIELDCAT-TABNAME = 'ITAB'.
    WA_FIELDCAT-FIELDNAME = 'NAME'.
    WA_FIELDCAT-SELTEXT_L = 'EMP NAME'.
    WA_FIELDCAT-ddictxt = 'l'.
    WA_FIELDCAT-COL_POS = 3.
    WA_FIELDCAT-OUTPUTLEN = 15.
    APPEND WA_FIELDCAT TO IT_FIELDTAB.
    CLEAR WA_FIELDCAT .
    WA_FIELDCAT-TABNAME = 'ITAB'.
    WA_FIELDCAT-FIELDNAME = 'ORG'.
    WA_FIELDCAT-SELTEXT_L = 'ORG UNIT'.
    WA_FIELDCAT-COL_POS = 4.
    WA_FIELDCAT-OUTPUTLEN = 10.
    APPEND WA_FIELDCAT TO IT_FIELDTAB.
    CLEAR WA_FIELDCAT .
    WA_FIELDCAT-TABNAME = 'ITAB'.
    WA_FIELDCAT-FIELDNAME = 'DOB'.
    WA_FIELDCAT-SELTEXT_L = 'BIRTH DATE'.
    WA_FIELDCAT-COL_POS = 5.
    WA_FIELDCAT-OUTPUTLEN = 12.
    APPEND WA_FIELDCAT TO IT_FIELDTAB.
    CLEAR WA_FIELDCAT .
    WA_FIELDCAT-TABNAME = 'ITAB'.
    WA_FIELDCAT-FIELDNAME = 'SALARY'.
    WA_FIELDCAT-SELTEXT_L = 'SALARY'.
    WA_FIELDCAT-COL_POS = 6.
    WA_FIELDCAT-OUTPUTLEN = 25.
    WA_FIELDCAT-do_sum = 'X'.
    APPEND WA_FIELDCAT TO IT_FIELDTAB.
    endform.                    " fill_fieldcat

  • Total in ALV List (own calculation)

    Hi All,
    do you know how to display total in ALV List which calculated by me ?
    Previously I am using Before Line Output event ?
    I dont know why it's not working now (see the code below)? Now it is always overrided by standard sum calculation. Please help me.
    Thank you in advance.
    Sandi
    FORM ALV_BEFORE_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO.
      IF RS_LINEINFO-endsum = 'X'.
        I_DATA-PERFORMANCE = L_AVG.
        "MODIFY I_DATA INDEX RS_LINEINFO-SUMINDEX.
      ENDIF.
    ENDFORM.

    Hi All,
    do you know how to display total in ALV List which calculated by me ?
    Previously I am using Before Line Output event ?
    I dont know why it's not working now (see the code below)? Now it is always overrided by standard sum calculation. Please help me.
    Thank you in advance.
    Sandi
    FORM ALV_BEFORE_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO.
      IF RS_LINEINFO-endsum = 'X'.
        I_DATA-PERFORMANCE = L_AVG.
        "MODIFY I_DATA INDEX RS_LINEINFO-SUMINDEX.
      ENDIF.
    ENDFORM.

  • Regarding totals  and sub totals text in alv

    Hi all,
    i am displaying Totals and subtotals ......but i want to display the text before the the Totals and Subtotals.
    Please help me in regarding this..
    Thanks in advance,
    S.Gangi reddy.

    hi,
    check this report.
    *& Report  ZGM_ALV_SUBTOTAL_TEXT                                       *
    *& Author :
    *& Date :
    *& Description :
    *& Modification History
    REPORT  ZGM_ALV_SUBTOTAL_TEXT                   .
    *& Table declaration
    TABLES: ekko.
    *& Type pool declaration
    TYPE-POOLS: slis. " Type pool for ALV
    *& Selection screen
    SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
    *& Type declaration
    Type declaration for internal table to store EKPO data
    TYPES: BEGIN OF x_data,
           ebeln  TYPE char30,  " Document no.
           ebelp  TYPE ebelp,   " Item no
           matnr  TYPE matnr,   " Material no
           matnr1 TYPE matnr,   " Material no
           werks  TYPE werks_d, " Plant
           werks1 TYPE werks_d, " Plant
           ntgew  TYPE entge,   " Net weight
           gewe   TYPE egewe,   " Unit of weight                          
           END OF x_data.
    *& Internal table declaration
    DATA:
      i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
    Internal table for storing field catalog information
      i_fieldcat TYPE slis_t_fieldcat_alv,
    Internal table for Top of Page info. in ALV Display
      i_alv_top_of_page TYPE slis_t_listheader,
    Internal table for ALV Display events
      i_events TYPE slis_t_event,
    Internal table for storing ALV sort information
      i_sort TYPE  slis_t_sortinfo_alv,
      i_event TYPE slis_t_event.
    *& Work area declaration
    DATA:
      wa_ekko TYPE x_data,
      wa_layout     TYPE slis_layout_alv,
      wa_events         TYPE slis_alv_event,
      wa_sort TYPE slis_sortinfo_alv.
    *& Constant declaration
    CONSTANTS:
       c_header   TYPE char1
                  VALUE 'H',                    "Header in ALV
       c_item     TYPE char1
                  VALUE 'S'.
    *& Start-of-selection event
    START-OF-SELECTION.
    Select data from ekpo
      SELECT ebeln " Doc no
             ebelp " Item
             matnr " Material
             matnr " Material
             werks " Plant
             werks " Plant
             ntgew " Quantity
             gewei " Unit
             FROM ekpo
             INTO TABLE i_ekpo
             WHERE ebeln IN s_ebeln
             AND ntgew NE '0.00'.  IF sy-subrc = 0.
        SORT i_ekpo BY ebeln ebelp matnr .
      ENDIF.
    To build the Page header
      PERFORM sub_build_header. "* To prepare field catalog
      PERFORM sub_field_catalog. "* Perform to populate the layout structure
      PERFORM sub_populate_layout."* Perform to populate the sort table.
      PERFORM sub_populate_sort."* Perform to populate ALV event
      PERFORM sub_get_event.
      END-OF-SELECTION.
    * Perform to display ALV report
      PERFORM sub_alv_report_display.
    *&      Form  sub_build_header
          To build the header
          No Parameter
    FORM sub_build_header .
    Local data declaration
      DATA: l_system     TYPE char10 ,          "System id
            l_r_line     TYPE slis_listheader,  "Hold list header
            l_date       TYPE char10,           "Date
            l_time       TYPE char10,           "Time
            l_success_records TYPE i,           "No of success records
            l_title(300) TYPE c.                " Title
    Title  Display
      l_r_line-typ = c_header.               " header
      l_title = 'Test report'(001).
      l_r_line-info = l_title.
      APPEND l_r_line TO i_alv_top_of_page.
      CLEAR l_r_line.
    * Run date Display
      CLEAR l_date.
      l_r_line-typ  = c_item.                " Item
      WRITE: sy-datum  TO l_date MM/DD/YYYY.
      l_r_line-key = 'Run Date :'(002).
      l_r_line-info = l_date.
      APPEND l_r_line TO i_alv_top_of_page.
      CLEAR: l_r_line,
             l_date.ENDFORM.                    " sub_build_header
    *&      Form  sub_field_catalog
          Build Field Catalog
          No Parameter
    FORM sub_field_catalog .
    Build Field Catalog
      PERFORM sub_fill_alv_field_catalog USING:     '01' '01' 'EBELN'
      'I_EKPO' 'L'
         'Doc No'(003) ' ' ' ' ' ' ' ',     '01' '02' 'EBELP' 'I_EKPO' 'L'
         'Item No'(004) 'X' 'X' ' ' ' ',     '01' '03' 'MATNR' 'I_EKPO' 'L'
         'Material No'(005) 'X' 'X' ' ' ' ',     '01' '03' 'MATNR1' 'I_EKPO'
         'L'
         'Material No'(005) ' ' ' ' ' ' ' ',
         '01' '04' 'WERKS' 'I_EKPO' 'L'
         'Plant'(006) 'X' 'X' ' ' ' ',     '01' '04' 'WERKS1' 'I_EKPO' 'L'
         'Plant'(006) ' ' ' ' ' ' ' ',     '01' '05' 'NTGEW' 'I_EKPO' 'R'
         'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM.
    " sub_field_catalog*&----
    *&     Form  sub_fill_alv_field_catalog
    *&     For building Field Catalog
    *&     p_rowpos   Row position
    *&     p_colpos   Col position
    *&     p_fldnam   Fldname
    *&     p_tabnam   Tabname
    *&     p_justif   Justification
    *&     p_seltext  Seltext
    *&     p_out      no out
    *&     p_tech     Technical field
    *&     p_qfield   Quantity field
    *&     p_qtab     Quantity table
    FORM sub_fill_alv_field_catalog  USING  p_rowpos    TYPE sycurow
                                            p_colpos    TYPE sycucol
                                            p_fldnam    TYPE fieldname
                                            p_tabnam    TYPE tabname
                                            p_justif    TYPE char1
                                            p_seltext   TYPE dd03p-scrtext_l
                                            p_out       TYPE char1
                                            p_tech      TYPE char1
                                            p_qfield    TYPE slis_fieldname
                                            p_qtab      TYPE slis_tabname.
                                           Local declaration for field
                                           catalog
      DATA: wa_lfl_fcat    TYPE  slis_fieldcat_alv.
      wa_lfl_fcat-row_pos        =  p_rowpos.     "Row
      wa_lfl_fcat-col_pos        =  p_colpos.     "Column
      wa_lfl_fcat-fieldname      =  p_fldnam.     "Field Name
      wa_lfl_fcat-tabname        =  p_tabnam.     "Internal Table Name
      wa_lfl_fcat-just           =  p_justif.     "Screen Justified
      wa_lfl_fcat-seltext_l      =  p_seltext.    "Field Text
      wa_lfl_fcat-no_out         =  p_out.        "No output
      wa_lfl_fcat-tech           =  p_tech.       "Technical field
      wa_lfl_fcat-qfieldname     =  p_qfield.     "Quantity unit
      wa_lfl_fcat-qtabname       =  p_qtab .
      "Quantity table
      IF p_fldnam = 'NTGEW'.
        wa_lfl_fcat-do_sum  = 'X'.
      ENDIF.
      APPEND wa_lfl_fcat TO i_fieldcat.
      CLEAR wa_lfl_fcat.
    ENDFORM.
    " sub_fill_alv_field_catalog*&----
    *&      Form  sub_populate_layout
          Populate ALV layout
          No Parameter
    FORM sub_populate_layout .  CLEAR wa_layout.
      wa_layout-colwidth_optimize = 'X'.
    " Optimization of Col width
    ENDFORM. " sub_populate_layout*&----
    *&      Form  sub_populate_sort
          Populate ALV sort table
          No Parameter
    FORM sub_populate_sort .
    Sort on material
      wa_sort-spos = '01' .
      wa_sort-fieldname = 'MATNR'.
      wa_sort-tabname = 'I_EKPO'.
      wa_sort-up = 'X'.
      wa_sort-subtot = 'X'.
      APPEND wa_sort TO i_sort .
      CLEAR wa_sort.
    Sort on plant
      wa_sort-spos = '02'.
      wa_sort-fieldname = 'WERKS'.
      wa_sort-tabname = 'I_EKPO'.
      wa_sort-up = 'X'.
      wa_sort-subtot = 'X'.
      APPEND wa_sort TO i_sort .
      CLEAR wa_sort.
    ENDFORM.
    " sub_populate_sort*&----
    *&      Form  sub_get_event
          Get ALV grid event and pass the form name to subtotal_text
          event
          No Parameter
    FORM sub_get_event .
      CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
    'SUBTOTAL_TEXT'.  DATA: l_s_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 4
        IMPORTING
          et_events       = i_event
        EXCEPTIONS
          list_type_wrong = 0
          OTHERS          = 0.
    Subtotal
      READ TABLE i_event  INTO l_s_event
                        WITH KEY name = slis_ev_subtotal_text.
      IF sy-subrc = 0.
        MOVE c_formname_subtotal_text TO l_s_event-form.
        MODIFY i_event FROM l_s_event INDEX sy-tabix.
      ENDIF.ENDFORM.
    " sub_get_event*&----
    *&      Form  sub_alv_report_display
          For ALV Report Display
          No Parameter
    FORM sub_alv_report_display .
      DATA: l_repid TYPE syrepid .
      l_repid = sy-repid .
    This function module for displaying the ALV
    report
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = l_repid
          i_callback_top_of_page   = 'SUB_ALV_TOP_OF_PAGE'
          is_layout                = wa_layout
          it_fieldcat              = i_fieldcat
          it_sort = i_sort
          it_events                = i_event
          i_default                = 'X'
          i_save                   = 'A'
        TABLES
          t_outtab                 = i_ekpo
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
       MESSAGE i000 WITH 'Error in ALV report display'(055).
      ENDIF.
      ENDFORM.
    " sub_alv_report_display*&----
          FORM sub_alv_top_of_page
          Call ALV top of page
          No parameter
    FORM sub_alv_top_of_page.                                   "#EC CALLED*
    *To write header for the ALV
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = i_alv_top_of_page.
    ENDFORM.
    "alv_top_of_page*&----
    *&      Form  subtotal_text
          Build subtotal text
          P_total  Total
          p_subtot_text Subtotal text info
    FORM subtotal_text CHANGING
                   p_total TYPE any
                   p_subtot_text TYPE slis_subtot_text.
    Material level sub total
      IF p_subtot_text-criteria = 'MATNR'.
        p_subtot_text-display_text_for_subtotal
        = 'Material level total'(009).
      ENDIF.
    Plant level sub total
      IF p_subtot_text-criteria = 'WERKS'.
        p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
      ENDIF.
    ENDFORM.                    "subtotal_textSelection screen:
    \[removed by moderator\]
    Edited by: Jan Stallkamp on Sep 3, 2008 6:17 PM

  • Regarding the 'TOTALS' in ALV's

    Hi friends,
    I have a doubt in ALV while displaying totals.
    How can we display the "totals" immediately when the ALV output is displayed. I tried many ways but when im clicking on the 'Summation' symbol in the output of the ALV then only the 'Totals' or 'Subtotals' are being displayed.
    Please give me some helpfull tips...
    Regards
    Pradeep Goli

    hi,
    take reference of this exp...
    *FORM FOR DISPLAY DATA
      FORM display_data.
        PERFORM fill_layout_structure.
        PERFORM fill_field_catalog_table.
        PERFORM get_event USING it_event.
        PERFORM fill_listheader USING it_listheader.
        PERFORM call_alv_function.
      ENDFORM.                    "display_data
    *FORM FOR ALV LAYOUT STRUCTURE
      FORM fill_layout_structure.
        CLEAR st_layout.
             st_layout-colwidth_optimize = 'X'.
        st_layout-zebra = 'X'.
        st_layout-f2code = '&ETA'.
        st_layout-detail_popup = 'X'.
        st_layout-colwidth_optimize = 'X'.
      ENDFORM.                    "fill_layout_structure
    *FORM FOR ALV FIELD CATALOG TABLE
      FORM fill_field_catalog_table .
        PERFORM fill_field_catalog USING :
         'SAKNR'          'G/L Account No'      15   'IT_DATA' 'X'     space,
         'TXT50'          'A/C Description'     50   'IT_DATA' space  space,
         'BO'             'BO'                  15   'IT_DATA' space  'X',
         'FACT'           'Factories'           15   'IT_DATA' space  'X',
          'TOTAL_BO'       'BO Total'            15   'IT_DATA' space  'X'.
      ENDFORM.                    "fill_field_catalog_table
    *FORM FOR FILLING FIELD CATALOG
      FORM fill_field_catalog  USING f d l t p s.
        DATA: wa_fieldcat TYPE slis_fieldcat_alv.
        STATICS v_pos TYPE i VALUE 1.
        wa_fieldcat-row_pos    = 1.
        wa_fieldcat-col_pos    = v_pos.
        wa_fieldcat-fieldname  = f.
        wa_fieldcat-seltext_m  = d.
        wa_fieldcat-tabname    = t.
        wa_fieldcat-outputlen  = l.
        wa_fieldcat-fix_column = p.
        wa_fieldcat-do_sum     = s.
        APPEND wa_fieldcat TO it_fieldcat.
        v_pos = v_pos + 1.
      ENDFORM.                    "fill_field_catalog
    *FORM FOR ALV FUNCTIONS
      FORM call_alv_function.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
             I_INTERFACE_CHECK                 = ' '
             I_BYPASSING_BUFFER                = ' '
             I_BUFFER_ACTIVE                   = ' '
           i_callback_program                = v_repid
             I_CALLBACK_PF_STATUS_SET          = ' '
             I_CALLBACK_USER_COMMAND           = ' '
             I_CALLBACK_TOP_OF_PAGE            = '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                         = st_layout
           it_fieldcat                       = it_fieldcat[]
             IT_EXCLUDING                      =
             IT_SPECIAL_GROUPS                 =
             IT_SORT                           =
             IT_FILTER                         =
             IS_SEL_HIDE                       =
             I_DEFAULT                         = 'X'
              I_SAVE                            = 'A'
             IS_VARIANT                        =
           it_events                         = it_event[]
             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
             IT_ALV_GRAPHICS                   =
             IT_HYPERLINK                      =
             IT_ADD_FIELDCAT                   =
             IT_EXCEPT_QINFO                   =
             I_HTML_HEIGHT_TOP                 =
             I_HTML_HEIGHT_END                 =
           IMPORTING
             E_EXIT_CAUSED_BY_CALLER           =
             ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = it_data[]
           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.                    "call_alv_function

  • URGENT:-Regarding sub-total in alv code

    Hi,
    i had made dis report and it is working fine but now i want to add the sub total feature in dis report as it is the new requierment of report.
    plzz help me out by providing the code of sub-total feature in dis report .
    Help will be definately rewarded. here is d code of report:-
    TABLES: ISEG,MARA.
    TYPE-POOLS : SLIS.
    DATA : DATE1(15) TYPE C,
    DATE2(15) TYPE C,
    TITLE(65) TYPE C,
    DT(25) TYPE C.
    DATA : ITEVENT TYPE SLIS_T_EVENT.
    DATA: lv_sort TYPE slis_sortinfo_alv,
          t_sort type slis_t_sortinfo_alv.
    DATA : repid LIKE sy-repid.
    INTERNAL TABLE FOR INVENTORY STOCK *****************
    DATA: BEGIN OF ITS1 OCCURS 0,
          MATNR LIKE ISEG-MATNR,
          ITEMID(6) TYPE C,
          MEINS LIKE ISEG-MEINS,
          MENGE LIKE ISEG-MENGE,
          WRTZL LIKE ISEG-WRTZL,
          BUCHM LIKE ISEG-BUCHM,
          WRTBM LIKE ISEG-WRTBM,
          WERKS LIKE ISEG-WERKS,
          BUDAT LIKE ISEG-BUDAT,
          ZLDAT LIKE ISEG-ZLDAT,
          MTART LIKE MARA-MTART,
          ITEMDESC LIKE MAKT-MAKTX,
          DIFFQTY LIKE ISEG-BUCHM,
          DIFFVALUE LIKE ISEG-WRTBM,
          GRUND LIKE ISEG-GRUND,
          GRTXT LIKE T157E-GRTXT,
          BWART LIKE T157E-BWART,
          REAS TYPE C LENGTH 15,
          END OF ITS1.
    data: t_heading type slis_t_listheader.
    SELECTION-SCREEN BEGIN OF BLOCK PAR1 WITH FRAME TITLE TEXT-001.
    *SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    *********PARAMETERS*********
    PARAMETERS : PLANT LIKE ISEG-WERKS OBLIGATORY.
    *********SELECTION SCREEN OPTIONS*********
    SELECT-OPTIONS : R_DATE FOR ISEG-BUDAT OBLIGATORY NO-EXTENSION,
                     M_TYPE  FOR MARA-MTART,
                     IT_M FOR MARA-MATNR.
    *********DEFINING VARIABLES*********
    SELECTION-SCREEN END OF BLOCK par1.
    CONCATENATE R_DATE-LOW6(2) '.' R_DATE-LOW4(2) '.' R_DATE-LOW+0(4) INTO DATE1.
    CONCATENATE R_DATE-HIGH6(2) '.' R_DATE-HIGH4(2) '.' R_DATE-HIGH+0(4) INTO DATE2.
    TOP-OF-PAGE.
      PERFORM PG_HEADER.
       START-OF-SELECTION.
      SELECT AMATNR AMEINS AMENGE AWRTZL ABUCHM AWRTBM AWERKS ABUDAT AZLDAT BMTART AGRUND CBWART
       FROM ISEG AS A INNER JOIN MARA AS B ON BMATNR = AMATNR
       INNER JOIN MSEG AS C ON AMBLNR = CMBLNR
       INTO CORRESPONDING FIELDS OF TABLE ITS1 WHERE BMATNR = AMATNR  AND BMEINS = AMEINS AND AWERKS = PLANT AND ABUDAT IN R_DATE AND BMTART IN M_TYPE AND BMATNR IN IT_M.
    SORT ITS1 BY MTART.
    LOOP AT ITS1.
         ITS1-ITEMID = ITS1-MATNR+12(6).
         ITS1-DIFFQTY = ITS1-MENGE - ITS1-BUCHM.
         ITS1-DIFFVALUE = ITS1-WRTZL - ITS1-WRTBM.
         SELECT SINGLE MAKTX FROM MAKT INTO ITS1-ITEMDESC WHERE MATNR = ITS1-MATNR.
         SELECT SINGLE GRTXT INTO ITS1-GRTXT FROM T157E WHERE GRUND = ITS1-GRUND AND SPRAS = 'E' AND BWART = ITS1-BWART.
         MODIFY ITS1.
    ENDLOOP.
    PERFORM PRN_SMSTOCK_ALV.
    WRITING DATA FROM D TABLES**********
    FORM PG_HEADER.
    WRITE : 'INVENTORY REPORT             PLANT : ', PLANT.
    ENDFORM.
    *&      Form  PRN_SMSTOCK_ALV
          text
    -->  p1        text
    <--  p2        text
    form PRN_SMSTOCK_ALV .
    data: w_title   type lvc_title,
          w_repid   type syrepid,
          w_comm    type slis_formname,
          w_status  type slis_formname,
          x_layout  type slis_layout_alv,
          t_event   type slis_t_event,
          t_fieldcat type slis_t_fieldcat_alv,
          t_subtot TYPE slis_t_sortinfo_alv,
          subtot LIKE LINE OF t_subtot.
    refresh t_fieldcat.
    refresh t_event.
    refresh t_sort.
    clear x_layout.
    clear w_title.
      perform set_fieldcat2 using:
    1  'MTART'     'MTART'     'MARA'  '15'  space 'MATERIAL TYPE'        space  space  space space space space space space SPACE t_fieldcat 'L' 'L',
    2  'ITEMID'    'ITEMID'    'MARA'  '7'   space 'ITEM ID'              space  space  space space space space space space SPACE t_fieldcat 'R' 'C',
    3  'ITEMDESC'  'MAKTX'     'MAKT'  '25'  space 'MATERIAL DESCRIPTION' space  space  space space space space space space SPACE t_fieldcat 'L' 'C',
    4  'MEINS'     'MEINS'     'MARA'  '5'   space 'UOM'                  space  space  space space space space space space SPACE t_fieldcat 'C' 'C',
    5  'MENGE'     'MENGE'     'ISEG'  '13'  space 'ORG.INV.QTY'          space  space  space space space space space space SPACE t_fieldcat 'R' 'C',
    6  'WRTZL'     'WRTZL'     'ISEG'  '13'  space 'ORG.INV.VALUE'        space  space  space space space space space space SPACE t_fieldcat 'R' 'C',
    7  'BUCHM'     'BUCHM'     'ISEG'  '13'  space 'PHY.INV.QTY'          space  space  space space space space space space SPACE t_fieldcat 'R' 'C',
    8  'WRTBM'     'WRTBM'     'ISEG'  '13'  space 'PHY.INV.VALUE'        space  space  space space space space space space SPACE t_fieldcat 'R' 'C',
    9  'DIFFQTY'   'MENGE'     'ISEG'  '13'  space 'DIFF.INV.QTY'         space  space  space space space space space space SPACE t_fieldcat 'R' 'C',
    10 'DIFFVALUE' 'WRTZL'     'ISEG'  '13'  space 'DIFF.INV.VALUE'       space  space  space space space space space space SPACE t_fieldcat SPACE 'P',
    11 'BUDAT'     'BUDAT'     'ISEG'  '18'  space 'CORRECTED DATE'       space  space  space space space space space space SPACE t_fieldcat  'C' 'C',
    12 'GRTXT'     'GRTXT'     'ISEG'  '18'  space 'REASON'               space  space  space space space space space space SPACE t_fieldcat  'L' 'L',
    13 'REAS'      'REAS'      'ISEG'  '18'  space 'AUTH.BY'              space  space  space space space space space space SPACE t_fieldcat  'C' 'C'.
    x_layout-zebra = 'X'.
    perform set_top_page_heading using t_heading t_event.
    perform set_events using t_event.
      w_status = ''.
      w_repid = sy-repid.
    w_comm   = 'USER_COMMAND'.
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_callback_program       = w_repid
          it_fieldcat              = t_fieldcat
          i_Callback_top_of_page   = 'Top-of-page'
          is_layout                = x_layout
          it_sort                  = t_sort
          i_callback_pf_status_set = w_status
          i_callback_user_command  = w_comm
          i_save                   = 'X'
          it_events                = t_event
          i_grid_title             = w_title
          tables
          t_outtab                 = ITS1
          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.
    FORM set_fieldcat2 USING
          p_colpos p_fieldname p_ref_fieldname p_ref_tabname
          p_outputlen p_noout
          p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
          p_hotspot p_showasicon p_checkbox p_edit
          p_dosum
        p_subtot
          t_fieldcat TYPE slis_t_fieldcat_alv
          P_JUST
          P_FTYPE.
      DATA: wa_fieldcat TYPE slis_fieldcat_alv.
      CLEAR wa_fieldcat.
    General settings
      wa_fieldcat-fieldname = p_fieldname.
      wa_fieldcat-col_pos = p_colpos.
      wa_fieldcat-no_out = p_noout.
      wa_fieldcat-hotspot = p_hotspot.
      wa_fieldcat-checkbox = p_checkbox.
      wa_fieldcat-icon = p_showasicon.
      wa_fieldcat-do_sum = p_dosum.
    Set output length.
      IF NOT p_outputlen IS INITIAL.
        wa_fieldcat-outputlen = p_outputlen.
      ENDIF.
    Set text headers.
    IF NOT p_seltext_m IS INITIAL.
        wa_fieldcat-seltext_m = p_seltext_m.
    ENDIF.
    IF NOT p_seltext_l IS INITIAL.
        wa_fieldcat-seltext_l = p_seltext_l.
    ENDIF.
    IF NOT p_seltext_s IS INITIAL.
        wa_fieldcat-seltext_s = p_seltext_s.
    ENDIF.
      IF NOT p_reptext_ddic IS INITIAL.
        wa_fieldcat-reptext_ddic = p_reptext_ddic.
      ENDIF.
    IF NOT p_ddictxt IS INITIAL.
        wa_fieldcat-ddictxt = p_ddictxt.
    ENDIF.
      IF NOT P_JUST IS INITIAL.
        WA_FIELDCAT-JUST = P_JUST.
      ENDIF.
      IF NOT p_edit IS INITIAL.
        wa_fieldcat-Input     = 'X'.
        wa_fieldcat-edit     = 'X'.
        wa_fieldcat-do_sum = 'x'.
       wa_fieldcat-checkbox = 'x'.
       wa_fieldcat-hotspot = 'x'.
        ENDIF.
    APPEND wa_fieldcat TO t_fieldcat.
    ENDFORM.                   "set_fieldcat2
    ======================== Subroutines called by ALV ================
    *&      Form  top_of_page
          Called on top_of_page ALV event.
          Prints the heading.
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
         exporting
              it_list_commentary = t_heading.
    ENDFORM.
    form set_top_page_heading using t_heading type slis_t_listheader
                                    t_events  type slis_t_event.
    data: x_heading type slis_listheader,
          x_event   type line of slis_t_event.
    Report title
      clear t_heading[].
      clear x_heading.
      x_heading-typ = 'H'.
      x_heading-info = 'PHYSICAL INVENTORY AUDIT REPORT'.
      append x_heading to t_heading.
    Plant Name
    clear x_heading.
      x_heading-typ = 'S'.
      x_heading-key = 'PLANT        : '.
      x_heading-info = PLANT.
      append x_heading to t_heading.
    IF DATE2 = '00.00.0000'.
      CONCATENATE DATE1 'to' DATE1 INTO DT SEPARATED BY SPACE.
    ELSE.
      CONCATENATE DATE1 'to' DATE2 INTO DT SEPARATED BY SPACE.
    ENDIF.
    X_heading-TYP = 'S'.
    X_heading-key = 'PERIOD         :'.
    X_heading-INFO = DT.
    APPEND x_heading TO t_heading.
    Control Date
      clear x_heading.
      x_heading-typ = 'S'.
      x_heading-key = 'CONTROL NO. :'.
      x_heading-info = ' ASDFADDFAAS  DATE : 11.04.2007'.
      append x_heading to t_heading.
    Top of page event
      x_event-name = slis_ev_top_of_page.
      x_event-form = 'TOP_OF_PAGE'.
      append x_event to t_events.
    endform.
    form set_events using t_events type slis_t_event.
    data: x_event   type line of slis_t_event.
    endform.
    Edited by: ric .s on Jan 29, 2008 5:21 AM

    Hi,
        U can do subtotal for a field based on some other field in ur ALV report using slis_t_sortinfo_alv.
    see the sample code below...
    data:  int_sort TYPE slis_t_sortinfo_alv,
              fs_sort TYPE slis_sortinfo_alv.
    Sort the output based on ORG UNIT.
      CLEAR fs_sort.
      fs_sort-fieldname = 'ORGEH'.
      fs_sort-subtot = 'X'.
      fs_sort-up = 'X'.
      APPEND fs_sort TO int_sort.
    perform f_alv_catsfieldcat.
    Fieldcat calculates the sum for SMPCNT field.
    FORM f_alv_catsfieldcat.
       DATA: loc_fieldcat TYPE slis_fieldcat_alv.
      DEFINE define_field.            
        clear loc_fieldcat.
        loc_fieldcat-fieldname = &1.
        loc_fieldcat-seltext_l = &2.
        loc_fieldcat-key = &3.
        loc_fieldcat-outputlen = &4.
        loc_fieldcat-do_sum = &5.
        append loc_fieldcat to int_fieldcat.
      END-OF-DEFINITION.
      REFRESH int_fieldcat.
      CLEAR int_fieldcat.
    define_field 'PERNR' text-029 'X' '8' ''.
    define_field 'ENAME' text-030 '' '40' ''.
    define_field 'KOSTL' text-037 '' '10' ''.
    define_field 'SMPCNT' text-040 '' '' 'X'. 
    endform.
    Then call REUSE_ALV-GRID_DISPLAY with ur internal table with int_sort.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
              EXPORTING
                i_callback_program       = sy-repid
                i_callback_top_of_page   = 'TOP_OF_PAGE'
                it_sort                  = int_sort  
             i_callback_pf_status_set = 'F_PF_STATUS_SET'
                i_callback_user_command  = 'F_USER_COMMAND'
                it_fieldcat              = int_fieldcat
                i_save                   = 'X'
              TABLES
                t_outtab                 = int_outputcpy
              EXCEPTIONS
                program_error            = 1
                OTHERS                   = 2.
            IF sy-subrc <> 0.
              WRITE / 'error'.
            ENDIF.
    Hope it will help u..
    Reward points if helpful
    Cheers,
    Shanthi
    Edited by: shanthi ps on Jan 29, 2008 5:37 AM
    Edited by: shanthi ps on Jan 29, 2008 5:38 AM

  • How to get total in ALV report in same Internal table?

    Data : Begin of it_data,
            kunnr type kunnr,
            name1 type name1,
            amt1  type btrt01, " CURR 15,2
           end of it_data.
    loop at it_data into wa_data
    endloop.      
    Hello friends,
    I am developing one ALV report with 20 rows.
    I have filled one internal table with some fileds like amount.
    I want to get total of all amount1 in AMT1 field.
    So, How to get total of amount in same internal table in ALV report ?
    It is ok if i get duplicate rows in internal table.
    Points 'll be awarded soon.
    Regards,
    NVM

    Hi Ronny,
    the alv output will display the sum at the last row.
    for this functionality u have do this logic.
    data: lw_fcat type slis_fieldcat_alv.
    data: lt_fcat type slis_t_fieldcat_alv/
    wa_fcat-fieldname = 'AMT1'.
    wa_fcat-tabname = 'ITAB'.
    wa_fcat-do_sum = 'X'.
    append wa_fcat to lt_fcat.
    and then pass it to reuse_alv_grid_display function,
    regards,
    Santosh Thorat

  • Subtotals and Totals In ALV Report

    Hi Experts,
    I have a problem in my current scenario,
    I have 3 fields,
    KUNNR, WAERS, DMBTR.
    000001 USD         100.00
    000001 USD         200.00
    000002 USD         100.00
    000002 USD         400.00
    000002 EUR         300.00
    000002 EUR         100.00
    The above mentioned is the data I have in my internal table & in my ALV report as well, Which is fine...!
    Now I need Subtotals for each customer,
    Means for customer 000001 The subtotal is 300 (USD)
    Means for customer 000002 The subtotal is 500 (USD)
    Means for customer 000002 The subtotal is 400 (EUR)
    At the end I need grand totals.
    USD 800
    EUR 400.
    Currently My field catalog is given below.
        FIELDCATALOG-COL_POS     = COL_POS.
        FIELDCATALOG-FIELDNAME   = 'DMBTR'.
        FIELDCATALOG-SELTEXT_M   = TEXT-106.
        FIELDCATALOG-DO_SUM      = 'X'.
        APPEND FIELDCATALOG TO FIELDCATALOG.
        CLEAR  FIELDCATALOG.
    what else I need to do for getting individual subtotals by currency and customers.
    Thanks & regards,
    Dileep .C

    Hi Deelip,
    FOR TOTAL:
    there is a property of fieldcatalog, that is do_sum.
    USE COED LIKE:
    PERFORM fieldcat USING:
    '1' 'KUNNR' 'I_MARD' 'CUSTOMER NO' ,
    '2' 'DMBTR' 'I_MARD' 'CURRENCY' ,
    FORM fieldcat USING value(p_0029)
    value(p_0030)
    value(p_0031)
    value(p_0032)
    wa_fieldcat-col_pos = p_0029.
    wa_fieldcat-fieldname = p_0030.
    wa_fieldcat-tabname = p_0031.
    wa_fieldcat-reptext = p_0032.
    wa_fieldcat-do_sum = 'X'.
    APPEND wa_fieldcat TO i_fieldcat.
    ENDFORM. " FIELDCAT
    in final output you will get the total of currency field.
    FOR SUB TOTAL:
    decleare: i_sort type standard table of slis_sortinfo_alv,
              wa_sort type slis_t_sortinfo_alv.
    wa_sort-spos = '1'.
    wa_sort-fieldname = 'KUNNR'.
    wa_sort-tablename = 'i_final'
    wa_sort-up = 'x'
    wa_sort-subtot = 'X'.
    wa_sort-spos = '2'.
    wa_sort-fieldname = 'WAERS'.
    wa_sort-tablename = 'i_final'
    wa_sort-up = 'x'
    wa_sort-subtot = 'X'.
    append wa_tab to i_sort.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    it_fieldcat = it_fieldcat
    it_sort = i_sort
    Hope this can solve your pbs.
    Regards,
    Tutun

  • CUSTOMIZE FIELD TOTAL IN ALV REPORT

    Hi all,
    I am using ALV List display and calculating totals and subtotals. I have 3 columns and the totals are all displayed column-wise.
    But my requirement is that total of 3rd column should not be the sum of all the values in that column but it has to be ( total of column1 / total of column2 ). How can I replace already calculated total of column 3 by the value I get by custom logic. Please suggest me which event needs to be used and how to capture calculated total values of first 2 columns.
    Here is e.g.
    COL1                           COL2                         COL3
    1               |                       2                 |              0.5
    9               |                       3                 |               3
    10             |                      5                 |                3.5        -> VALUE DISPLAYED BY ALV TOTAL
    10             |                      5                 |               (10/5 = 2) -> VALUE REQUIRED TO BE DISPLAYED
    Waiting for your replies....
    Regards
    Vasu

    Check the following example:
    report z_tot_alv.
    TYPE-POOLS SLIS.
    DATA: BEGIN OF ITAB OCCURS 0,
           BELNR LIKE BSEG-BELNR,
           GJAHR TYPE I,
           WRBTR TYPE I,
           WAERS LIKE BKPF-WAERS,
           TOTAL TYPE P,
          END OF ITAB.
    DATA: LAYOUT     TYPE SLIS_LAYOUT_ALV,
          IT_EVENTS  TYPE SLIS_T_EVENT,
          FCAT       TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          REC_FCAT   TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    START-OF-SELECTION.
      FCAT-COL_POS       = 1.
      FCAT-FIELDNAME     = 'BELNR'.
      FCAT-TABNAME       = 'ITAB'.
      FCAT-REF_FIELDNAME = 'BELNR'.
      FCAT-REF_TABNAME   = 'BSEG'.
      APPEND FCAT.
      FCAT-COL_POS       = 2.
      FCAT-FIELDNAME     = 'GJAHR'.
      FCAT-TABNAME       = 'ITAB'.
      FCAT-REF_FIELDNAME = 'GJAHR'.
      FCAT-DATATYPE      = 'INT4'.
      FCAT-INTTYPE       = 'I'.
      FCAT-DO_SUM        = 'X'.
      APPEND FCAT.
      FCAT-COL_POS       = 3.
      FCAT-FIELDNAME     = 'WRBTR'.
      FCAT-TABNAME       = 'ITAB'.
      FCAT-DATATYPE      = 'INT4'.
      FCAT-INTTYPE       = 'I'.
      FCAT-DO_SUM        = 'X'.
      APPEND FCAT.
    FCAT-COL_POS       = 4.
      FCAT-FIELDNAME     = 'TOTAL'.
      FCAT-TABNAME       = 'ITAB'.
    *  FCAT-DATATYPE      = 'INT4'.
      FCAT-INTTYPE       = 'P'.
      FCAT-DO_SUM        = 'X'.
      APPEND FCAT.
      DO 10 TIMES.
        ITAB-WRBTR = SY-INDEX.
        ITAB-GJAHR = SY-INDEX + 1.
       ITAB-TOTAL = ITAB-WRBTR / ITAB-GJAHR.
        APPEND ITAB.
      ENDDO.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          I_CALLBACK_PROGRAM = 'Z_TOT_ALV'.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          IS_LAYOUT   = LAYOUT
          IT_FIELDCAT = FCAT[]
          I_TABNAME   = 'ITAB'
          IT_EVENTS   = IT_EVENTS[]
        TABLES
          T_OUTTAB    = ITAB[].
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.

  • Only sub total in alv report

    hi,
    I have a report on ALV with sub totals for some fields, it is working fine but my requirement is whether i can get only the sub totals of that report.
    regards,
    Prabhu

    HI
    refer this code.
    REPORT ZALV.
    TYPE-POOLS: SLIS.
    DATA: G_REPID LIKE SY-REPID,
    GS_PRINT            TYPE SLIS_PRINT_ALV,
    GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
    GT_EVENTS           TYPE SLIS_T_EVENT,
    GT_SORT             TYPE SLIS_T_SORTINFO_ALV,
    GS_LAYOUT           TYPE SLIS_LAYOUT_ALV,
    GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV,
    FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
    COL_POS TYPE I.
    DATA: BEGIN OF ITAB,
      FIELD1(5) TYPE C,
      FIELD2(5) TYPE C,
      FIELD3(5) TYPE P DECIMALS 2,
    END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 0.
      INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB1.
    DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
      INCLUDE STRUCTURE ITAB.
    DATA: END OF ITAB_FIELDCAT.
    Print Parameters
    PARAMETERS:
                P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
                P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
                P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
                P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
                P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
                P_RESERV TYPE I.                  "NO OF FOOTER LINE
    INITIALIZATION.
    G_REPID = SY-REPID.
    PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS
    START-OF-SELECTION.
    TEST DATA
    MOVE 'TEST1' TO ITAB1-FIELD1.
    MOVE 'TEST1' TO ITAB1-FIELD2.
    MOVE '10.00' TO ITAB1-FIELD3.
    APPEND ITAB1.
    MOVE 'TEST2' TO ITAB1-FIELD1.
    MOVE 'TEST2' TO ITAB1-FIELD2.
    MOVE '20.00' TO ITAB1-FIELD3.
    APPEND ITAB1.
    DO 50 TIMES.
      APPEND ITAB1.
    ENDDO.
    END-OF-SELECTION.
    PERFORM BUILD.
    PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
    PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE.
    PERFORM CALL_ALV.
    FORM BUILD.
    DATA FIELD CATALOG
    Explain Field Description to ALV
    DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
    CLEAR FIELDCAT_IN.
    FIELDCAT_LN-FIELDNAME = 'FIELD1'.
    FIELDCAT_LN-TABNAME   = 'ITAB1'.
    *FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
    FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY
    FIELDCAT_LN-NO_OUT    = ' '.
    FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
    APPEND FIELDCAT_LN TO GT_FIELDCAT.
    CLEAR FIELDCAT_IN.
    FIELDCAT_LN-FIELDNAME = 'FIELD2'.
    FIELDCAT_LN-TABNAME   = 'ITAB1'.
    FIELDCAT_LN-NO_OUT    = 'X'.
    FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
    APPEND FIELDCAT_LN TO GT_FIELDCAT.
    CLEAR FIELDCAT_IN.
    FIELDCAT_LN-FIELDNAME     = 'FIELD3'.
    FIELDCAT_LN-TABNAME       = 'ITAB1'.
    FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
    FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "<- REF TABLE IN THE DICTIONNARY
    FIELDCAT_LN-NO_OUT        = ' '.
    FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY
    APPEND FIELDCAT_LN TO GT_FIELDCAT.
    DATA SORTING AND SUBTOTAL
    DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
    CLEAR GS_SORT.
    GS_SORT-FIELDNAME = 'FIELD1'.
    GS_SORT-SPOS      = 1.
    GS_SORT-UP        = 'X'.
    GS_SORT-SUBTOT    = 'X'.
    APPEND GS_SORT TO GT_SORT.
    CLEAR GS_SORT.
    GS_SORT-FIELDNAME = 'FIELD2'.
    GS_SORT-SPOS      = 2.
    GS_SORT-UP        = 'X'.
    *GS_SORT-SUBTOT    = 'X'.
    APPEND GS_SORT TO GT_SORT.
    ENDFORM.
    FORM CALL_ALV.
    ABAP List Viewer
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = G_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = ' '
    I_STRUCTURE_NAME = 'ITAB1'
    IS_LAYOUT =  GS_LAYOUT
    IT_FIELDCAT = GT_FIELDCAT[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
      IT_SORT = GT_SORT[]
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
      IT_EVENTS = GT_EVENTS[]
    IT_EVENT_EXIT =
      IS_PRINT = GS_PRINT
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    T_OUTTAB = ITAB1
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
    ENDFORM.
    HEADER FORM
    FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
    CONSTANTS:
    GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
    *GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = LT_EVENTS.
      READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO LT_EVENTS.
      ENDIF.
    define END_OF_PAGE event
    READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE
                             INTO LS_EVENT.
    IF SY-SUBRC = 0.
      MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
      APPEND LS_EVENT TO LT_EVENTS.
    ENDIF.
    ENDFORM.
    FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
      DATA: GS_LINE TYPE SLIS_LISTHEADER.
      CLEAR GS_LINE.
      GS_LINE-TYP  = 'H'.
      GS_LINE-INFO = 'HEADER 1'.
      APPEND GS_LINE TO GT_TOP_OF_PAGE.
      CLEAR GS_LINE.
      GS_LINE-TYP  = 'S'.
      GS_LINE-KEY  = 'STATUS 1'.
      GS_LINE-INFO = 'INFO 1'.
      APPEND GS_LINE TO GT_TOP_OF_PAGE.
      GS_LINE-KEY  = 'STATUS 2'.
      GS_LINE-INFO = 'INFO 2'.
      APPEND GS_LINE TO GT_TOP_OF_PAGE.
    CLEAR GS_LINE.
    GS_LINE-TYP  = 'A'.
    GS_LINE-INFO = 'ACTION'.
    APPEND GS_LINE TO  GT_TOP_OF_PAGE.
    ENDFORM.
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
      WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
    ENDFORM.
    FORM END_OF_PAGE.
      WRITE at (sy-linsz) sy-pagno CENTERED.
    ENDFORM.
    PRINT SETTINGS
    FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
      LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE
      LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO
      LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE
      LS_PRINT-NO_NEW_PAGE        = P_NONEWP.
      LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
      LS_PRINT-RESERVE_LINES      = P_RESERV.
    ENDFORM.
    *END OF ZALV PROGRAM
    Reward all helpfull answers.
    Regards.
    Jay

Maybe you are looking for

  • PDF report printing BI Publisher in APEX fails

    Hi, I have created page, in which, a BIP report will be generated on click of a text link. It was working fine earlier. APEX version is 4.1 which has BIP integrated. But today I am facing an issue when I click the link, to get the report. The report

  • IPod Nano 3rd Gen "Space"

    Well it is said that for the specs of the 3rd gen nano (8GB) that you can have Up to 2,000 songs, up to 7,000 photos, up to 8 hours of video, or some of each. What if I use around 2,000 Songs but no photos, how much more hours of video can i have?

  • .htaccess support in DW9

    Hi Adobe, If you're monitoring these channels, please include editing support for .htaccess files in Dreamweaver 9. I'm sure there are plenty of people developing on Apache webservers who would love to make a quick edit from the Files panel without h

  • Tables that provide information on infoproviders

    HI , I need a table in BW/BI system which must have details of the infoproviders 1) How often they are loaded ? 2)  whether been used in reports? It is OK if the information is spread across multiple tables Thanks

  • KeyPressed/KeyTyped/KeyReleased

    I have a JDialog (2 JTextFields and 2 JButtons) that needs to respond to the <enter> key the same way that it should respond when the user clicks the 'OK' button on the same dialog (both actions result in running a report that displays in another win