ALV的實現方法有三種:一種是用類CL_SALV_TABLE,一種是用類CL_GUI_GRID_DISPLAY,還有另外一種,跟前面兩種不同,是用Function來實現的,它們是REUSE_ALV_LIST_DISPLAY和REUSE_ALV_GRID_DISPLAY。現在用得最多的也是用Functoin來實現ALV,其實這兩個Function的底層也是基於類CL_GUI_GRID_DISPLAY的。
先看一下兩個Functoin實現的ALV的效果有什麼區別?
用REUSE_ALV_GRID_DISPLAY實現的ALV效果
用REUSE_ALV_LIST_DISPLAY實現的ALV效果
其實實現ALV相當簡單,主要就是調用那兩個Function。下面我們來講一下它的實現步驟:
一、聲明要顯示的內容的內表,並取得數據
DATA: it_spfli TYPE TABLE OF spfli.
SELECT * FROM spfli INTO TABLE it_spfli.
二、 調用ALV的Function
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_structure_name = 'SPFLI'
TABLES
t_outtab = it_spfli.
注:這裏調用的Function是REUSE_ALV_LIST_DISPLAY,如果你想實現第一種效果,你應該調
用REUSE_ALV_GRID_DISPLAY,這兩種顯示效果不一樣,操作方式基本上一樣。
這個例子調用Function時候用到了兩個參數:一個是i_structure_name,一個是
t_outtab。i_structure_name是輸出列表的結構,t_outtab是輸出列表的內容。
下面是所有源代碼
DATA: it_spfli TYPE TABLE OF spfli.
SELECT * FROM spfli INTO TABLE it_spfli.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_structure_name = 'SPFLI'
TABLES
t_outtab = it_spfli.