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: 

How to capture check box click in ALV

Former Member
0 Kudos

Hi,

I have requirement in which after displaying the ALV out put, immediately when the check box is checked i need to capture it and proceed with further coding with that input.

Check box click is not getting captured in "USER COMMAND or LINE SELECTION"

Could you please suggest a way.

Regards

venkatesh.

8 REPLIES 8

Former Member
0 Kudos

Hi venkatesh,

Please check this standard test ALV block program BALVBT01.

Regards,

Sri

former_member536879
Active Contributor
0 Kudos

Hi,

DATA : LV_REF1 TYPE REF TO CL_GUI_ALV_GRID,

LV_VALID TYPE C.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

E_GRID = LV_REF1.

CALL METHOD LV_REF1->CHECK_CHANGED_DATA

IMPORTING

E_VALID = LV_VALID.

IF LV_VALID = 'X' .

" Your Logic.

endif.

Hope this might help you.

With Regards,

Sumodh.P

Former Member
0 Kudos

Venkatesh,

If you are using cl_gui_alv_grid you need to register "change" event to catch the checkbox change.

you do so with this method of cl_gui_alv_grid class :

register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_modified ).

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

  • event handler class

class lcl_event_receiver definition.

public section.

methods:

user_command for event user_command of cl_gui_alv_grid

importing e_ucomm, "#EC NEEDED

data_changed for event data_changed of cl_gui_alv_grid

importing er_data_changed e_onf4 e_onf4_before e_onf4_after e_ucomm,"#EC NEEDED

endclass.

  • global data

data: o_event_receiver type ref to lcl_event_receiver.

data: goo_grid type ref to cl_gui_alv_grid.

  • At the displaying of your grid / register the change event and set handlers

goo_grid->register_edit_event( i_event_id = cl_gui_alv_grid=>mc_evt_modified ).

set handler:

o_event_receiver->user_command for goo_grid,

o_event_receiver->data_changed for goo_grid.

hope this helps...

regards

Former Member
0 Kudos

Hi Venkatesh,

Please check the link below:

[ALV Grid Display with checkbox to process selected records at runtime|http://wiki.sdn.sap.com/wiki/display/Snippets/ALVGridDisplaywithcheckboxtoprocessselectedrecordsatruntime]

Regards,

Md Ziauddin.

former_member907073
Participant
0 Kudos

Hi,

Make use of field I_CHECKBOX_FIELDNAME of function module 'REUSE_ALV_POPUP_TO_SELECT'.With this ,you will have to the usual 'REUSE_ALV_GRID_DISPLAY'.

Regds,

abhee

Former Member
0 Kudos

Example:


TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV,
X_EVENTS TYPE SLIS_ALV_EVENT,
IT_EVENTS TYPE SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
CHK(1),
color(4),
END OF ITAB.

SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.

X_FIELDCAT-FIELDNAME = 'CHK'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
X_FIELDCAT-INPUT = 'X'.
X_FIELDCAT-EDIT = 'X'.
X_FIELDCAT-CHECKBOX = 'X'.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-HOTSPOT = 'X'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.

Former Member
0 Kudos

Continue.....


X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.

L_LAYOUT-info_fieldname = 'COLOR'.
*L_LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
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.
ENDIF.

FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.


*Pf status
SET PF-STATUS 'STATUS'.
ENDFORM. " STATUS

Former Member
0 Kudos

Continue.....


*&---------------------------------------------------------------------
*& Form USER_COMMAND
*&---------------------------------------------------------------------

*text
*----------------------------------------------------------------------

*-->R_UCOMM text
*-->RS_SELFIELD text
*----------------------------------------------------------------------
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

DATA: GD_REPID LIKE SY-REPID, "Exists
REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
IF REF_GRID IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
ENDIF.
IF NOT REF_GRID IS INITIAL.
CALL METHOD REF_GRID->CHECK_CHANGED_DATA .
ENDIF.

loop at itab where chk = 'X'.
itab-color = 'C300'.
modify itab index sy-tabix transporting color.
endloop.
RS_SELFIELD-refresh = 'X'.
break-point.

ENDFORM. "USER_COMMAND