Skip to Content
0
Former Member
Apr 30, 2014 at 10:55 AM

Problem displaying 'Total' text in ALV grid

818 Views

My ALV works and displays correct output. However, I am struggling to display the text 'Total' on position in the last row of the grid. The total is for the salary. My code is below..

I have looked on numerous sites and forums for assistance.

*&---------------------------------------------------------------------*

*& Report ZALV

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT ZALV.

TABLES: ZCONTACT.

TYPE-POOLS: slis. "slis contains all of the ALV data types.

DATA: "fieldcatALOG TYPE slis_t_fieldcat_alv WITH HEADER LINE,

it_zcontact TYPE TABLE OF zcontact,"declares an internal table of type ZCONTACT

alv_prog_name LIKE sy-repid,

g_variant TYPE disvariant,

gx_variant TYPE disvariant,

g_save TYPE c VALUE 'X',

it_fieldcat TYPE slis_t_fieldcat_alv,"declares field catalog table of line type alv

wa_fieldcat TYPE slis_fieldcat_alv, "declares the work area of the field catalog

it_list_top_of_page TYPE slis_t_listheader,

izontact TYPE TABLE OF zcontact,

h1(10) TYPE c VALUE 'Toatall',

"i_logo TYPE OT.

gt_events TYPE slis_t_event,

gd_prntparams TYPE slis_print_alv,

text(40) type c,

wa_layout TYPE slis_layout_alv.

**Selection Screen details

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

PARAMETERS: variant like disvariant-variant.

SELECTION-SCREEN END OF BLOCK B1.

**Getting default variant

INITIALIZATION.

gx_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = G_SAVE

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

VARIANT = GX_VARIANT-VARIANT.

ENDIF.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_FIELDCATALOG.

PERFORM DISPLAY_ALV_REPORT.

"PERFORM build_alv_header

FORM BUILD_FIELDCATALOG.

*Build field catalog

wa_fieldcat-fieldname = 'ID'.

wa_fieldcat-seltext_m = 'ID'.

wa_fieldcat-col_pos = 0.

wa_fieldcat-outputlen = 10.

wa_fieldcat-emphasize = 'X'.

wa_fieldcat-key = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

*

wa_fieldcat-fieldname = 'LASTNAME'.

wa_fieldcat-seltext_m = 'LASTNAME'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

*

wa_fieldcat-fieldname = 'FIRSTNAME'.

wa_fieldcat-seltext_m = 'FIRSTNAME'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

*

wa_fieldcat-fieldname = 'DOB'.

wa_fieldcat-seltext_m = 'DOB'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

*

wa_fieldcat-fieldname = 'TEL'.

wa_fieldcat-seltext_m = 'Tel'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'ADDRESS'.

wa_fieldcat-seltext_m = 'ADDRESS'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'OCCUPATION'.

wa_fieldcat-seltext_m = 'OCCUPATION'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

**

wa_fieldcat-fieldname = 'WEIGHT'.

wa_fieldcat-seltext_m = 'WEIGHT'.

wa_fieldcat-do_sum = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

*

wa_fieldcat-fieldname = 'AGE'.

wa_fieldcat-seltext_m = 'AGE'.

wa_fieldcat-do_sum = 'X'. "Display column total

APPEND wa_fieldcat TO it_fieldcat.

"CLEAR wa_fieldcat.

*

wa_fieldcat-fieldname = 'SALARY'.

wa_fieldcat-seltext_m = 'SALARY'.

wa_fieldcat-do_sum = 'X'.

wa_fieldcat-cfieldname = 'CURRENCYKEY'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'CURRENCY'.

wa_fieldcat-seltext_s = 'CURRENCY'.

APPEND wa_fieldcat TO it_fieldcat.

"CLEAR wa_fieldcat.

ENDFORM. "BUILDING THE FIELD CATALOG

**FORM layout.

*wa_layout-colwidth_optimize = 'X'.

*wa_layout-totals_text ='TOTAL'.

*wa_layout-zebra = 'X'.

*ENDFORM.

"ls_layout-cell_merge = 'X'.

FORM DISPLAY_ALV_REPORT.

alv_prog_name = sy-repid.

*Pass data and field catalog to ALV function module to display ALV list

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = it_fieldcat[]

i_callback_program = alv_prog_name

is_layout = wa_layout

i_callback_top_of_page = 'TOP_OF_PAGE'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'ZCONTACT'

i_save = 'X'

it_events = gt_events

is_print = gd_prntparams

is_variant = g_variant

"is_layout = ls_layout

TABLES

t_outtab = it_zcontact

EXCEPTIONS

program_error = 1

OTHERS = 2.

WRITE: H1 UNDER 'SALARY'.

ENDFORM.

**Fetch data from the database

FORM DATA_RETRIEVAL.

SELECT * FROM zcontact INTO TABLE it_zcontact.

ENDFORM.

*

FORM top_of_page.

*ALV Header declarations

DATA: it_listheader TYPE slis_t_listheader,

wa_listheader TYPE slis_listheader,

t_line like wa_listheader-info,

ld_lines TYPE I,

ld_linesc(10) TYPE C.

wa_listheader-typ = 'H'.

wa_listheader-info = 'Contact Details'.

APPEND wa_listheader TO it_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-info = sy-repid.

wa_listheader-key = 'Program Name:'.

APPEND wa_listheader TO it_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-info = sy-uname.

wa_listheader-key = 'User Name:'.

APPEND wa_listheader TO it_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-key = 'Run Date :'.

CONCATENATE sy-datum+6(2)

sy-datum+4(2)

sy-datum(4)

INTO wa_listheader-info

SEPARATED BY '/'.

APPEND wa_listheader TO it_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-key = 'Time :'.

CONCATENATE sy-uzeit(2)

sy-uzeit+2(2)

sy-uzeit+4(2)

INTO wa_listheader-info

SEPARATED BY ':'.

APPEND wa_listheader TO it_listheader.

CLEAR wa_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader[]

i_logo = 'KLOGO'.

ENDFORM. "top_of_page