Application Development and Automation 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: 
Read only

'REUSE _ALV_COMMENTRY_WRITE'

Former Member
0 Likes
1,163

Hi,

Can anybody explain me the use of

'REUSE ALVCOMMENTRY_WRITE' FUCTION

with an example.

thanks

Hi,

Can anybody explain me the use of

'REUSE ALVCOMMENTRY_WRITE' FUCTION

with an example.

thanks

8 REPLIES 8
Read only

Former Member
0 Likes
1,111

Hi,

That function module is used to print the Heading(Top of page) on ALV list.

Regards,

Kumar.

Read only

Former Member
0 Likes
1,111

HI,

Its used to display the logo and header.

FORM top_of_page.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
*     i_logo             = <<If you want to set a logo, please,
*                          uncomment and edit this line>>
      it_list_commentary = t_heading.
ENDFORM.                    " alv_top_of_page

Regards,

S.Nehru

Read only

Former Member
0 Likes
1,111

Hi,

It will print your company logo in the header of the report.

Thanks & Regards,

Harsha.

Read only

Former Member
0 Likes
1,111

hi,

it is use to make header and footer into ALV...

here is the example



TYPE-POOLS : slis.

TABLES : mara,
         makt,
         marc.

DATA : BEGIN OF itab OCCURS 0,
        matnr LIKE mara-matnr,
        maktx LIKE makt-maktx,
        werks LIKE marc-werks,
       END OF itab.

DATA : t_fcat TYPE slis_t_fieldcat_alv,
       t_eve TYPE slis_t_event,
       st_line TYPE slis_listheader,
       t_list_top_page TYPE slis_t_listheader,
       t_list_end_page TYPE slis_t_listheader.

DATA : t_mat LIKE mara-matnr.

SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : mat FOR mara-matnr.
SELECTION-SCREEN : END OF BLOCK blk1.

INITIALIZATION.

  PERFORM build_cat USING t_fcat.
  PERFORM build_eve.


START-OF-SELECTION.
  PERFORM get_data.
  PERFORM build_header USING t_list_top_page[].
  PERFORM build_footer USING t_list_end_page[].
  PERFORM dis_data.

*&---------------------------------------------------------------------*
*&      Form  buils_cat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->TEMP_FCAT  text
*----------------------------------------------------------------------*
FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.

  DATA : wa_fcat TYPE slis_fieldcat_alv.

  wa_fcat-tabname = 'ITAB'.
  wa_fcat-fieldname = 'MATNR'.
  wa_fcat-seltext_m = 'Material'.
  APPEND wa_fcat TO temp_fcat.
  CLEAR wa_fcat.

  wa_fcat-tabname = 'ITAB'.
  wa_fcat-fieldname = 'MAKTX'.
  wa_fcat-seltext_m = 'Material Description'.
  APPEND wa_fcat TO temp_fcat.
  CLEAR wa_fcat.

  wa_fcat-tabname = 'ITAB'.
  wa_fcat-fieldname = 'WERKS'.
  wa_fcat-seltext_m = 'Plant'.
*  wa_fcat-row_pos = 2.
  APPEND wa_fcat TO temp_fcat.
  CLEAR wa_fcat.

ENDFORM.                    "build_cat

*&---------------------------------------------------------------------*
*&      Form  build_eve
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM build_eve.

  DATA : wa_eve TYPE slis_alv_event.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     i_list_type           = 0
   IMPORTING
     et_events             = t_eve
* EXCEPTIONS
*   LIST_TYPE_WRONG       = 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.

  READ TABLE t_eve INTO wa_eve WITH KEY name = 'END_OF_LIST'.
  IF sy-subrc = 0.
    wa_eve-form = 'END_OF_PAGE'.
    MODIFY t_eve FROM wa_eve INDEX sy-tabix.
  ENDIF.

ENDFORM.                    "build_eve

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_data.

  SELECT mara~matnr makt~maktx marc~werks INTO CORRESPONDING FIELDS OF TABLE itab
  FROM mara INNER JOIN makt ON
  mara~matnr = makt~matnr
  INNER JOIN marc ON
  mara~matnr = marc~matnr
  WHERE mara~matnr IN mat.

ENDFORM.                    "get_data

