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

Comments

Popular posts from this blog

all user exit mv45afzz (implicit user exit )

MB_MIGO_BADI THIS BADI USED TO POSTING DATA IN MIGO

Long Text in input and output field in module pool