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: 

Top of page in ALV GRID display

Former Member
0 Kudos

Hi All,

Is it possible to have a top of page in ALV grid display?

If yes, then how?

Thanks and Regards,

Sirisha

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hey,

Just to add to what others have replied if you are using classes and not function modules for ALV display the standard report BCALV_GRID_01 is a good example of how to use the print processing events in ALV.

-Kiran

7 REPLIES 7

Former Member
0 Kudos

Hello,

Use this code.

FORM ALV_DISPLAY.

DATA: IT_VARIANT LIKE DISVARIANT,

G_S_SORT LIKE LINE OF IT_SORT.

DATA: IT_EVENTS TYPE SLIS_T_EVENT,

WA_EVENTS LIKE LINE OF IT_EVENTS.

REFRESH: IT_EVENTS.

CLEAR: WA_EVENTS,IT_EVENTS.

WA_EVENTS-NAME = 'PF_STATUS_SET'.

WA_EVENTS-FORM = 'STATUS'.

APPEND WA_EVENTS TO IT_EVENTS .

CLEAR WA_EVENTS.

WA_EVENTS-NAME = 'USER_COMMAND'.

WA_EVENTS-FORM = 'USER_COMMAND'.

APPEND WA_EVENTS TO IT_EVENTS .

REFRESH IT_SORT.

CLEAR: G_S_SORT,G_S_SORT.

G_S_SORT-SPOS = 1.

G_S_SORT-FIELDNAME = 'EBELN'.

G_S_SORT-UP = 'X'.

G_S_SORT-DOWN = ' '.

G_S_SORT-SUBTOT = ' '.

G_S_SORT-EXPA = ' '.

APPEND G_S_SORT TO IT_SORT.

  • For storing the variant layout

IT_VARIANT-REPORT = SY-REPID.

SY-TITLE = TEXT-033.

CLEAR G_T_OUTTAB.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = IT_VARIANT-REPORT

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = IT_FIELDCAT

I_SAVE = 'A'

IS_VARIANT = IT_VARIANT

IT_SORT = IT_SORT

IT_EVENTS = IT_EVENTS

TABLES

T_OUTTAB = G_T_OUTTAB

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.

  • Work Area TOP-OF-PAGE commentary

DATA: WA_COMMENTARY TYPE SLIS_LISTHEADER,

L_F_DATUM(10).

CLEAR : WA_COMMENTARY,

IT_COMMENTARY,

IT_COMMENTARY[].

WA_COMMENTARY-TYP = 'H'.

WA_COMMENTARY-INFO = TEXT-002.

APPEND WA_COMMENTARY TO IT_COMMENTARY.

WA_COMMENTARY-TYP = 'H'.

WA_COMMENTARY-INFO = TEXT-003.

APPEND WA_COMMENTARY TO IT_COMMENTARY.

WA_COMMENTARY-TYP = 'H'.

WA_COMMENTARY-INFO = TEXT-034.

APPEND WA_COMMENTARY TO IT_COMMENTARY.

WRITE: SY-DATUM TO L_F_DATUM.

WA_COMMENTARY-TYP = 'H'.

WA_COMMENTARY-INFO = L_F_DATUM.

APPEND WA_COMMENTARY TO IT_COMMENTARY.

ENDFORM. " ALV_DISPLAY

*& Form TOP-OF-PAGE

&----


  • For Top of page

----


FORM TOP_OF_PAGE. "#EC CALLED

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_COMMENTARY.

ENDFORM. "top_of_page

If useful reward points.

Regards,

Vasanth

Former Member
0 Kudos

WRITE IN UR PROGRAM LIKE THIS..

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_callback_top_of_page = 'TOP_OF_PAGE'

..........

.........

.........

TABLES

t_outtab = ist_final_r

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.

AND ALSO WRITE FORM STATE MENT.....LIKE THIS...

FORM top_of_page. "#EC

DATA:lst TYPE slis_t_listheader,

wst TYPE slis_listheader.

wst-typ = 'H'.

wst-info = 'HEADDING'.

APPEND wst TO lst.

wst-typ = 'A'.

wst-info = 'HELLO'.

