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 Grid Display Total Text

Former Member
0 Kudos

Hi,

Not able to display Grand Total Text in ALV Grid Display. I am able to display Subtotal Texts in ALV Grid but not the Grand Total Text..

not able to find out the exact solution from previous posts..

Please Help me.

Thank You,

Jhansi

5 REPLIES 5

mohammed_moqeeth
Active Participant
0 Kudos

Hi,

You can display text for total using LAYOUT-TOTALS_TEXT

Example:

data:

I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

wa_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

l_layout type slis_layout_alv,

i_events type slis_t_event.

l_layout-SUBTOTALS_TEXT = 'Sub Total'.

l_layout-TOTALS_TEXT = 'Total'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

is_layout = l_layout

it_fieldcat = I_FIELDCAT

it_events = i_events

it_sort = i_sort.

Regards,

Moqeeth.

Former Member
0 Kudos

The given solution works only for list display not for grid display...

0 Kudos

Use the event SUBTOTAL_TEXT to get the grandtotal text. The structurre slis_subtot_text will have no values for TOTAL.

0 Kudos

Hi ,

In below program

ls_fieldcat-fieldname = 'WGBEZ' and

ls_fieldcat-fieldname = 'KUNRG' are used just to get subtotlal text .

Thanks

Vinay



REPORT  zsd_billing_trans_report                .


*Tables
TABLES : vbrk ,
         vbrp.
*         bseg.

*ALV data declarations.
TYPE-POOLS: slis.

*Field catalog structure
DATA: ls_fieldcat     TYPE slis_fieldcat_alv,    "Field Catalog list

**--- Field Catalog table
      gt_fieldcat     TYPE slis_t_fieldcat_alv,  "Field Catalog
**-----ALV sort
      gt_sort     TYPE slis_t_sortinfo_alv,
      ls_sort     TYPE slis_sortinfo_alv,

*     layout type
      gd_layout    TYPE slis_layout_alv,      "List Layout

*Alv Event
      gt_events TYPE slis_t_event,
      ls_event TYPE slis_alv_event,

      gd_variant   LIKE disvariant,
      gd_repid     LIKE sy-repid.


* TYPE Declarations
TYPES : BEGIN OF type_output,
          kunrg TYPE kunrg ,  "vbrk
          kunrg1 TYPE kunrg,
          wgbez TYPE wgbez ,                                "t023t
          wgbez1 TYPE wgbez,
          fkdat TYPE fkdat ,  "vbrk
          vbeln TYPE vbeln ,  "vbrk
          matnr TYPE matnr ,  "vbrp
          arktx TYPE arktx,   "vbrp
          netwr TYPE netwr ,  "vbrp
        END OF type_output.

TYPES : BEGIN OF type_mvgr5,
         matnr TYPE matnr,
         mvgr5 TYPE mvgr5,
       END OF type_mvgr5.

*internal tables and work areas declarations
DATA :  wa_vbrk TYPE vbrk,
        wa_vbrp TYPE vbrp,
        wa_output TYPE type_output,
        wa_mvgr5 TYPE type_mvgr5,
        wa_t023t TYPE t023t.

DATA: ts_vbrk TYPE STANDARD TABLE OF vbrk ,
      ts_vbrp TYPE STANDARD TABLE OF vbrp,
      ts_output TYPE STANDARD TABLE OF type_output ,
      ts_mvgr5 TYPE STANDARD TABLE OF type_mvgr5,
      ts_t023t TYPE STANDARD TABLE OF t023t.

*variable Declaration s

*constant Declarations
DATA : c_en(2) TYPE c VALUE 'EN'.

*selection screen .
SELECTION-SCREEN BEGIN OF BLOCK b1  WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_kunrg FOR vbrk-kunrg." OBLIGATORY,
PARAMETERS: p_vkorg LIKE vbrk-vkorg OBLIGATORY." DEFAULT  'FMAU'.
SELECT-OPTIONS: s_fkdat FOR vbrk-fkdat OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

*start of selection
START-OF-SELECTION.

