Application Development and Automation 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: 
Read only

ALV Push buttons

Former Member
0 Likes
726

Hi,

Can any one tell me how to insert pysh buttons in ALV grid using classes and if possiable send me the code.

Points will be rewarded for the helpful answers.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
685

Hi,

PLzz do reward if it helps.

----


  • CLASS L_CL_EVENTS DEFINITION *

----


  • Class for inserting buttons on the toolbar *

----


CLASS l_cl_events DEFINITION.

PUBLIC SECTION.

METHODS:

toolbar FOR EVENT toolbar

OF cl_gui_alv_grid

IMPORTING e_object

e_interactive,

user_command FOR EVENT user_command

OF cl_gui_alv_grid

IMPORTING e_ucomm .

ENDCLASS. " L_CL_EVENTS DEFINITION

----


  • CLASS L_CL_EVENTS IMPLEMENTATION *

----


  • Implementation of class L_CL_EVENTS *

----


CLASS l_cl_events IMPLEMENTATION.

METHOD toolbar.

PERFORM event_toolbar USING e_object.

ENDMETHOD. " TOOLBAR

METHOD user_command.

PERFORM event_ucomm USING e_ucomm.

ENDMETHOD. " USER_COMMAND

ENDCLASS. " L_CL_EVENTS IMPLEMENTATION

DATA:

  • To create instance for cl_gui_custom_container

g_grid TYPE REF TO cl_gui_custom_container,

  • To create instance for cl_gui_alv_grid

g_alv TYPE REF TO cl_gui_alv_grid,

  • To create instance for l_cl_events

g_events TYPE REF TO l_cl_events,

  • To assign name for custom container

g_container TYPE scrfname VALUE 'CONTAINER',

  • To assign layout

g_fcatlayo TYPE lvc_s_layo.

----


  • FORM EVENT_TOOLBAR *

----


  • Setting toolbar in the alv grid *

----


  • -->E_OBJECT TYPE REF TO CL_ALV_EVENT_TOOLBAR_SET *

----


FORM event_toolbar USING e_object

TYPE REF TO cl_alv_event_toolbar_set.

  • Local declaration for the button.

DATA: ls_toolbar TYPE stb_button.

  • To add Approve button

ls_toolbar-function = c_app_rej

ls_toolbar-butn_type = c_zero.

ls_toolbar-text = text-001.

APPEND ls_toolbar TO e_object->mt_toolbar.

  • To add Reject button

CLEAR ls_toolbar.

ls_toolbar-function = c_fcode_rej.

ls_toolbar-butn_type = c_zero.

ls_toolbar-text = text-013.

APPEND ls_toolbar TO e_object->mt_toolbar.

ENDFORM. " EVENT_TOOLBAR

----


  • FORM EVENT_UCOMM *

----


  • After Input in the ALV grid,if user select record and press *

  • approve or reject then the record will get updated *

----


  • --> PR_ucomm type sy-ucomm *

----


FORM event_ucomm USING pr_ucomm LIKE sy-ucomm.

CASE pr_ucomm.

  • If e_ucomm contains 'APP' i.e.function code for Approve button

WHEN c_fcode_approve. " To approve selected record

PERFORM app_timesheet USING c_approve_status.

  • If e_ucomm contains 'REJ' i.e. function code for Reject

WHEN c_fcode_rej. " To reject selected record

PERFORM app_timesheet USING c_rej_status.

ENDCASE. " CASE E_UCOMM

ENDFORM. " EVENT_UCOMM

Hi,

Can any one tell me how to insert pysh buttons in ALV grid using classes and if possiable send me the code.

Points will be rewarded for the helpful answers.

3 REPLIES 3
Read only

Former Member
0 Likes
686

Hi,

PLzz do reward if it helps.

----


  • CLASS L_CL_EVENTS DEFINITION *

----


  • Class for inserting buttons on the toolbar *

----


CLASS l_cl_events DEFINITION.

PUBLIC SECTION.

METHODS:

toolbar FOR EVENT toolbar

OF cl_gui_alv_grid

IMPORTING e_object

e_interactive,

user_command FOR EVENT user_command

OF cl_gui_alv_grid

IMPORTING e_ucomm .

ENDCLASS. " L_CL_EVENTS DEFINITION

----


  • CLASS L_CL_EVENTS IMPLEMENTATION *

----


  • Implementation of class L_CL_EVENTS *

