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.