APPEND wst TO lst.

wst-typ = 'S'.

wst-info = 'HI.

APPEND wst TO lst.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = lst

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

REGARDS,

RAMESH.

Former Member
0 Kudos

hi

check out the following code:

report z_alv2 line-count 20.

type-pools : slis.

type-pools : icon.

tables:

lfa1, lfb1, lfm1.

selection-screen begin of block b1 with frame title text-001.

select-options:

s_lifnr for lfa1-lifnr, "VENDOR

s_bukrs for lfb1-bukrs, "COMPANY CODE

s_ekorg for lfm1-ekorg, "PURCHASING ORGANIZATION

s_ktokk for lfa1-ktokk. "ACCOUNT GROUP

selection-screen end of block b1.

selection-screen begin of block b2 with frame title text-002.

parameters: r1 radiobutton group g1,

r2 radiobutton group g1.

selection-screen end of block b2.

data:

v_repid like sy-repid,

begin of itab occurs 0,

lifnr like lfa1-lifnr,

bukrs like lfb1-bukrs,

ekorg like lfm1-ekorg,

ktokk like lfa1-ktokk,

name1 like lfa1-name1,

stras like lfa1-stras,

ort01 like lfa1-ort01,

regio like lfa1-regio,

pfort like lfa1-pfort,

pstlz like lfa1-pstlz,

pstl2 like lfa1-pstl2,

telf1 like lfa1-telf1,

end of itab.

data : itab_event type slis_t_event,

wa_event type slis_alv_event.

data : itab_fld_cat type slis_t_fieldcat_alv,

wa_fldcat type slis_fieldcat_alv.

data : wa_layout type slis_layout_alv.

start-of-selection.

*PERFORM GET_VARIANT.

  • PERFORM data_validation.

perform select_data.

perform get_events using itab_event .

perform fieldcatmerge.

if r1 = 'X'.

perform alvlistdisplay.

elseif r2 = 'X' .

perform alvgriddisplay.

endif.

&----


*& Form DATA_VALIDATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form data_validation .

data: v_count type i.

if s_lifnr is initial and

s_bukrs is initial and

s_ekorg is initial and

s_ktokk is initial.

message e000(z13325).

  • Enter any value in the Selection Screen

endif.

select count(*) from lfa1 where lifnr in s_lifnr.

if sy-subrc <> 0.

message e000(z13325).

  • Enter any value in the Selection Screen

endif.

select count(*) from lfb1 where lifnr in s_bukrs.

if sy-subrc <> 0.

message e000(z13325).

  • Enter any value in the Selection Screen

endif.

select count(*) from lfm1 where lifnr in s_ekorg.

if sy-subrc <> 0.

message e000(z13325).

  • Enter any value in the Selection Screen

endif.

select count(*) from lfa1 where lifnr in s_ktokk.

if sy-subrc <> 0.

message e000(z13325).

  • Enter any value in the Selection Screen

endif.

endform. " DATA_VALIDATION

&----


*& Form SELECT_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form select_data .

select a~lifnr

b~bukrs

c~ekorg

a~ktokk

a~name1

a~stras

a~ort01

a~regio

a~pfort

a~pstlz

a~pstl2

a~telf1

into corresponding fields of table itab

from lfa1 as a inner join lfb1 as b

on alifnr = blifnr

inner join lfm1 as c

on alifnr = clifnr

where a~lifnr in s_lifnr

and b~bukrs in s_bukrs

and c~ekorg in s_ekorg

and a~ktokk in s_ktokk.

sort itab by lifnr bukrs ekorg.

endform. " SELECT_DATA

&----


*& Form FIELDCATMERGE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fieldcatmerge .

v_repid = sy-repid.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = itab_fld_cat

exceptions

inconsistent_interface = 1

program_error = 2

others = 3.

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. " FIELDCATMERGE

&----


*& Form ALVLISTDISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form alvlistdisplay .

v_repid = sy-repid.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

is_layout = wa_layout

it_fieldcat = itab_fld_cat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

i_default = 'X'

  • I_SAVE = 'A'

  • IS_VARIANT =