*&---------------------------------------------------------------------*
*&      Form  dis_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM dis_data.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     i_callback_program                = 'ZALV_PRDS'
     i_callback_top_of_page            = 'TOP_OF_PAGE'
     it_fieldcat                       = t_fcat
     i_save                            = 'A'
     it_events                         = t_eve
   TABLES
      t_outtab                          = itab
* 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.                    "dis_data

*&---------------------------------------------------------------------*
*&      Form  build_header
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->TEMP_LIST          text
*      -->TTYPE              text
*      -->SLIS_T_LISTHEADER  text
*----------------------------------------------------------------------*
FORM build_header USING temp_list TYPE slis_t_listheader.


  CLEAR st_line.
  st_line-typ = 'H'.
  st_line-info = 'Material Info'.
  APPEND st_line TO temp_list.

  CLEAR st_line.


ENDFORM.                    "build_header

*&---------------------------------------------------------------------*
*&      Form  build_footer
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->TEMP_LIST  text
*----------------------------------------------------------------------*
FORM build_footer USING temp_list TYPE slis_t_listheader.

  CLEAR st_line.
  st_line-typ = 'H'.
  st_line-info = 'Dhwani Shah'.
  APPEND st_line TO temp_list.

ENDFORM.                    "build_header

*&---------------------------------------------------------------------*
*&      Form  top_Of_page
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM top_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = t_list_top_page.

ENDFORM.                    "top_Of_page

*&---------------------------------------------------------------------*
*&      Form  end_of_page
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM end_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = t_list_end_page.

ENDFORM.                    "end_of_page


reward if usefull....

Read only

Former Member
0 Likes
1,111

hi check this prog...

REPORT ZTEST_ALV123.

TABLES VBAK.

TYPE-POOLS SLIS.

TYPES: BEGIN OF T_VBAK,

VBELN TYPE VBAK-VBELN,

ERDAT TYPE VBAK-ERDAT,

ERNAM TYPE VBAK-ERNAM,

AUDAT TYPE VBAK-AUDAT,

VBTYP TYPE VBAK-VBTYP,

NETWR TYPE VBAK-NETWR,

VKORG TYPE VBAK-VKORG,

VKGRP TYPE VBAK-VKGRP,

END OF T_VBAK.

DATA IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0.

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,

W_FLDCAT TYPE SLIS_FIELDCAT_ALV,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID TYPE SY-REPID.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BLD_FLDCAT.

PERFORM BLD_LAYOUT.

PERFORM DISPLAY_ALV_REPORT.

FORM BLD_FLDCAT.

W_FLDCAT-FIELDNAME = 'VBELN'.

W_FLDCAT-SELTEXT_M = 'Sales Document'.

W_FLDCAT-COL_POS = 0.

*W_FLDCAT-EMPHASIZE = 'C411'.

W_FLDCAT-OUTPUTLEN = 20.

W_FLDCAT-KEY = 'X'.

W_FLDCAT-ICON = 'X'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'ERDAT'.

W_FLDCAT-SELTEXT_L = 'Record Date created'.

W_FLDCAT-COL_POS = 1.

W_FLDCAT-KEY = 'X'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'ERNAM'.

W_FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'AUDAT'.

W_FLDCAT-SELTEXT_M = 'Document Date'.

W_FLDCAT-COL_POS = 3.

W_FLDCAT-EMPHASIZE = 'C110'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'VBTYP'.

W_FLDCAT-SELTEXT_L = 'SD Document category'.

W_FLDCAT-COL_POS = 4.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'NETWR'.

W_FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.

W_FLDCAT-COL_POS = 5.

W_FLDCAT-OUTPUTLEN = 60.

W_FLDCAT-DO_SUM = 'X'.

W_FLDCAT-DATATYPE = 'CURR'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'VKORG'.

W_FLDCAT-SELTEXT_L = 'Sales Organization'.

W_FLDCAT-COL_POS = 6.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'VKGRP'.

W_FLDCAT-SELTEXT_M = 'Sales Group'.

W_FLDCAT-COL_POS = 7.

W_FLDCAT-EMPHASIZE = 'C801'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

ENDFORM.

FORM BLD_LAYOUT.

GD_LAYOUT-NO_INPUT = 'X'.

GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GD_LAYOUT-BOX_FIELDNAME = 'VBELN'.

ENDFORM.

FORM DISPLAY_ALV_REPORT.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

IS_LAYOUT = GD_LAYOUT

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

IT_FIELDCAT = FLDCAT[]

