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: 

ALV Grid Using Methods-handle_top_of_page

Former Member
0 Kudos

riends please explain how to resolve the below issue.

I am working on ALV Grid using methods & trying to display

page heading using handle_top_of_page event.

I have defined & implemented the above method and in the implementation I have

given a write statement, which has to be displayed on the top of page.

I have also set the handler for top of page.

The program does not have any errors, but top of page event is not triggered, what might be the problem.

Regards,

Usha

11 REPLIES 11

Vinod_Chandran
Active Contributor
0 Kudos

Check this.

jayanthi_jayaraman
Active Contributor
0 Kudos

Hi,

Did you used the following?

CALL METHOD DA_GRID1->LIST_PROCESSING_EVENTS

EXPORTING

I_EVENT_NAME = 'TOP_OF_PAGE'

I_DYNDOC_ID = DA_TOP

    • IS_SUBTOTTXT_INFO =

    • IP_SUBTOT_LINE =

    • CHANGING

    • C_SUBTOTTXT =

.

Check this link.

http://www.sap4.com/codigo-155.html

Check for some standard program to display the top-of-page.Sometimes,it may be GUI problem.So it won't display top-of-page.If it is GUI problen,you cannot see the program name box in SE80.

Check also whether that corresponding form is triggered in Debugging by placing a break-point inside the form.

Hope this helps.

Message was edited by: Jayanthi Jayaraman

0 Kudos

Hi,

Check this link for sample code.

Message was edited by: Jayanthi Jayaraman

Former Member
0 Kudos

Hi,

see demo programme

<b>BCALV_TEST_GRID_EVENTS</b>

which can help u.

regards,

venu.

Bema
Active Participant
0 Kudos

Hi,

it may be because of your GUI. Try to run the same program in some other system.

Former Member
0 Kudos

Tried everything

Still not working

0 Kudos

Hi,

Check this code

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

  • Class definition :

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

----


  • CLASS v_lcl_event_receiver DEFINITION

----


CLASS v_lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_print_top_of_page FOR EVENT print_top_of_page OF

cl_gui_alv_grid,

handle_top_of_page FOR EVENT top_of_page OF

cl_gui_alv_grid.

ENDCLASS.

----


  • CLASS V_LCL_EVENT_RECEIVER IMPLEMENTATION

----


CLASS v_lcl_event_receiver IMPLEMENTATION.

METHOD handle_print_top_of_page.

IF sy-pagno = 1.

PERFORM top_of_page.

ENDIF.

ENDMETHOD.

METHOD handle_top_of_page.

PERFORM top_of_page.

ENDMETHOD.

ENDCLASS.

DATA: v_event_receiver TYPE REF TO v_lcl_event_receiver.

FORM top_of_page.

WRITE: text-020,

/

ENDFORM. " top_of_page

In PBo of the screen

DATA: v_split TYPE REF TO cl_gui_easy_splitter_container,

v_contnr_top TYPE REF TO cl_gui_container,

v_contnr_bot TYPE REF TO cl_gui_container,

v_grid_02 TYPE REF TO cl_gui_alv_grid,

v_html TYPE REF TO cl_dd_document,

v_text20(255) TYPE c,

v_text16(255) TYPE c,

FORM f9000_objects_create.

IF cl_gui_alv_grid=>offline( ) IS INITIAL.

Create a container

CREATE OBJECT o_dockingcontainer

EXPORTING

ratio = '95'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

CREATE OBJECT v_split

EXPORTING

parent = o_dockingcontainer

  • ORIENTATION = 0

sash_position = 25

with_border = 0

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

others = 3.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

  • Get the containers of the splitter control

v_contnr_top = v_split->top_left_container.

v_contnr_bot = v_split->bottom_right_container.

CREATE OBJECT o_alvgrid

EXPORTING

i_parent = o_dockingcontainer.

  • Create an instance of alv control

CREATE OBJECT o_alvgrid

EXPORTING i_parent = v_contnr_bot.

  • Object for display of selection parameters in HTML top container

CREATE OBJECT v_html

EXPORTING

style = 'ALV_GRID'.

  • Must be after the SET HANDLER for TOP_OF_PAGE and foreground only

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'TOP_OF_PAGE'

i_dyndoc_id = v_html.

v_text20 = text-020(summary Record counts)Any text.

CALL METHOD v_html->add_gap

EXPORTING

width = 120.

CALL METHOD v_html->add_text

EXPORTING

text = v_text20.

CALL METHOD v_html->new_line.

    • Display Text-016

v_text16 = text-016.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

v_text16 = v_sap_recon.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

CALL METHOD v_html->new_line.

  • Display the data

CALL METHOD v_html->display_document

EXPORTING

parent = v_contnr_top.

  • Handle the event

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'PRINT_TOP_OF_PAGE'.

IN PBO while populating in the output table

FORM f9004_display_data TABLES p_report_tab

p_fieldcat.

CALL METHOD o_alvgrid->set_table_for_first_display

EXPORTING

is_variant = w_variant

i_save = c_a

is_layout = w_layout

CHANGING

it_outtab = p_report_tab[]

it_fieldcatalog = p_fieldcat[]

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE i000 WITH text-e06."Error in ALV report display

LEAVE LIST-PROCESSING.

ENDIF.

  • Create object

IF v_event_receiver IS INITIAL.

CREATE OBJECT v_event_receiver.

ENDIF.

SET HANDLER v_event_receiver->handle_print_top_of_page FOR o_alvgrid.

SET HANDLER v_event_receiver->handle_top_of_page FOR o_alvgrid.

Hope this helps.

Former Member
0 Kudos

Hi,

Check if you have used all these:

----


  • CLASS v_lcl_event_receiver DEFINITION

----


CLASS v_lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_print_top_of_page FOR EVENT print_top_of_page OF

cl_gui_alv_grid,

handle_top_of_page FOR EVENT top_of_page OF

cl_gui_alv_grid.

ENDCLASS.

----


  • CLASS V_LCL_EVENT_RECEIVER IMPLEMENTATION

----


CLASS v_lcl_event_receiver IMPLEMENTATION.

METHOD handle_print_top_of_page.

IF sy-pagno = 1.

write :/**************

ENDIF.

ENDMETHOD.

METHOD handle_top_of_page.

Write 😕 *************

ENDMETHOD.

  • Must be after the SET HANDLER for TOP_OF_PAGE and foreground only

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'TOP_OF_PAGE'

i_dyndoc_id = v_html.

  • Handle the event

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'PRINT_TOP_OF_PAGE'.

Regards,

Anjali

Former Member
0 Kudos

Anjali,

I have incorporated all the code snippets what you have

mentioned.

Regards,

Usha

0 Kudos

Hi Usha,

Please try to run any program having a top of page event on your system. If its not displaying, then the problem is with your system's SAP GUI.

Otherwise, we have to see again.

Check these links, if they giv u some tips.

Meanwhile we shall try to find alternate sols for this.

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_rephead.htm

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_enhanced.htm

Regards,

Anjali

Former Member
0 Kudos

Top-of-page event is for printing the ALV list. You should be able to see the header in report printout.