it_events = itab_event

  • IT_EVENT_EXIT = itab_exit

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " ALVLISTDISPLAY

&----


*& Form ALVGRIDDISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form alvgriddisplay .

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE = 'GRID DISPLAY'

  • I_GRID_SETTINGS =

  • IS_LAYOUT = WS_LAYOUT1

it_fieldcat = itab_fld_cat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = itab_event

  • IT_EVENT_EXIT = itab_exit

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

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. " ALVGRIDDISPLAY

&----


*& Form GET_EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_events using itab_event type slis_t_event.

call function 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

importing

et_events = itab_event

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 itab_event with key name = slis_ev_top_of_page into wa_event

.

if sy-subrc = 0.

wa_event-form = 'FRM_TOP_OF_PAGE'.

modify itab_event from wa_event index sy-tabix.

endif.

endform. " GET_EVENTS

&----


*& Form FRM_TOP_OF_PAGE

&----


  • text

----


form frm_top_of_page.

write : 130 'Time:' ,sy-uzeit .

write :/2 'User: ', sy-uname.

write: 59 sy-title, 130 'Page:' , sy-pagno.

write:/ 'this is swathi and this is top of page '.

endform. "FRM_TOP_OF_PAGE

Reward points if helpful.

Regards

Swathi

Former Member
0 Kudos

Hi,

You can do it usinf FM

Check the example code.....

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_user_command = 'USER_COMMAND_PERNR'

it_fieldcat = header

is_layout = gt_layout

i_callback_top_of_page = 'TOP-OF-PAGE1'

i_grid_title = text-t06

it_sort = gt_sort[]

i_default = 'X'

i_save = 'U'

is_variant = gt_variant

it_events = gt_events

TABLES

t_outtab = ITAB.

clear itab.

*****************************

----


  • Form TOP-OF-PAGE1

----


form top-of-page1.

data: header type slis_t_listheader,

wa type slis_listheader. "infield like wa-info, nline type n.

  • TITLE AREA

wa-typ = 'S'.

wa-info = text-t04.

append wa to header.

wa-typ = 'S'.

write sy-datum to wa-info MM/DD/YYYY.

concatenate text-t03 wa-info into wa-info separated by space.

append wa to header.

wa-typ = 'S'.

concatenate text-t02 sy-UNAME into wa-info separated by space.

append wa to header.

wa-typ = 'S'.

concatenate text-t01 sy-repid into wa-info separated by space.

append wa to header.

call function 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = header

i_logo = 'ENJOYSAP_LOGO1'.

endform.

Thanks,

Deepak.

If this helps you reward with points.

Former Member
0 Kudos

Hey,

Just to add to what others have replied if you are using classes and not function modules for ALV display the standard report BCALV_GRID_01 is a good example of how to use the print processing events in ALV.

-Kiran

Former Member
0 Kudos

Hi Sirisha,

Try this code.

----


C O N S T A N T S

----


*Declaration of Constants

constants : c_top_of_page type slis_formname value 'TOP_OF_PAGE'.

  • Modifing Top of Page event

read table tb_events with key name = lis_ev_top_of_page

into x_events.

clear l_tabix.

l_tabix = sy-tabix.

if sy-subrc = 0.

x_events-form = c_top_of_page.

modify tb_events from x_events index l_tabix.

clear x_events.

endif.

&----


*& Form TOP_OF_PAGE

&----


  • Top Of Page for the ALV format

----


form top_of_page.

  • Top-of-page for the ALV format

refresh tb_comments.

clear x_comments.

x_comments-typ = 'H'.

x_comments-info = 'Lockbox Check Status Report'(m01).

append x_comments to tb_comments.

  • Output header for Kukey

x_comments-typ = c_s.

x_comments-key = 'Destination:'(m02).

x_comments-info = p_desti.

APPEND x_comments TO tb_comments.

x_comments-typ = c_s.

x_comments-key = 'Origin:'(m03).

x_comments-info = p_orign.

APPEND x_comments TO tb_comments.

x_comments-typ = c_s.

x_comments-key = 'File Import Date:'(m04).

x_comments-info = p_date.

APPEND x_comments TO tb_comments.

x_comments-typ = c_s.