I_SAVE = 'X'

I_GRID_TITLE = 'WELCOME TO ALV'

TABLES

T_OUTTAB = IT_VBAK

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC ne 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM.

FORM DATA_RETRIEVAL.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG

UP TO 50 ROWS

FROM VBAK

INTO TABLE IT_VBAK.

ENDFORM.

FORM TOP_OF_PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER,

W_HEADER TYPE SLIS_LISTHEADER.

W_HEADER-TYP = 'H'.

W_HEADER-INFO = 'WELCOME HEADER LIST'.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'REPORT:'.

W_HEADER-INFO = SY-REPID.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'DATE:'.

CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO W_HEADER-INFO.

APPEND W_HEADER TO T_HEADER.

CLEAR W_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'Page No:'.

W_HEADER-INFO = SY-PAGNO.

APPEND W_HEADER TO T_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM.

regards,

venkat.

Read only

Former Member
0 Likes
1,111

hi

The Fm "REUSE_ALV_COMMENTARY_WRITE"

IS USED FOR

This is used in the Top-of-page event to print the headings and other comments for the list.

1. It_list_commentary : Internal table with the headings of the type slis_t_listheader.

This internal table has three fields:

Typ : ‘H’ - header, ‘S’ - selection, ‘A’ - action

Key : only when typ is ‘S’.

Info : the text to be printed

EXAMPLE IS

program for hierarchial list display WITH top of page event

report balvhd01 no standard page heading.

  • ALV

type-pools: slis.

  • DB-Table

tables: scarr, spfli.

  • Includes

include .

*

constants:

gc_formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.

data: gt_fieldcat type slis_t_fieldcat_alv,

gs_layout type slis_layout_alv,

gs_keyinfo type slis_keyinfo_alv,

gt_sp_group type slis_t_sp_group_alv,

gt_events type slis_t_event.

  • Data to be displayed

data: begin of gt_spfli occurs 0.

include structure spfli.

data:

box,

wert(4) type p,

lights.

data: end of gt_spfli.

data: begin of gt_scarr occurs 0.

include structure scarr.

data: box,

lights.

data: end of gt_scarr.

*

data: g_repid like sy-repid.

data: gt_list_top_of_page type slis_t_listheader.

  • Report Selections

select-options carrid for scarr-carrid.

selection-screen skip 1.

  • Parameters

parameters: p_maxrow type i default 50.

selection-screen skip 1.

  • Variante

selection-screen begin of block 0 with frame title text-064.

parameters: p_vari like disvariant-variant.

selection-screen end of block 0.

  • Layout

selection-screen begin of block a with frame title text-060.

parameters:

p_zebra as checkbox default ' ',

p_nocolh as checkbox default ' ',

p_colopt as checkbox default ' ',

p_keyhot as checkbox default ' ',

p_noinpt as checkbox default ' '.

selection-screen end of block a.

selection-screen begin of block b with frame title text-061.

parameters:

p_lightn radiobutton group lig ,

p_lighth radiobutton group lig ,

p_lighti radiobutton group lig ,

p_lightc as checkbox default ' '.

selection-screen end of block b.

selection-screen begin of block c with frame title text-062.

parameters:

p_totonl as checkbox default ' ',

p_totext(60),

p_sttext(60).

selection-screen end of block c.

selection-screen begin of block d with frame title text-063.

parameters:

chckboxn radiobutton group box ,

chckboxh radiobutton group box ,

chckboxi radiobutton group box ,

  • P_GROUPB AS CHECKBOX DEFAULT ' ',

p_detpop as checkbox default 'X',

p_groups as checkbox default ' '.

selection-screen end of block d.

data: g_boxnam type slis_fieldname value 'BOX',

p_f2code like sy-ucomm value '&ETA',

p_lignam type slis_fieldname value 'LIGHTS',

g_save(1) type c,

g_tabname_header type slis_tabname,

g_tabname_item type slis_tabname,

g_default(1) type c,

g_exit(1) type c,

gx_variant like disvariant,

g_variant like disvariant.

*----


*

initialization.

g_repid = sy-repid.

g_tabname_header = 'GT_SCARR'.

g_tabname_item = 'GT_SPFLI'.

  • define keyinfo

clear gs_keyinfo.

gs_keyinfo-header01 = 'CARRID'.

gs_keyinfo-item01 = 'CARRID'.

