Skip to Content
author's profile photo Former Member
Former Member

alv report

hi experts,

i am doing one report for this i have get top-of-page.

i am using below code:

FORM dispaly_data .

*data: g_repid type sy-repid.

  • g_repid = sy-repid.

CLEAR wa_layout.

wa_layout-zebra = 'X'.

  • wa_layout-colwidth_optimize = 'X'.

CLEAR wa_events.

  • Call the grid function module



i_callback_program = sy-repid

is_layout = wa_layout

it_fieldcat = it_fieldcat


  • IT_SORT =

i_default = 'X'

i_save = 'A'

i_callback_html_top_of_page = 'SUB_TOP_OF_PAGE'

i_html_height_top = 8

is_variant = g_variant



t_outtab = it_final[]


program_error = 1


IF sy-subrc <> 0.

  • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF. " IF sy-subrc <> 0

ENDFORM. " dispaly_data


*& Form sub_top_of_page


  • text


  • -->TOP text


FORM sub_top_of_page USING top TYPE REF TO cl_dd_document .

*& Align output text column

CALL METHOD top->add_gap


width = 180.

  • Write text

CALL METHOD top->add_text


text = text-028

sap_style = 'HEADING'.

  • Add new-line

CALL METHOD top->new_line.

but in the output i am not getting heding of report .

pl, correct if any mistake of coding.