x_comments-key = 'Lockbox:'(m05).

x_comments-info = p_lockb.

APPEND x_comments TO tb_comments.

x_comments-typ = c_s.

x_comments-key = 'Batch:'(m06).

x_comments-info = p_batn.

APPEND x_comments TO tb_comments.

x_comments-typ = c_s.

x_comments-key = 'Short Key:'(m07).

x_comments-info = g_kukey.

APPEND x_comments TO tb_comments.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = tb_comments.

endform. " TOP_OF_PAGE

perform detail_alv_grid_display.

&----


*& Form DETAIL_ALV_GRID_DISPLAY

&----


*

----


form detail_alv_grid_display.

clear x_layout.

x_layout-zebra = 'X'.

x_layout-colwidth_optimize = c_x.

x_layout-no_colhead = space.

  • To display the output in ALV format

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = g_repid

I_CALLBACK_PF_STATUS_SET = c_pf_status

IS_LAYOUT = x_layout

IT_FIELDCAT = tb_fieldcat

IT_SORT = tb_sort

I_SAVE = 'A'

is_variant = g_variant1

IT_EVENTS = tb_events

tables

t_outtab = tb_final

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. " DETAIL_ALV_GRID_DISPLAY

former_member188685
Active Contributor
0 Kudos

hi,

check the sample code..

REPORT  Z_TEST_ALV_EVENTS                       .

type-pools: slis.
data: x_fieldcat type slis_fieldcat_Alv,
      it_fieldcat type slis_t_fieldcat_alv,
      x_events type slis_alv_event,
      it_events type SLIS_T_EVENT.

data: begin of itab occurs 0,
       vbeln like vbak-vbeln,
       posnr like vbap-posnr,
      end of itab.

select vbeln
       posnr
       from vbap
       up to 100 rows
       into table itab.

 x_events-name =  'TOP_OF_PAGE'.
 x_events-form =  'TOP_OF_PAGE'.
 append x_events to it_events.
 clear x_events.


* call function 'REUSE_ALV_EVENTS_GET'
*  EXPORTING
*    I_LIST_TYPE           = 0
*  IMPORTING
*    ET_EVENTS             = IT_EVENTS
*  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 it_events into x_events with key name = 'TOP_OF_PAGE'.
*      if sy-subrc = 0.
*      x_events-form = 'TOP_OF_PAGE'.
*      modify it_events from x_events index sy-tabix transporting form .
*      endif.
*

call function 'REUSE_ALV_FIELDCATALOG_MERGE'
 EXPORTING
   I_PROGRAM_NAME               = sy-repid
   I_INTERNAL_TABNAME           = 'ITAB'
   I_INCLNAME                   = sy-repid
  changing
    ct_fieldcat                  = IT_FIELDCAT
 EXCEPTIONS
   INCONSISTENT_INTERFACE       = 1
   PROGRAM_ERROR                = 2
   OTHERS                       = 3
          .
if sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.



 call function 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM                = sy-repid
    I_CALLBACK_PF_STATUS_SET          = 'STATUS'
    I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
    IT_FIELDCAT                       = IT_FIELDCAT
    IT_EVENTS                         = IT_EVENTS
    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.

 FORM TOP_OF_PAGE.

    DATA: LS_LINE TYPE SLIS_LISTHEADER,
          E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

*   Listenüberschrift: Typ H
    CLEAR LS_LINE.
    LS_LINE-TYP  = 'H'.

*   LS_LINE-KEY:  not used for this type
    LS_LINE-INFO = 'Summary'.
    APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.

*   Kopfinfo: Typ S
    CLEAR LS_LINE.
    LS_LINE-TYP  = 'S'.
    LS_LINE-KEY  = 'Test'.
    LS_LINE-INFO = ''.
    APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
    LS_LINE-KEY  = 'ASIA'.
    LS_LINE-INFO = 'test'.
    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-105.
    APPEND LS_LINE TO  E04_LT_TOP_OF_PAGE.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY = E04_LT_TOP_OF_PAGE
        I_LOGO             = 'ENJOYSAP_LOGO'.

 ENDFORM.

Regards

Vijay