edit alv user commonds
FORM display_item USING ucomm TYPE sy-ucomm
selfield TYPE slis_selfield.
******************************************************** this code captured the change request in alv reports ***********
DATA: gd_repid LIKE sy-repid,
ref_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
CALL METHOD ref_grid->check_changed_data.
***************************************************************************************************************************
CASE ucomm.
WHEN 'DELETE'.
CLEAR: gs_table.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
IF gs_table-checkbox <> 'X'.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDLOOP.
IF gs_table IS INITIAL.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'DELETING DATA'
text_question = 'Do you want to delete data?'
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
****** When the User clicks 'YES'
IF ( gstring = '1' ).
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
DELETE FROM zrkemployee WHERE zemp_id = gs_table-zemp_id.
DELETE gt_table WHERE zemp_id = gs_table-zemp_id.
ENDLOOP.
IF sy-subrc IS INITIAL.
MESSAGE 'Records Deleted sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Select at least one checkbox' TYPE 'I'.
ENDIF.
CALL METHOD ref_grid->refresh_table_display.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'data not deleted' TYPE 'S'.
ENDIF.
WHEN 'UPDATE'.
CLEAR: gs_table.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
IF gs_table-checkbox <> 'X'.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDLOOP.
IF gs_table IS INITIAL.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'SAVING DATA'
text_question = 'Do you want save the data?'
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
****** When the User clicks 'YES'
IF ( gstring = '1' ).
MESSAGE ' Data Saved' TYPE 'S'.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
UPDATE zrkemployee SET
zemp_name = gs_table-zemp_name
zemp_desi = gs_table-zemp_desi
zemp_dept = gs_table-zemp_dept
zemp_gender = gs_table-zemp_gender
zemp_dob = gs_table-zemp_dob
zemp_doj = gs_table-zemp_doj
zemp_address = gs_table-zemp_address
zemp_email = gs_table-zemp_email
zemp_bld = gs_table-zemp_bld
zemp_pan_no = gs_table-zemp_pan_no
WHERE zemp_id = gs_table-zemp_id.
ENDLOOP.
IF sy-subrc IS INITIAL.
MESSAGE 'Records update sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Select at least one checkbox' TYPE 'I'.
ENDIF.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = ' '. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
CALL METHOD ref_grid->refresh_table_display.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'Not Saved' TYPE 'S'.
ENDIF.
WHEN '&DATA_SAVE'.
CLEAR: gs_table.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
IF gs_table-checkbox <> 'X'.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDLOOP.
IF gs_table IS INITIAL.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'SAVING DATA'
text_question = 'Do you want save the data?'
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
****** When the User clicks 'YES'
IF ( gstring = '1' ).
MESSAGE ' Data Saved' TYPE 'S'.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
UPDATE zrkemployee SET
zemp_name = gs_table-zemp_name
zemp_desi = gs_table-zemp_desi
zemp_dept = gs_table-zemp_dept
zemp_gender = gs_table-zemp_gender
zemp_dob = gs_table-zemp_dob
zemp_doj = gs_table-zemp_doj
zemp_address = gs_table-zemp_address
zemp_email = gs_table-zemp_email
zemp_bld = gs_table-zemp_bld
zemp_pan_no = gs_table-zemp_pan_no
WHERE zemp_id = gs_table-zemp_id.
ENDLOOP.
IF sy-subrc IS INITIAL.
MESSAGE 'Records update sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Select at least one checkbox' TYPE 'I'.
ENDIF.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = ' '. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
CALL METHOD ref_grid->refresh_table_display.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'Not Saved' TYPE 'S'.
ENDIF.
WHEN 'SELECTALL'.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = 'X'. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
WHEN 'DESELECT'.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = ' '. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
ENDCASE.
ENDFORM. "display_item " GET_EVENTS
selfield TYPE slis_selfield.
******************************************************** this code captured the change request in alv reports ***********
DATA: gd_repid LIKE sy-repid,
ref_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
CALL METHOD ref_grid->check_changed_data.
***************************************************************************************************************************
CASE ucomm.
WHEN 'DELETE'.
CLEAR: gs_table.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
IF gs_table-checkbox <> 'X'.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDLOOP.
IF gs_table IS INITIAL.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'DELETING DATA'
text_question = 'Do you want to delete data?'
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
****** When the User clicks 'YES'
IF ( gstring = '1' ).
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
DELETE FROM zrkemployee WHERE zemp_id = gs_table-zemp_id.
DELETE gt_table WHERE zemp_id = gs_table-zemp_id.
ENDLOOP.
IF sy-subrc IS INITIAL.
MESSAGE 'Records Deleted sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Select at least one checkbox' TYPE 'I'.
ENDIF.
CALL METHOD ref_grid->refresh_table_display.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'data not deleted' TYPE 'S'.
ENDIF.
WHEN 'UPDATE'.
CLEAR: gs_table.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
IF gs_table-checkbox <> 'X'.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDLOOP.
IF gs_table IS INITIAL.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'SAVING DATA'
text_question = 'Do you want save the data?'
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
****** When the User clicks 'YES'
IF ( gstring = '1' ).
MESSAGE ' Data Saved' TYPE 'S'.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
UPDATE zrkemployee SET
zemp_name = gs_table-zemp_name
zemp_desi = gs_table-zemp_desi
zemp_dept = gs_table-zemp_dept
zemp_gender = gs_table-zemp_gender
zemp_dob = gs_table-zemp_dob
zemp_doj = gs_table-zemp_doj
zemp_address = gs_table-zemp_address
zemp_email = gs_table-zemp_email
zemp_bld = gs_table-zemp_bld
zemp_pan_no = gs_table-zemp_pan_no
WHERE zemp_id = gs_table-zemp_id.
ENDLOOP.
IF sy-subrc IS INITIAL.
MESSAGE 'Records update sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Select at least one checkbox' TYPE 'I'.
ENDIF.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = ' '. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
CALL METHOD ref_grid->refresh_table_display.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'Not Saved' TYPE 'S'.
ENDIF.
WHEN '&DATA_SAVE'.
CLEAR: gs_table.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
IF gs_table-checkbox <> 'X'.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDLOOP.
IF gs_table IS INITIAL.
MESSAGE 'Select At least one chekcbox' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'SAVING DATA'
text_question = 'Do you want save the data?'
icon_button_1 = 'icon_booking_ok'
IMPORTING
answer = gstring
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
ENDIF.
****** When the User clicks 'YES'
IF ( gstring = '1' ).
MESSAGE ' Data Saved' TYPE 'S'.
LOOP AT gt_table INTO gs_table WHERE checkbox = 'X'.
UPDATE zrkemployee SET
zemp_name = gs_table-zemp_name
zemp_desi = gs_table-zemp_desi
zemp_dept = gs_table-zemp_dept
zemp_gender = gs_table-zemp_gender
zemp_dob = gs_table-zemp_dob
zemp_doj = gs_table-zemp_doj
zemp_address = gs_table-zemp_address
zemp_email = gs_table-zemp_email
zemp_bld = gs_table-zemp_bld
zemp_pan_no = gs_table-zemp_pan_no
WHERE zemp_id = gs_table-zemp_id.
ENDLOOP.
IF sy-subrc IS INITIAL.
MESSAGE 'Records update sucessfully' TYPE 'I'.
ELSE.
MESSAGE 'Select at least one checkbox' TYPE 'I'.
ENDIF.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = ' '. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
CALL METHOD ref_grid->refresh_table_display.
ELSE.
*When user clicks NO or Cancel
MESSAGE 'Not Saved' TYPE 'S'.
ENDIF.
WHEN 'SELECTALL'.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = 'X'. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
WHEN 'DESELECT'.
LOOP AT gt_table INTO gs_table.
gs_table-checkbox = ' '. " ' '.
MODIFY gt_table FROM gs_table TRANSPORTING checkbox.
COMMIT WORK.
ENDLOOP.
selfield-refresh = 'X'.
ENDCASE.
ENDFORM. "display_item " GET_EVENTS
Comments
Post a Comment