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: 

Button in Toolbar for CL_GUI_ALV_GRID in sub screen

Former Member
0 Kudos

Hi All,

I am trying to display data using ALV grid of type CL_GUI_ALV_GRID in a sub screen in a tab strip. I want a button on the toolbar of the grid, as I am using sub screen I can't use SET PF-STATUS statement. Below is the code which I had written for the button to display on toolbar of the grid.

DATA pasgr_alv TYPE REF TO cl_gui_alv_grid.

CLASS : toolbar_event_handler DEFINITION .

PUBLIC SECTION .

CLASS-METHODS: set_alv_tbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object e_interactive.

ENDCLASS. ": TOOLBAR_EVENT_

CLASS : toolbar_event_handler IMPLEMENTATION.

METHOD set_alv_tbar.

CLEAR alv_sbutton.

alv_sbutton-function = 'PRINT'.

alv_sbutton-icon = ''.

alv_sbutton-quickinfo = 'FUNCTION 1'.

alv_sbutton-butn_type = 0.

alv_sbutton-text = 'Print'.

*APPEND alv_sbutton to alv_button.

APPEND alv_sbutton TO e_object->mt_toolbar.

ENDMETHOD. "set_alv_tbar

ENDCLASS. "toolbar_event_handler IMPLEMENTATION

SET HANDLER toolbar_event_handler=>set_alv_tbar FOR pasgr_alv.

Here I am facing a problem. At first I not getting button. But when I perform any openartion on the content displayed in the grid (like sorting a column) then the button is displayed.

But I want this button to be displayed in the first display of the ALV grid. I tried by using set_registered_events of the cl_gui_alv_grid but I couldn't get exact eventid.

Is there any way to do this?

Thanks,

Subbarao.

2 REPLIES 2

Former Member
0 Kudos

I use statements, like:

set handler event_receiver->handle_toolbar for grid.

...

  • Make the new functions visible.

call method grid->set_toolbar_interactive.

Handle_toolbar method adds the function buttons to the GUI status in the position (index) I want.

Former Member
0 Kudos

Hi Team,

I solved my issue by calling set_toolbar_interactive of CL_GUI_ALV_GRID.