I_STRUCTURE_NAME = 'SPFLI' * IS_VARIANT = * I_SAVE = * I_DEFAULT = 'X' * IS_LAYOUT = * IS_PRINT = * IT_SPECIAL_GROUPS = * IT_TOOLBAR_EXCLUDING = * IT_HYPERLINK = * IT_ALV_GRAPHICS = * IT_EXCEPT_QINFO = * IR_SALV_ADAPTER = CHANGING
IT_OUTTAB = LT_SPFLI * IT_FIELDCATALOG = * IT_SORT = * IT_FILTER = * 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.
ENDIF.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT. SAVE_OK = OK_CODE. CLEAR:OK_CODE. CASE SAVE_OK.
WHEN 'EXIT'. LEAVE PROGRAM. ENDCASE.
ENDMODULE. \
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CANCEL INPUT. LEAVE PROGRAM.
ENDMODULE. \ 自定义ALV控件的工具条按钮
测试程序:ZLITEST_018.源代码如下:
REPORT ZLITEST_018. INCLUDE
DATA:OK_CODE TYPE SY-UCOMM. DATA:SAVE_OK TYPE SY-UCOMM.
DATA:LT_SPFLI TYPE TABLE OF SPFLI. DATA:LS_SPFLI TYPE SPFLI.
DATA:CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER. DATA:ALV_GRID TYPE REF TO CL_GUI_ALV_GRID. DATA:CONTAINER_N TYPE SCRFNAME VALUE 'ALVDATA'. CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED.
DATA: EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
CLASS LCL_EVENT_RECEIVER DEFINITION. PUBLIC SECTION.
METHODS: HANDLE_TOOLBAR FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID IMPORTING E_OBJECT E_INTERACTIVE, * RAISE EVENT TOOLBAR ** EXPORTING
** E_OBJECT = ** E_INTERACTIVE = * .
HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
IMPORTING E_UCOMM. * RAISE EVENT USER_COMMAND ** EXPORTING
** E_UCOMM = * .
ENDCLASS.
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION. METHOD HANDLE_TOOLBAR.
DATA:LS_BUTTON TYPE STB_BUTTON. * CLEAR LS_BUTTON.
CLEAR LS_BUTTON-BUTN_TYPE. MOVE 3 TO LS_BUTTON-BUTN_TYPE.
APPEND LS_BUTTON TO E_OBJECT->MT_TOOLBAR. CLEAR LS_BUTTON.
MOVE 'ALVDATA' TO LS_BUTTON-FUNCTION. MOVE ICON_DISPLAY TO LS_BUTTON-ICON. MOVE 'SHOW DETIAL' TO LS_BUTTON-QUICKINFO. MOVE 'SHOW DETIAL' TO LS_BUTTON-TEXT. APPEND LS_BUTTON TO E_OBJECT->MT_TOOLBAR. ENDMETHOD.
METHOD HANDLE_USER_COMMAND. DATA:LT_ROWS TYPE LVC_T_ROW. DATA:LS_ROWS TYPE LVC_S_ROW. CASE E_UCOMM. WHEN 'ALVDATA'.
CALL METHOD ALV_GRID->GET_SELECTED_ROWS IMPORTING
ET_INDEX_ROWS = LT_ROWS * ET_ROW_NO = .
LOOP AT LT_ROWS INTO LS_ROWS.
READ TABLE LT_SPFLI INTO LS_SPFLI INDEX LS_ROWS-INDEX. MESSAGE I007(YMESS) WITH 'YOU SELECTED' LS_SPFLI-CARRID LS_SPFLI-CONNID LS_SPFLI-CITYFROM. ENDLOOP. ENDCASE. ENDMETHOD. ENDCLASS.
START-OF-SELECTION.
SELECT * INTO TABLE LT_SPFLI FROM SPFLI. CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STATUS1'. * SET TITLEBAR 'xxx'. CREATE OBJECT CONTAINER EXPORTING
* PARENT =
CONTAINER_NAME = CONTAINER_N * STYLE =
* LIFETIME = LIFETIME_DEFAULT * REPID = * DYNNR = * NO_AUTODEF_PROGID_DYNNR = * EXCEPTIONS
* CNTL_ERROR = 1 * CNTL_SYSTEM_ERROR = 2 * CREATE_ERROR = 3 * LIFETIME_ERROR = 4 * LIFETIME_DYNPRO_DYNPRO_LINK = 5 * OTHERS = 6 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
CREATE OBJECT ALV_GRID EXPORTING
* I_SHELLSTYLE = 0 * I_LIFETIME =
I_PARENT = CONTAINER * I_APPL_EVENTS = SPACE * I_PARENTDBG = * I_APPLOGPARENT = * I_GRAPHICSPARENT = * I_NAME = * I_FCAT_COMPLETE = SPACE * EXCEPTIONS
* ERROR_CNTL_CREATE = 1 * ERROR_CNTL_INIT = 2 * ERROR_CNTL_LINK = 3 * ERROR_DP_CREATE = 4 * OTHERS = 5 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING
* I_BUFFER_ACTIVE = * I_BYPASSING_BUFFER = * I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = 'SPFLI' * IS_VARIANT = * I_SAVE = * I_DEFAULT = 'X' * IS_LAYOUT = * IS_PRINT = * IT_SPECIAL_GROUPS = * IT_TOOLBAR_EXCLUDING = * IT_HYPERLINK = * IT_ALV_GRAPHICS = * IT_EXCEPT_QINFO = * IR_SALV_ADAPTER = CHANGING
IT_OUTTAB = LT_SPFLI * IT_FIELDCATALOG = * IT_SORT = * IT_FILTER = * 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.
CREATE OBJECT EVENT_RECEIVER.