reward points.


Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • Posted on Jun 19, 2008 at 09:28 AM


    check this sample report to get top of page.

    report ZMAT.

    • Data Types

    type-pools: slis.

    types: begin of tp_data,

    matnr like mara-matnr,

    mtart like mara-mtart,

    mbrsh like mara-mbrsh,

    matkl like mara-matkl,

    meins like mara-meins,

    spras like makt-spras,

    maktx like makt-maktx,

    end of tp_data,

    tp_tbl_data type standard table of tp_data.


    • Constants



    • Data objects (variable declarations and definitions)


    • Report data to be shown.

    data: it_data type standard table of tp_data.

    • Heading of the report.

    data: t_heading type slis_t_listheader.

    ========================== Selection Screen ==========================

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

    DATA: w_aux_matnr like mara-matnr.

    SELECT-OPTIONS s_matnr for w_aux_matnr .

    DATA: w_aux_ersda like mara-ersda.

    SELECT-OPTIONS s_ersda for w_aux_ersda .

    DATA: w_aux_mtart like mara-mtart.

    SELECT-OPTIONS s_mtart for w_aux_mtart .

    *DATA: w_aux_matnr like makt-matnr.

    *SELECT-OPTIONS s_matnr for w_aux_matnr .

    DATA: w_aux_spras like makt-spras.

    SELECT-OPTIONS s_spras for w_aux_spras .

    selection-screen: end of block b1.

    =========================== Event Blocks =============================

    at selection-screen.


    perform get_data using it_data.


    perform build_alv using it_data t_heading.

    =========================== Subroutines ==============================


    *& Form get_data


    • Gets the information to be shown in the report.


    form get_data using t_data type tp_tbl_data.

    SELECT k~spras








    FROM mara as m

    inner join makt as k on mmatnr = kmatnr

    WHERE m~matnr in s_matnr

    AND m~ersda in s_ersda

    AND m~mtart in s_mtart

    AND k~matnr in s_matnr

    AND k~spras in s_spras


    endform. " get_data


    *& Form build_alv


    • Builds and display the ALV Grid.


    form build_alv using t_data type tp_tbl_data

    t_heading type slis_t_listheader.

    • ALV required data objects.

    data: w_title type lvc_title,

    w_comm type slis_formname,

    w_status type slis_formname,

    x_layout type slis_layout_alv,

    t_event type slis_t_event,

    t_fieldcat type slis_t_fieldcat_alv,

    t_sort type slis_t_sortinfo_alv.

    refresh t_fieldcat.

    refresh t_event.

    refresh t_sort.

    clear x_layout.

    clear w_title.

    • Field Catalog

    perform set_fieldcat2 using:

    1 'SPRAS' 'SPRAS' 'MAKT' space space space space space space space space

    space space space space t_fieldcat ,

    2 'MATNR' 'MATNR' 'MARA' space space space space space space space space

    space space space space t_fieldcat ,

    3 'MTART' 'MTART' 'MARA' space space space space space space space space

    space space space space t_fieldcat ,

    4 'MBRSH' 'MBRSH' 'MARA' space space space space space space space space

    space space space space t_fieldcat ,

    5 'MATKL' 'MATKL' 'MARA' space space space space space space space space

    space space space space t_fieldcat ,

    6 'MEINS' 'MEINS' 'MARA' space space space space space space space space

    space space space space t_fieldcat ,

    7 'MAKTX' 'MAKTX' 'MAKT' space space space space space space space space

    space space space space t_fieldcat .

    • Layout

    x_layout-zebra = 'X'.

    • Top of page heading

    perform set_top_page_heading using t_heading t_event.

    • Events

    perform set_events using t_event.

    • GUI Status

    w_status = ''.

    • User commands

    w_comm = 'USER_COMMAND'.

    • Order

    • Example

    • PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.

    • Displays the ALV grid

    call function 'REUSE_ALV_GRID_DISPLAY'


    i_callback_program = sy-repid

    it_fieldcat = t_fieldcat

    is_layout = x_layout

    it_sort = t_sort

    i_callback_pf_status_set = w_status

    i_callback_user_command = w_comm

    i_save = 'X'

    it_events = t_event

    i_grid_title = w_title


    t_outtab = t_data


    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.


    endform. " build_alv.


    *& Form set_top_page_heading


    • Creates the report headings.


    form set_top_page_heading using t_heading type slis_t_listheader

    t_events type slis_t_event.

    data: x_heading type slis_listheader,

    x_event type line of slis_t_event.

    • Report title

    clear t_heading[].

    clear x_heading.

    x_heading-typ = 'H'.

    x_heading-info = 'Material Info'(001).

    append x_heading to t_heading.

    • Program name

    clear x_heading.

    x_heading-typ = 'S'.

    x_heading-key = 'Program: '.

    x_heading-info = sy-repid.

    append x_heading to t_heading.

    • User who is running the report

    clear x_heading.

    x_heading-typ = 'S'.

    x_heading-key = 'User: '.

    x_heading-info = sy-uname.

    append x_heading to t_heading.

    • Date of execution

    clear x_heading.

    x_heading-typ = 'S'.

    x_heading-key = 'Date: '.

    write sy-datum to x_heading-info.

    append x_heading to t_heading.

    • Time of execution

    clear x_heading.

    x_heading-typ = 'S'.

    x_heading-key = 'Time: '.

    write sy-uzeit to x_heading-info.

    append x_heading to t_heading.

    • Top of page event

    x_event-name = slis_ev_top_of_page.

    x_event-form = 'TOP_OF_PAGE'.

    append x_event to t_events.



    *& Form set_events


    • Sets the events for ALV.

    • The TOP_OF_PAGE event is alredy being registered in

    • the set_top_page_heading subroutine.


    form set_events using t_events type slis_t_event.

    data: x_event type line of slis_t_event.


    • Example

    • -------

    • clear x_event.

    • x_event-name = .

    • x_event-form = .

    • append x_event to t_event.




    *& Form set_order


    • Adds an entry to the order table.


    FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot

    t_sort TYPE slis_t_sortinfo_alv.

    DATA: x_sort TYPE slis_sortinfo_alv.

    CLEAR x_sort.

    x_sort-fieldname = p_fieldname.

    x_sort-tabname = p_tabname.

    x_sort-up = p_up.

    x_sort-down = p_down.

    x_sort-subtot = p_subtot.

    APPEND x_sort TO t_sort.

    ENDFORM. "set_order


    *& Form set_fieldcat2


    • Adds an entry to the field catalog.


    FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname


    p_outputlen p_noout

    p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt

    p_hotspot p_showasicon p_checkbox p_edit


    t_fieldcat TYPE slis_t_fieldcat_alv.

    DATA: wa_fieldcat TYPE slis_fieldcat_alv.

    CLEAR wa_fieldcat.

    • General settings

    wa_fieldcat-fieldname = p_fieldname.

    wa_fieldcat-col_pos = p_colpos.

    wa_fieldcat-no_out = p_noout.

    wa_fieldcat-hotspot = p_hotspot.

    wa_fieldcat-checkbox = p_checkbox.

    wa_fieldcat-icon = p_showasicon.

    wa_fieldcat-do_sum = p_dosum.

    • Set reference fieldname, tablenam and rollname.

    • If p_ref_tabname is not given, the ref_fieldname given is a data


    • If p_ref_tabname is given, the ref_fieldname given is a field of a

    *table. In case ref_fieldname is not given, it is copied from the


    IF p_ref_tabname IS INITIAL.

    wa_fieldcat-rollname = p_ref_fieldname.


    wa_fieldcat-ref_tabname = p_ref_tabname.

    IF p_ref_fieldname EQ space.

    wa_fieldcat-ref_fieldname = wa_fieldcat-fieldname.


    wa_fieldcat-ref_fieldname = p_ref_fieldname.



    • Set output length.

    IF NOT p_outputlen IS INITIAL.

    wa_fieldcat-outputlen = p_outputlen.


    • Set text headers.

    IF NOT p_seltext_m IS INITIAL.

    wa_fieldcat-seltext_m = p_seltext_m.


    IF NOT p_seltext_l IS INITIAL.

    wa_fieldcat-seltext_l = p_seltext_l.


    IF NOT p_seltext_s IS INITIAL.

    wa_fieldcat-seltext_s = p_seltext_s.


    IF NOT p_reptext_ddic IS INITIAL.

    wa_fieldcat-reptext_ddic = p_reptext_ddic.


    IF NOT p_ddictxt IS INITIAL.

    wa_fieldcat-ddictxt = p_ddictxt.


    • Set as editable or not.

    IF p_edit IS NOT INITIAL.

    wa_fieldcat-input = 'X'.

    wa_fieldcat-edit = 'X'.


    APPEND wa_fieldcat TO t_fieldcat.

    ENDFORM. "set_fieldcat2

    =========================== Subroutines called by ALV ================


    *& Form top_of_page


    • Called on top_of_page ALV event.

    • Prints the heading.


    form top_of_page.

    call function 'REUSE_ALV_COMMENTARY_WRITE'


    • i_logo = 'XXXXX'

    it_list_commentary = t_heading.

    endform. " alv_top_of_page


    *& Form user_command


    • Called on user_command ALV event.

    • Executes custom commands.


    form user_command using r_ucomm like sy-ucomm

    rs_selfield type slis_selfield.


    • Example Code


    • Executes a command considering the sy-ucomm.

    • CASE r_ucomm.

    • WHEN '&IC1'.


    • Set your "double click action" response here.


    • Example code: Create and display a status message.

    • DATA: w_msg TYPE string,

    • w_row(4) TYPE n.

    • w_row = rs_selfield-tabindex.

    • CONCATENATE 'You have clicked row' w_row

    • 'field' rs_selfield-fieldname

    • 'with value' rs_selfield-value

    • INTO w_msg SEPARATED BY space.

    • MESSAGE w_msg TYPE 'S'.


    • ENDCASE.


    • End of example code.


    endform. "user_command

    reward points if hlpful.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.