Skip to Content
author's profile photo Former Member
Former Member

subtotals in ALV

Hi,

I'm performing subtotal based on a column in ALV.

It shows the sum of the rows for other columns. Out of which for one column, I don't want it to show the sum, buy my own calculated value. How do I do that.

Regards,

Vijay

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

3 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Dec 12, 2005 at 02:33 PM

    You can achieve it using sort criteria.

    If you are using methods, then you can create a strucutre of type LVC_T_SORT, assign field name on which you want subtotal to LVC_T_SORT-FIELDNAME and set LVC_T_SORT-SUBTOT = 'X' and pass it to method SET_TABLE_FOR_FIRST_DISPLAY.

    otherwise if you are using function module REUSE_ALV_LIST_DISPLAY then in that function module there is an import parameter IT_SORT of type SLIS_T_SORTINFO_ALV.

    asign field name on which you want subtotal to SLIS_T_SORTINFO_ALV-FIELDNAME and set SLIS_T_SORTINFO_ALV-SUBTOT = 'X' and pass it to function REUSE_ALV_LIST_DISPLAY.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 12, 2005 at 02:35 PM

    Hi Vijay,

    Not clear, why your calculated value will be different from the calulated value in ALV?

    Regards,

    Raj

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 13, 2005 at 12:32 PM

    Hi,

    Here is a small program to calculate subtotals in ALV.

    REPORT z_demo_alv_sort.

    ----


    • This program lists orders (VBAK) with sort and sub-total for *

    • 'sold-to-party' (KUNNR) and 'Sales organization' (VKORG) *

    ----


    TABLES : vbak.

    TYPE-POOLS: slis. " ALV Global types

    SELECT-OPTIONS :

    s_vkorg FOR vbak-vkorg, " Sales organization

    s_kunnr FOR vbak-kunnr, " Sold-to party

    s_vbeln FOR vbak-vbeln. " Sales document

    SELECTION-SCREEN :

    SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.

    PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.

    SELECTION-SCREEN END OF LINE.

    DATA:

    BEGIN OF gt_vbak OCCURS 0,

    vkorg LIKE vbak-vkorg, " Sales organization

    kunnr LIKE vbak-kunnr, " Sold-to party

    vbeln LIKE vbak-vbeln, " Sales document

    netwr LIKE vbak-netwr, " Net Value of the Sales Order

    waerk LIKE vbak-waerk, " Document currency

    END OF gt_vbak.

    ----


    INITIALIZATION.

    v_1 = 'Maximum of records to read'.

    ----


    START-OF-SELECTION.

    PERFORM f_read_data.

    PERFORM f_display_data.

    ----


    • Form f_read_data

    ----


    FORM f_read_data.

    SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak

    FROM vbak

    UP TO p_max ROWS

    WHERE kunnr IN s_kunnr

    AND vbeln IN s_vbeln

    AND vkorg IN s_vkorg.

    ENDFORM. " F_READ_DATA

    ----


    • Form f_display_data

    ----


    FORM f_display_data.

    DEFINE m_fieldcat.

    add 1 to ls_fieldcat-col_pos.

    ls_fieldcat-fieldname = &1.

    ls_fieldcat-ref_tabname = 'VBAK'.

    ls_fieldcat-do_sum = &2.

    ls_fieldcat-cfieldname = &3.

    append ls_fieldcat to lt_fieldcat.

    END-OF-DEFINITION.

    DEFINE m_sort.

    add 1 to ls_sort-spos.

    ls_sort-fieldname = &1.

    ls_sort-up = 'X'.

    ls_sort-subtot = &2.

    append ls_sort to lt_sort.

    END-OF-DEFINITION.

    DATA:

    ls_fieldcat TYPE slis_fieldcat_alv,

    lt_fieldcat TYPE slis_t_fieldcat_alv,

    lt_sort TYPE slis_t_sortinfo_alv,

    ls_sort TYPE slis_sortinfo_alv,

    ls_layout TYPE slis_layout_alv.

    m_fieldcat 'VKORG' '' ''.

    m_fieldcat 'KUNNR' '' ''.

    m_fieldcat 'VBELN' '' ''.

    m_fieldcat 'NETWR' 'X' 'WAERK'.

    m_fieldcat 'WAERK' '' ''.

    m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal

    m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal

    m_sort 'VBELN' ''. " Sort by vbeln

    ls_layout-cell_merge = 'X'.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    is_layout = ls_layout

    it_fieldcat = lt_fieldcat

    it_sort = lt_sort

    TABLES

    t_outtab = gt_vbak.

    ENDFORM. " F_DISPLAY_DATA

    If it is helpful pls reward points.

    Regards ,

    Sharath

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.