Tab Strip ALV
Tab Strip ALV
Tab Strip ALV
*&---------------------------------------------------------------------*
*& Report ZALV_OO_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
TABLES ZEMPL_TABLE.
DATA : GT_EMP_MOD TYPE STANDARD TABLE OF TY_EMP, "For getting Modified rows
GWA_EMP_MOD LIKE LINE OF GT_EMP_MOD.
DATA : GT_EMP_DEL TYPE STANDARD TABLE OF TY_EMP, "For getting Deleted rows
GWA_EMP_DEL LIKE LINE OF GT_EMP_DEL.
ENDCLASS.
*Delete button
CLEAR TOOL_BUTTON.
TOOL_BUTTON-ICON = '@11@'. "Delete icon
TOOL_BUTTON-FUNCTION = 'DELETE'. "e_ucomm Function Code for Delete
TOOL_BUTTON-BUTN_TYPE = 0.
TOOL_BUTTON-TEXT = 'Delete'.
TOOL_BUTTON-QUICKINFO = 'Delete'.
APPEND TOOL_BUTTON TO E_OBJECT->MT_TOOLBAR.
*Save button
CLEAR TOOL_BUTTON.
TOOL_BUTTON-ICON = '@2L@'. "Save icon
TOOL_BUTTON-FUNCTION = 'SAVE'. "e_ucomm Function Code for save
TOOL_BUTTON-BUTN_TYPE = 0.
TOOL_BUTTON-TEXT = 'SAVE'.
TOOL_BUTTON-QUICKINFO = 'SAVE'.
APPEND TOOL_BUTTON TO E_OBJECT->MT_TOOLBAR.
ENDMETHOD.
METHOD HANDLE_USER_COMMAND.
CASE E_UCOMM.
WHEN 'DELETE'.
PERFORM DEL_DATA USING E_UCOMM. "Delete Records from Database table
WHEN 'SAVE'.
PERFORM SAVE_DATA USING E_UCOMM. "Edit and Save Records to Database
table
ENDCASE.
ENDMETHOD.
METHOD HOTSPOT_CLICK.
DATA: LS_COL_ID TYPE LVC_S_COL.
CASE E_COLUMN_ID-FIELDNAME.
WHEN 'ENO'.
CALL TRANSACTION 'ZEMP_TCD'.
WHEN OTHERS.
* do nothing
ENDCASE.
ENDMETHOD. "handle_hotspot_click
METHOD HANDLE_DATA_CHANGED.
FIELD-SYMBOLS : <FS> TYPE ANY TABLE.
DATA : GT_EMP TYPE TABLE OF ZEMPL_TABLE.
IF SY-SUBRC = 0.
COMMIT WORK.
MESSAGE LV_MSG TYPE 'I'.
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Module STATUS_0096 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0096 OUTPUT.
SET PF-STATUS 'STAT96'.
* SET TITLEBAR 'xxx'.
SELECT ENO
ENAME
FROM ZEMPL_TABLE
INTO CORRESPONDING FIELDS OF TABLE GT_EMP
WHERE ENO IN S_ENO.
IF SY-SUBRC EQ 0.
SORT GT_EMP BY ENO.
ENDIF.
*Container Object
CREATE OBJECT R_CONT
EXPORTING
CONTAINER_NAME = 'CCUST'.
*Field Catalog
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = 1 .
WA_FIELDCAT-FIELDNAME = 'ENO'.
WA_FIELDCAT-COLTEXT = 'EMP. NO'.
WA_FIELDCAT-HOTSPOT = 'X'.
WA_FIELDCAT-SELTEXT = 'EMP NO'.
WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-FIELDNAME = 'ENAME'.
WA_FIELDCAT-COLTEXT = 'EMP. NAME'.
WA_FIELDCAT-SELTEXT = 'EMP. NAME'.
WA_FIELDCAT-OUTPUTLEN = 50.
WA_FIELDCAT-EDIT = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
* Layout
WA_LAYO-CWIDTH_OPT = 'X'.
WA_LAYO-ZEBRA = 'X'.
WA_LAYO-CWIDTH_OPT = 'X'.
*ALV Display
CALL METHOD R_ALV->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IT_TOOLBAR_EXCLUDING = T_FUN
IS_LAYOUT = WA_LAYO
CHANGING
IT_OUTTAB = GT_EMP
IT_FIELDCATALOG = IT_FIELDCAT.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0096 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0096 INPUT.
CASE OK_CODE.
WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
CLEAR: GT_ROW,GT_ROW_ID,GT_EMP_DEL.
CLEAR GWA_EMP.
IF V_VALID EQ 'X'.
MESSAGE LV_MSG TYPE 'I'.
ENDIF.
CASE E_UCOMM.
WHEN 'SAVE'.
DATA LV_VALID.
* DATA LV_REFRESH.
CALL METHOD R_ALV->CHECK_CHANGED_DATA "Check Changed Data
IMPORTING
E_VALID = LV_VALID. " Entries are Consistent
WHEN OTHERS.
" Do Nothing
ENDCASE.