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 subtotals using methods

Former Member
0 Kudos

Hi

Please provide me sample code for subtotals using methods.

The code is

DATA: ls_sort TYPE lvc_s_sort.

ls_sort-spos = '1' .

ls_sort-fieldname = 'BWART'.

ls_sort-up = 'X'.

ls_sort-subtot = 'X'.

*ls_sort-group = 'UL'.

APPEND ls_sort TO p_gt_sort.

endform

but it is not working

Please help me

4 REPLIES 4

Former Member
0 Kudos

HI Alekhya,

Use like this....

Instead of ls_sort-subtot = 'X'. Use

ls_sort-do_sum = 'X'.

Cheers,

priya

Former Member
0 Kudos

Former Member
0 Kudos

Hi,

U have to do the subtotal column wise.In the field catalog specify the following in addition to the corresponding field name(i.e. Column)

DATA ls_fcat TYPE lvc_s_fcat.

ls_fcat-do_sum = 'X'.

Hope this helps u out.

Regards,

Shalini

former_member188685
Active Contributor
0 Kudos

Hi,

this is how you should do...

CLASS lcl_event_handler DEFINITION DEFERRED.

DATA: dg_events_receiver TYPE REF
                            TO lcl_event_handler.  "event receiver

*---------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
*       For Event handling                                             *
*---------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:

       subtotal_text        FOR EVENT subtotal_text
                         OF cl_gui_alv_grid
                         IMPORTING es_subtottxt_info
                                   ep_subtot_line
                                   e_event_data.


ENDCLASS.                    "VERIFY_EVENT_HANDLER DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
*       Implementation of event handler method                        *
*---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.

  METHOD subtotal_text.
    PERFORM d0100_event_subtotal_text USING es_subtottxt_info
                                            ep_subtot_line
                                            e_event_data.
  ENDMETHOD.                    "subtotal_text

ENDCLASS.                    "lcl_event_handler IMPLEMENTATION

*--set event handler
  PERFORM set_event_handler.
 
  CALL METHOD dg_grid->set_table_for_first_display
    EXPORTING
      is_layout                     = ds_layout
    CHANGING
      it_outtab                     = <fs_f>
      it_fieldcatalog               = dt_alv_cat
      it_sort                       = dt_sort
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.
  IF sy-subrc <> 0.
    MESSAGE i000 WITH
         'Error in calling SET_TABLE_FOR_FIRST_DISPLAY'(026).
  ENDIF.


*&---------------------------------------------------------------------*
*&      Form  set_event_handler
*&---------------------------------------------------------------------*
*       event handler
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM set_event_handler .
  CREATE OBJECT dg_events_receiver.
  SET HANDLER dg_events_receiver->subtotal_text
              FOR dg_grid.
ENDFORM.                    " set_event_handler

*&---------------------------------------------------------------------*
*&      Form  d0100_event_subtotal_text
*&---------------------------------------------------------------------*
*       To handle subtotal text event
*----------------------------------------------------------------------*
*      -->P_ES_SUBTOTTXT_INFO  text
*      -->P_EP_SUBTOT_LINE  text
*      -->P_E_EVENT_DATA  text
*----------------------------------------------------------------------*
FORM d0100_event_subtotal_text  USING
                        p_es_subtottxt_info TYPE lvc_s_stxt
                       p_ep_subtot_line TYPE REF TO data
                       p_e_event_data TYPE REF TO cl_alv_event_data .
  FIELD-SYMBOLS: <fs> TYPE ANY.

  ASSIGN p_e_event_data->m_data->* TO <fs>.
  <fs> = 'TOTAL'(027).
ENDFORM.                    " d0100_event_subtotal_text

Regards

vijay