總體
FORM CREAT_ALV .
PERFORM INIT_ALV USING GS_DOCKING
GS_ALV .
PERFORM BUILD_FIFLDCAT .
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EXCLUDE.
PERFORM SETEDIT_CELL .
PERFORM BUILD_HANDLER USING GS_ALV.
PERFORM BUILD_ALV TABLES GT_FIELDCAT[]
GT_STATUSJL[]
USING GS_LAYOUT
GT_EXCLUDE
CHANGING GS_ALV .
ENDFORM.
一、初始化ALV
FORM INIT_ALV USING PS_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER
PS_ALV TYPE REF TO CL_GUI_ALV_GRID.
...
ENDFORM.
二、構建ALV
FORM BUILD_ALV TABLES PPT_FIELDCAT LIKE GT_FIELDCAT
PT_MAIN TYPE STANDARD TABLE
USING PS_LAYOUT TYPE LVC_S_LAYO
PT_EXCLUDE LIKE GT_EXCLUDE
CHANGING PS_ALV TYPE REF TO CL_GUI_ALV_GRID .
DATA PT_FIELDCAT TYPE LVC_T_FCAT .
MOVE-CORRESPONDING PPT_FIELDCAT[] TO PT_FIELDCAT[].
CALL METHOD PS_ALV->SET_READY_FOR_INPUT
EXPORTING
I_READY_FOR_INPUT = 1.
FIELD-SYMBOLS <F_TAB> TYPE ANY TABLE .
IF <F_TAB> IS ASSIGNED.
UNASSIGN <F_TAB>.
ASSIGN PT_MAIN[] TO <F_TAB> .
ELSE.
ASSIGN PT_MAIN[] TO <F_TAB> .
ENDIF.
CALL METHOD PS_ALV->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = GC_X
IS_LAYOUT = PS_LAYOUT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING = PT_EXCLUDE
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = <F_TAB>
IT_FIELDCATALOG = PT_FIELDCAT
* IT_SORT =
* IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.