gs_keyinfo-header02 = space.

gs_keyinfo-item02 = 'CONNID'.

*

perform e01_fieldcat_init using gt_fieldcat[].

perform e03_eventtab_build using gt_events[].

perform e04_comment_build using gt_list_top_of_page[].

perform e07_sp_group_build using gt_sp_group[].

  • Schalter Varianten benutzerspezifisch/allgemein speicherbar setzen

  • Set Options: save variants userspecific or general

g_save = 'A'.

perform variant_init.

  • Get default variant

gx_variant = g_variant.

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.

p_vari = gx_variant-variant.

endif.

  • Process on value request

at selection-screen on value-request for p_vari.

perform f4_for_variant.

  • PAI

at selection-screen.

perform pai_of_selection_screen.

start-of-selection.

perform selection.

end-of-selection.

perform e05_layout_build using gs_layout. "wg. Parameters

  • Call ABAP/4 List Viewer

call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

exporting

i_callback_program = g_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

  • IT_EXCLUDING =

it_special_groups = gt_sp_group[]

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • i_default = g_default

i_save = g_save

is_variant = g_variant

it_events = gt_events[]

  • IT_EVENT_EXIT =

i_tabname_header = g_tabname_header

i_tabname_item = g_tabname_item

is_keyinfo = gs_keyinfo

  • IS_PRINT =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

tables

t_outtab_header = gt_scarr

t_outtab_item = gt_spfli.

*----


*

  • FORM E01_FIELDCAT_INIT *

*----


*

  • ........ *

*----


*

  • --> E01_LT_FIELDCAT *

*----


*

form e01_fieldcat_init using e01_lt_fieldcat type slis_t_fieldcat_alv.

data: ls_fieldcat type slis_fieldcat_alv.

*

clear ls_fieldcat.

ls_fieldcat-fieldname = 'DISTANCE'.

ls_fieldcat-tabname = g_tabname_item.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-no_sum = 'X'.

ls_fieldcat-sp_group = 'A'.

append ls_fieldcat to e01_lt_fieldcat.

*

clear ls_fieldcat.

ls_fieldcat-fieldname = 'DISTID'.

ls_fieldcat-tabname = g_tabname_item.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-no_sum = 'X'.

ls_fieldcat-sp_group = 'A'.

append ls_fieldcat to e01_lt_fieldcat.

*

clear ls_fieldcat.

ls_fieldcat-fieldname = 'CARRID'.

ls_fieldcat-tabname = g_tabname_item.

ls_fieldcat-tech = 'X'.

append ls_fieldcat to e01_lt_fieldcat.

*

clear ls_fieldcat.

ls_fieldcat-fieldname = 'FLTYPE'.

ls_fieldcat-tabname = g_tabname_item.

ls_fieldcat-no_out = 'X'.

append ls_fieldcat to e01_lt_fieldcat.

*

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

  • I_PROGRAM_NAME =

i_internal_tabname = g_tabname_header

i_structure_name = 'SCARR'

  • I_CLIENT_NEVER_DISPLAY = 'X'

changing

ct_fieldcat = e01_lt_fieldcat[].

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

  • I_PROGRAM_NAME =

i_internal_tabname = g_tabname_item

i_structure_name = 'SPFLI'

  • I_CLIENT_NEVER_DISPLAY = 'X'

changing

ct_fieldcat = e01_lt_fieldcat[].

  • Nachbessern!!!

  • CLEAR LS_FIELDCAT.

  • LS_FIELDCAT-FIELDNAME = 'CARRID'.

  • LS_FIELDCAT-TABNAME = G_TABNAME_HEADER.

  • LS_FIELDCAT-REF_FIELDNAME = 'CARRID'.

  • LS_FIELDCAT-REF_TABNAME = 'SCARR'.

  • LS_FIELDCAT-KEY = 'X'.

  • APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.

  • geht am Anfang nicht !!!!

clear ls_fieldcat.

ls_fieldcat-col_pos = 99.

ls_fieldcat-fieldname = 'WERT'.

ls_fieldcat-tabname = g_tabname_item.

ls_fieldcat-reptext_ddic = 'Wert'(070).

ls_fieldcat-outputlen = 4.

ls_fieldcat-datatype = 'CURR'.

append ls_fieldcat to e01_lt_fieldcat.

endform.

*----