*  PERFORM get_material_grp.

  PERFORM get_material_grp_desc.

  PERFORM get_billing_data.

  SORT ts_output BY kunrg wgbez vbeln.

  PERFORM build_alv_fieldcatalog.

  PERFORM alv_sort.

  PERFORM alv_build_layout.

  PERFORM alv_event_set . "set event for subtotal text

  PERFORM display_alv.

*&---------------------------------------------------------------------*
*&      Form  Get_Billing_Data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

*&      Form  build_alv_fieldcatalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_alv_fieldcatalog .


  ls_fieldcat-fieldname   = 'KUNRG'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Patient'.
  ls_fieldcat-col_pos     = 0.
  ls_fieldcat-key         = 'X'.
  ls_fieldcat-no_out         =  'X'.        "No output
  ls_fieldcat-tech           =  'X'.       "Technical field
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'KUNRG1'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Patient'.
  ls_fieldcat-col_pos     = 0.
  ls_fieldcat-outputlen   = 10.
  ls_fieldcat-emphasize   = 'X'.
  ls_fieldcat-key         = 'X'.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'WGBEZ1'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Material Group'.
  ls_fieldcat-col_pos     = 1.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.


  ls_fieldcat-fieldname   = 'WGBEZ'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Material Group'.
  ls_fieldcat-col_pos     = 1.
  ls_fieldcat-no_out         =  'X'.        "No output
  ls_fieldcat-tech           =  'X'.       "Technical field

  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'FKDAT'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Invoice Date'(004).
  ls_fieldcat-col_pos     = 2.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'VBELN'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Invoice Number'(005).
  ls_fieldcat-col_pos     = 3.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'MATNR'.
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Material'(006).
  ls_fieldcat-col_pos     = 4.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'ARKTX'(006).
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Material Desc'.
  ls_fieldcat-col_pos     = 5.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

  ls_fieldcat-fieldname   = 'NETWR'(007).
  ls_fieldcat-tabname      = 'TS_OUTPUT'.
  ls_fieldcat-seltext_m   = 'Invoice Amount'.
  ls_fieldcat-col_pos     = 6.
  ls_fieldcat-do_sum = 'X'.
  APPEND ls_fieldcat TO gt_fieldcat.
  CLEAR  ls_fieldcat.

ENDFORM.                    " build_alv_fieldcatalog


*&---------------------------------------------------------------------*
*&      Form  display_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_alv .

  gd_repid = sy-repid.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program     = gd_repid
      i_callback_top_of_page = 'TOP-OF-PAGE'  "see FORM
      is_layout              = gd_layout
      it_fieldcat            = gt_fieldcat[]
      i_save                 = 'X'
      it_sort                = gt_sort
      it_events              = gt_events[]
      i_default              = 'X'
    TABLES
      t_outtab               = ts_output
    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_alv
*&---------------------------------------------------------------------*
*&      Form  alv_build_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_build_layout .
  gd_layout-no_input          = 'X'.
  gd_layout-colwidth_optimize = 'X'.
  gd_layout-totals_text       = 'Totals'(101).

ENDFORM.                    " alv_build_layout



*&---------------------------------------------------------------------*
*&      Form  top-of-page
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM top-of-page.
*ALV Header declarations
  DATA: t_header TYPE slis_t_listheader,
        wa_header TYPE slis_listheader,
        t_line LIKE wa_header-info,
        ld_lines TYPE i,
        ld_linesc(10) TYPE c.

* Title
  wa_header-typ  = 'H'.
  wa_header-info = 'Monthy Transaction Report'(008).
  APPEND wa_header TO t_header.
  CLEAR wa_header.

* Date
  wa_header-typ  = 'S'.
  wa_header-key = 'Date: '.
  CONCATENATE  sy-datum+6(2) '.'
               sy-datum+4(2) '.'
               sy-datum(4) INTO wa_header-info.   "todays date
  APPEND wa_header TO t_header.
  CLEAR: wa_header.

*billing date

  IF s_fkdat-high IS INITIAL.
    s_fkdat-high = s_fkdat-low.
  ENDIF.

  CONCATENATE 'Billing Period : '(009)  s_fkdat-low+6(2) '.' s_fkdat-low+4(2) '.' s_fkdat-low(4) ' to '
                                  s_fkdat-high+6(2) '.' s_fkdat-high+4(2) '.' s_fkdat-high(4)
                                  INTO t_line." separated by space.
  wa_header-typ  = 'A'.
  wa_header-info = t_line.
  APPEND wa_header TO t_header.
  CLEAR: wa_header, t_line.

