07-19-2005 10:31 AM
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
07-19-2005 10:38 AM
07-19-2005 10:38 AM
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
07-19-2005 10:55 AM
07-19-2005 10:39 AM
Hi,
see demo programme
<b>BCALV_TEST_GRID_EVENTS</b>
which can help u.
regards,
venu.
07-19-2005 10:40 AM
Hi,
it may be because of your GUI. Try to run the same program in some other system.
07-19-2005 11:21 AM
07-19-2005 11:24 AM
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.
07-19-2005 11:56 AM
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
07-19-2005 12:08 PM
Anjali,
I have incorporated all the code snippets what you have
mentioned.
Regards,
Usha
07-19-2005 12:32 PM
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
07-19-2005 1:45 PM
Top-of-page event is for printing the ALV list. You should be able to see the header in report printout.