*

  • FORM E02_DATA_ADD *

*----


*

  • ........ *

*----


*

form e02_data_add tables e02_lt_spfli structure gt_spfli

e02_lt_scarr structure gt_scarr.

loop at e02_lt_spfli.

if sy-tabix > 10.

e02_lt_spfli-box = 'X'.

e02_lt_spfli-lights = '3'.

else.

if sy-tabix = 1.

e02_lt_spfli-lights = '2'.

else.

e02_lt_spfli-lights = '1'.

endif.

endif.

e02_lt_spfli-wert = sy-tabix mod 5.

modify e02_lt_spfli.

endloop.

*

loop at e02_lt_scarr.

if sy-tabix > 10.

e02_lt_scarr-box = 'X'.

e02_lt_scarr-lights = '3'.

else.

if sy-tabix = 1.

e02_lt_scarr-lights = '2'.

else.

e02_lt_scarr-lights = '1'.

endif.

endif.

modify e02_lt_scarr.

endloop.

endform.

*----


*

  • FORM E03_EVENTTAB_BUILD *

*----


*

  • ........ *

*----


*

  • --> E03_LT_EVENTS *

*----


*

form e03_eventtab_build using e03_lt_events type slis_t_event.

data: ls_event type slis_alv_event.

*

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = e03_lt_events.

read table e03_lt_events with key name = slis_ev_top_of_page

into ls_event.

if sy-subrc = 0.

move gc_formname_top_of_page to ls_event-form.

append ls_event to e03_lt_events.

endif.

endform.

*----


*

  • FORM E04_COMMENT_BUILD *

*----


*

  • ........ *

*----


*

  • --> E04_LT_TOP_OF_PAGE *

*----


*

form e04_comment_build using e04_lt_top_of_page type slis_t_listheader.

data: ls_line type slis_listheader.

*

  • Listenüberschrift: Typ H

clear ls_line.

ls_line-typ = 'H'.

  • LS_LINE-KEY: not used for this type

ls_line-info = text-001.

append ls_line to e04_lt_top_of_page.

  • Kopfinfo: Typ S

clear ls_line.

ls_line-typ = 'S'.

ls_line-key = text-050.

ls_line-info = text-010.

append ls_line to e04_lt_top_of_page.

ls_line-key = text-051.

append ls_line to e04_lt_top_of_page.

  • Aktionsinfo: Typ A

clear ls_line.

ls_line-typ = 'A'.

  • LS_LINE-KEY: not used for this type

ls_line-info = text-002.

append ls_line to e04_lt_top_of_page.

endform.

*----


*

  • FORM E05_LAYOUT_BUILD *

*----


*

  • ........ *

*----


*

  • <-> E05_LS_LAYOUT *

*----


*

form e05_layout_build using e05_ls_layout type slis_layout_alv.

if p_lighti = 'X'.

e05_ls_layout-lights_fieldname = p_lignam.

e05_ls_layout-lights_tabname = g_tabname_item.

e05_ls_layout-lights_condense = p_lightc.

endif.

if p_lighth = 'X'.

e05_ls_layout-lights_fieldname = p_lignam.

e05_ls_layout-lights_tabname = g_tabname_header.

e05_ls_layout-lights_condense = p_lightc.

endif.

if p_lightn = 'X'.

clear e05_ls_layout-lights_fieldname.

clear e05_ls_layout-lights_tabname.

clear e05_ls_layout-lights_condense.

endif.

if chckboxn = 'X'.

e05_ls_layout-box_fieldname = space.

e05_ls_layout-box_tabname = space.

endif.

if chckboxh = 'X'.

e05_ls_layout-box_fieldname = g_boxnam.

e05_ls_layout-box_tabname = g_tabname_header.

endif.

if chckboxi = 'X'.

e05_ls_layout-box_fieldname = g_boxnam.

e05_ls_layout-box_tabname = g_tabname_item.

endif.

e05_ls_layout-header_text = text-071.

e05_ls_layout-item_text = text-072.

e05_ls_layout-default_item = 'X'.

e05_ls_layout-f2code = p_f2code.

e05_ls_layout-zebra = p_zebra.

e05_ls_layout-colwidth_optimize = p_colopt.

e05_ls_layout-no_input = p_noinpt.

e05_ls_layout-no_colhead = p_nocolh.

e05_ls_layout-totals_text = p_totext.