----


CLASS l_cl_events IMPLEMENTATION.

METHOD toolbar.

PERFORM event_toolbar USING e_object.

ENDMETHOD. " TOOLBAR

METHOD user_command.

PERFORM event_ucomm USING e_ucomm.

ENDMETHOD. " USER_COMMAND

ENDCLASS. " L_CL_EVENTS IMPLEMENTATION

DATA:

  • To create instance for cl_gui_custom_container

g_grid TYPE REF TO cl_gui_custom_container,

  • To create instance for cl_gui_alv_grid

g_alv TYPE REF TO cl_gui_alv_grid,

  • To create instance for l_cl_events

g_events TYPE REF TO l_cl_events,

  • To assign name for custom container

g_container TYPE scrfname VALUE 'CONTAINER',

  • To assign layout

g_fcatlayo TYPE lvc_s_layo.

----


  • FORM EVENT_TOOLBAR *

----


  • Setting toolbar in the alv grid *

----


  • -->E_OBJECT TYPE REF TO CL_ALV_EVENT_TOOLBAR_SET *

----


FORM event_toolbar USING e_object

TYPE REF TO cl_alv_event_toolbar_set.

  • Local declaration for the button.

DATA: ls_toolbar TYPE stb_button.

  • To add Approve button

ls_toolbar-function = c_app_rej

ls_toolbar-butn_type = c_zero.

ls_toolbar-text = text-001.

APPEND ls_toolbar TO e_object->mt_toolbar.

  • To add Reject button

CLEAR ls_toolbar.

ls_toolbar-function = c_fcode_rej.

ls_toolbar-butn_type = c_zero.

ls_toolbar-text = text-013.

APPEND ls_toolbar TO e_object->mt_toolbar.

ENDFORM. " EVENT_TOOLBAR

----


  • FORM EVENT_UCOMM *

----


  • After Input in the ALV grid,if user select record and press *

  • approve or reject then the record will get updated *

----


  • --> PR_ucomm type sy-ucomm *

----


FORM event_ucomm USING pr_ucomm LIKE sy-ucomm.

CASE pr_ucomm.

  • If e_ucomm contains 'APP' i.e.function code for Approve button

WHEN c_fcode_approve. " To approve selected record

PERFORM app_timesheet USING c_approve_status.

  • If e_ucomm contains 'REJ' i.e. function code for Reject

WHEN c_fcode_rej. " To reject selected record

PERFORM app_timesheet USING c_rej_status.

ENDCASE. " CASE E_UCOMM

ENDFORM. " EVENT_UCOMM

Read only

Former Member
0 Likes
685

Hi,

CLASS lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_double_click

FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row e_column.

METHODS: handle_button_click

FOR EVENT button_click OF cl_gui_alv_grid

IMPORTING es_col_id es_row_no.

ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION

----


  • CLASS LCL_EVENT_RECEIVER IMPLEMENTATION

----


*

----


CLASS lcl_event_receiver IMPLEMENTATION.

METHOD handle_double_click.

ENDMETHOD. "HANDLE_DOUBLE_CLICK

METHOD handle_button_click.

ENDMETHOD. "HANDLE_BUTTON_CLICK

ENDCLASS. "lcl_event_receiver IMPLEMENTATION

after creating the object of this class.

set the handler ..

eg

SET HANDLER w_event_receiver->handle_button_click FOR w_grid.

and use this logic to create button.

create a two fields in the internal table.

eg

button (30) type c

push type LVC_S_STYL.

ls_styl-fieldname = 'BUTTON'.

ls_styl-style = cl_gui_alv_grid=>mc_style_button.

APPEND ls_styl TO itab-push.

and in the fieldcatalog u should pass

data: w_mylayout type lvc_s_layo.

w_mylayout-stylefname = 'PUSH'.

and then pass it to

CALL METHOD w_grid->set_table_for_first_display

EXPORTING

is_layout = w_mylayout

CHANGING

it_outtab = t_manpower

it_fieldcatalog = ist_fcat[]

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4.

IF sy-subrc <> 0.

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

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

ENDIF.

regards,

Santosh Thorat

Read only

Former Member
0 Likes
685

hi ,

we can add push buttons in alv grid using oops concept.

we create a container and call the screen for display with the push button if you want.

Reward Points if found helpfull..

Cheers,

Chandra Sekhar.