07-13-2010 12:02 PM
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
07-13-2010 12:21 PM
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.
07-13-2010 12:33 PM
The given solution works only for list display not for grid display...
08-24-2010 12:02 AM
Use the event SUBTOTAL_TEXT to get the grandtotal text. The structurre slis_subtot_text will have no values for TOTAL.
08-24-2010 12:45 AM
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
08-24-2010 5:30 AM