e05_ls_layout-subtotals_text = p_sttext.

e05_ls_layout-totals_only = p_totonl.

e05_ls_layout-key_hotspot = p_keyhot.

e05_ls_layout-detail_popup = p_detpop.

e05_ls_layout-group_change_edit = p_groups.

  • E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.

e05_ls_layout-group_buttons = space.

endform.

*----


*

  • FORM E07_SP_GROUP_BUILD *

*----


*

  • ........ *

*----


*

  • --> E07_LT_SP_GROUP *

*----


*

form e07_sp_group_build using e07_lt_sp_group type slis_t_sp_group_alv.

data: ls_sp_group type slis_sp_group_alv.

*

clear ls_sp_group.

ls_sp_group-sp_group = 'A'.

ls_sp_group-text = text-005.

append ls_sp_group to e07_lt_sp_group.

endform.

*----


*

  • FORM SELECTION *

*----


*

  • ........ *

*----


*

form selection.

select * from scarr into corresponding fields of table gt_scarr

where carrid in carrid.

select * from spfli into corresponding fields of table gt_spfli

up to p_maxrow rows

where carrid in carrid.

loop at gt_scarr.

read table gt_spfli with key carrid = gt_scarr-carrid.

if sy-subrc ne 0.

delete gt_scarr.

endif.

endloop.

*

perform e02_data_add tables gt_spfli gt_scarr.

endform.

*----


*

  • FORM TOP_OF_PAGE *

*----


*

  • ........ *

*----


*

form top_of_page.

*

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = gt_list_top_of_page.

endform.

*----


*

  • FORM F4_FOR_VARIANT *

*----


*

  • ........ *

*----


*

form f4_for_variant.

*

call function 'REUSE_ALV_VARIANT_F4'

exporting

is_variant = g_variant

i_save = g_save

i_tabname_header = g_tabname_header

i_tabname_item = g_tabname_item

  • it_default_fieldcat =

importing

e_exit = g_exit

es_variant = gx_variant

exceptions

not_found = 2.

if sy-subrc = 2.

message id sy-msgid type 'S' number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

else.

if g_exit = space.

p_vari = gx_variant-variant.

endif.

endif.

endform.

*&----


*

*& Form PAI_OF_SELECTION_SCREEN

*&----


*

  • text

*----


*

form pai_of_selection_screen.

*

if not p_vari is initial.

move g_variant to gx_variant.

move p_vari to gx_variant-variant.

call function 'REUSE_ALV_VARIANT_EXISTENCE'

exporting

i_save = g_save

changing

cs_variant = gx_variant.

g_variant = gx_variant.

else.

perform variant_init.

endif.

endform. " PAI_OF_SELECTION_SCREEN

*&----


*

*& Form VARIANT_INIT

*&----


*

  • text

*----


*

  • --> p1 text

  • <-- p2 text

*----


*

form variant_init.

*

clear g_variant.

g_variant-report = g_repid.

endform. " VARIANT_INIT

hope usefull to u, please remember to reward points

Regards

Fareedas

Read only

Former Member
0 Likes
1,111

Hi,

Using the function module ‘REUSE_ALV_COMMENTARY_WRITE’, the internal table containing the headings for top of page event can be passed to the list output. Also, any logo specific to the report can be passed to the function module.

Regards,

Bhaskar

Read only

Former Member
0 Likes
1,111

Hi,

This is to display the header data(text & logo) in ALV reports.

Have a look on the following example,

IT ALSO DISPLAYS THE LINE NUMBERS.

TABLES VBAK.

TYPE-POOLS SLIS.

  • Data Declaration

TYPES: BEGIN OF T_VBAK,

VBELN TYPE VBAK-VBELN,

ERDAT TYPE VBAK-ERDAT,

ERNAM TYPE VBAK-ERNAM,

AUDAT TYPE VBAK-AUDAT,

VBTYP TYPE VBAK-VBTYP,

NETWR TYPE VBAK-NETWR,

VKORG TYPE VBAK-VKORG,

VKGRP TYPE VBAK-VKGRP,

RN TYPE I,

END OF T_VBAK.

DATA IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0 WITH HEADER LINE.

  • ALV Data Declaration

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,

W_FLDCAT TYPE SLIS_FIELDCAT_ALV,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID TYPE SY-REPID.

SELECT-OPTIONS: VBELN FOR VBAK-VBELN.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

