ALV 容器备忘录
DATA :
*ALV 字段
* IT_SORT TYPE LVC_T_SORT,
I_FCAT1 TYPE LVC_T_FCAT,
I_FCAT2 TYPE LVC_T_FCAT,
* 容器名称
GV_CNAME1 TYPE SCRFNAME VALUE 'CONTAINER1',
GV_CNAME2 TYPE SCRFNAME VALUE 'CONTAINER2',
* 容器对象
GV_CONTAINER1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
GV_CONTAINER2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
* ALV对象
GV_ALV1 TYPE REF TO CL_GUI_ALV_GRID,
GV_ALV2 TYPE REF TO CL_GUI_ALV_GRID,
* ALV布局
GV_LAYOUT1 TYPE LVC_S_LAYO,
GV_LAYOUT2 TYPE LVC_S_LAYO.
*&---------------------------------------------------------------------*
*& Module INITIAL_CONTAINER OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE INITIAL_CONTAINER OUTPUT.
IF GV_ALV1 IS INITIAL.
IF NOT GV_CONTAINER1 IS INITIAL.
CALL METHOD GV_CONTAINER1->FREE
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
* IF SY-SUBRC <> 0.
* ENDIF.
ENDIF.
CLEAR GV_CONTAINER1.
CLEAR GV_ALV1.
CREATE OBJECT GV_CONTAINER1
EXPORTING
CONTAINER_NAME = GV_CNAME1
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
*创建ALV容器
CREATE OBJECT GV_ALV1
EXPORTING
I_PARENT = GV_CONTAINER1
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4.
*ALV的设置
PERFORM FRM_ALV_LIST1.
*AVL的显示
CALL METHOD GV_ALV1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = GV_LAYOUT1
I_SAVE = 'A'
CHANGING
IT_OUTTAB = GT_TCITEM[]
IT_FIELDCATALOG = I_FCAT1
* IT_SORT = IT_SORT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
ELSE.
*刷新
CALL METHOD GV_ALV1->REFRESH_TABLE_DISPLAY.
ENDIF.
IF GV_ALV2 IS INITIAL.
IF NOT GV_CONTAINER2 IS INITIAL.
CALL METHOD GV_CONTAINER2->FREE
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
* IF SY-SUBRC <> 0.
* ENDIF.
ENDIF.
CLEAR GV_CONTAINER2.
CLEAR GV_ALV2.
CREATE OBJECT GV_CONTAINER2
EXPORTING
CONTAINER_NAME = GV_CNAME2
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
*创建ALV容器
CREATE OBJECT GV_ALV2
EXPORTING
I_PARENT = GV_CONTAINER2
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4.
*ALV的设置
PERFORM FRM_ALV_LIST2.
*AVL的显示
CALL METHOD GV_ALV2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = GV_LAYOUT2
I_SAVE = 'A'
CHANGING
IT_OUTTAB = GT_FJDJ[]
IT_FIELDCATALOG = I_FCAT2
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
* --Creating an instance for the event handler
* CREATE OBJECT GR_EVENT_HANDLER .
* --Registering handler methods to handle ALV Grid events
* SET HANDLER GR_EVENT_HANDLER->HANDLE_DOUBLE_CLICK FOR GV_ALV2.
ELSE.
*刷新
CALL METHOD GV_ALV2->REFRESH_TABLE_DISPLAY.
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form FRM_FREE_CONTAINER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_FREE_CONTAINER .
* Free the object of container
IF NOT GV_CONTAINER1 IS INITIAL
OR NOT GV_CONTAINER2 IS INITIAL.
CALL METHOD GV_CONTAINER1->FREE
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
CALL METHOD GV_CONTAINER2->FREE
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
CLEAR:
GV_CONTAINER1,
GV_CONTAINER2,
GV_ALV1,
GV_ALV2.
ENDIF.
ENDFORM. " FRM_FREE_CONTAINER
总结
- 上一篇: 8、Power Map—实例:制作独立播
- 下一篇: bhjqahjshjhjgqwsoixc