* Total No. of Records Selected
  DESCRIBE TABLE ts_output LINES ld_lines.
  ld_linesc = ld_lines.
  CONCATENATE 'Total No. of Records Selected: '(010) ld_linesc
                    INTO t_line SEPARATED BY space.
  wa_header-typ  = 'A'.
  wa_header-info = t_line.
  APPEND wa_header TO t_header.
  CLEAR: wa_header, t_line.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = t_header.
*            i_logo             = 'Z_LOGO'.
ENDFORM.                    "top-of-page
*&---------------------------------------------------------------------*
*&      Form  alv_sort
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_sort .
  ls_sort-spos = '0'  .
  ls_sort-fieldname = 'KUNRG'.
  ls_sort-tabname = 'TS_OUTPUT'.
  ls_sort-up = 'X'.
  ls_sort-subtot = 'X'.
  APPEND ls_sort TO gt_sort.
  CLEAR ls_sort.


  ls_sort-spos = '1'  .
  ls_sort-tabname = 'TS_OUTPUT'.
  ls_sort-fieldname = 'WGBEZ'.
  ls_sort-up = 'X'.
  ls_sort-subtot = 'X'.
  APPEND ls_sort TO gt_sort.
  CLEAR ls_sort.


  ls_sort-tabname = 'TS_OUTPUT'.
  ls_sort-fieldname = 'KUNRG1'.
  ls_sort-up = 'X'.
  APPEND ls_sort TO gt_sort.
  CLEAR ls_sort.


  ls_sort-tabname = 'TS_OUTPUT'.
  ls_sort-fieldname = 'WGBEZ1'.
  ls_sort-up = 'X'.
  APPEND ls_sort TO gt_sort.
  CLEAR ls_sort.



ENDFORM.                    " alv_sort
*&---------------------------------------------------------------------*
*&      Form  get_material_grp_Desc
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_material_grp_desc .

  SELECT * FROM t023t INTO TABLE ts_t023t." where spras = C_en.
  SORT ts_t023t BY matkl spras.
ENDFORM.                    " get_material_grp_Desc
*&---------------------------------------------------------------------*
*&      Form  get_material_grp
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
*FORM get_material_grp .
*  SELECT matnr mvgr5 INTO TABLE ts_mvgr5 FROM mvke WHERE vkorg = p_vkorg.
*  SORT ts_mvgr5 BY matnr.
*
*ENDFORM.                    " get_material_grp
*&---------------------------------------------------------------------*
*&      Form  alv_event_set
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_event_set .
  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       = gt_events
    EXCEPTIONS
      list_type_wrong = 0
      OTHERS          = 0.


  "* Subtotal
  READ TABLE gt_events  INTO ls_event
                    WITH KEY name = slis_ev_subtotal_text.
  IF sy-subrc = 0.
    MOVE c_formname_subtotal_text TO ls_event-form.
    MODIFY gt_events FROM ls_event INDEX sy-tabix.
  ENDIF.

ENDFORM.                    " alv_event_set

*&---------------------------------------------------------------------*
*&      Form  subtotal_text
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_TOTAL        text
*      -->P_SUBTOT_TEXT  text
*----------------------------------------------------------------------*
FORM subtotal_text CHANGING
               p_total TYPE any
               p_subtot_text TYPE slis_subtot_text.
* Patient Level Text
  IF p_subtot_text-criteria = 'KUNRG'.
    p_subtot_text-display_text_for_subtotal
                 = 'Patient Total'(011).
  ENDIF.

*  Material Group Text
  IF p_subtot_text-criteria = 'WGBEZ'.
    p_subtot_text-display_text_for_subtotal = 'Material Group Total'(012) .
  ENDIF.

ENDFORM.                    "subtotal_text

0 Kudos

Hi,

You have to use TOTALS_TEXT field of slis_layout_alv to display grand

total text.

For your reference please visit these links:

1.

2.

3.

May it helps you.

Regards.

DS.