END-OF-SELECTION.

PERFORM BLD_FLDCAT.

PERFORM BLD_LAYOUT.

PERFORM DISPLAY_ALV_REPORT.

  • Build Field Catalog for ALV Report

FORM BLD_FLDCAT.

W_FLDCAT-FIELDNAME = 'VBELN'.

W_FLDCAT-SELTEXT_M = 'Sales_Document'.

W_FLDCAT-COL_POS = 1.

*W_FLDCAT-EMPHASIZE = 'C411'.

*CXYZ: C=COLOR,X=COLOR NUMBER(1-9),Y=BOLD(0/1),Z=INVERSE(0/1)

W_FLDCAT-OUTPUTLEN = 15.

W_FLDCAT-KEY = 'X'.

W_FLDCAT-ICON = 'X'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'ERDAT'.

W_FLDCAT-SELTEXT_L = 'Record_Date_created'.

W_FLDCAT-COL_POS = 2.

W_FLDCAT-KEY = 'X'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'ERNAM'.

W_FLDCAT-SELTEXT_L = 'Cteated_Person_Name'.

W_FLDCAT-COL_POS = 3.

W_FLDCAT-EMPHASIZE = 'C011'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'AUDAT'.

W_FLDCAT-SELTEXT_M = 'Document_Date'.

W_FLDCAT-COL_POS = 4.

W_FLDCAT-EMPHASIZE = 'C110'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'VBTYP'.

W_FLDCAT-SELTEXT_L = 'SDDocument_category'.

W_FLDCAT-COL_POS = 5.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'NETWR'.

W_FLDCAT-SELTEXT_L = 'Net_Value'.

W_FLDCAT-COL_POS = 6.

W_FLDCAT-OUTPUTLEN = 10.

W_FLDCAT-DO_SUM = 'X'.

W_FLDCAT-DATATYPE = 'CURR'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'VKORG'.

W_FLDCAT-SELTEXT_L = 'Sales_Organization'.

W_FLDCAT-COL_POS = 7.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'VKGRP'.

W_FLDCAT-SELTEXT_M = 'Sales_Group'.

W_FLDCAT-COL_POS = 8.

W_FLDCAT-EMPHASIZE = 'C801'.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

W_FLDCAT-FIELDNAME = 'RN'.

W_FLDCAT-SELTEXT_S = 'RN'.

W_FLDCAT-COL_POS = 0.

APPEND W_FLDCAT TO FLDCAT.

CLEAR W_FLDCAT.

ENDFORM.

  • Build Layout for ALV Grid Report

FORM BLD_LAYOUT.

GD_LAYOUT-NO_INPUT = 'X'.

*GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*GD_LAYOUT-NO_SCROLLING = 'X'.

*GD_LAYOUT-BOX_FIELDNAME = 'VBELN'.

ENDFORM.

  • Display report using ALV grid

FORM DISPLAY_ALV_REPORT.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

IS_LAYOUT = GD_LAYOUT

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

IT_FIELDCAT = FLDCAT[]

I_SAVE = 'X'

TABLES

T_OUTTAB = IT_VBAK

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.

  • Retrieve data from VBAK table and populate itab IT_VBAK

FORM DATA_RETRIEVAL.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG

FROM VBAK

INTO TABLE IT_VBAK

WHERE VBELN IN VBELN.

LOOP AT IT_VBAK.

IT_VBAK-RN = SY-TABIX.

MODIFY IT_VBAK INDEX SY-TABIX.

ENDLOOP.

ENDFORM.

FORM TOP_OF_PAGE.

DATA: T_HEADER TYPE SLIS_T_LISTHEADER,

W_HEADER TYPE SLIS_LISTHEADER.

W_HEADER-TYP = 'H'.

W_HEADER-INFO = 'WELCOME HEADER LIST'.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'REPORT:'.

W_HEADER-INFO = SY-REPID.

APPEND W_HEADER TO T_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'DATE:'.

CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO W_HEADER-INFO.

APPEND W_HEADER TO T_HEADER.

CLEAR W_HEADER.

W_HEADER-TYP = 'S'.

W_HEADER-KEY = 'Page_No:'.

W_HEADER-INFO = SY-PAGNO.

APPEND W_HEADER TO T_HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_HEADER.

ENDFORM.

Reward,if it is useful.

Thanks,

Chandu