Class alv和Function alv在功能方面有所不同。以下是区别:
与功能ALV相比,ALV是安全的。
使用class alv时,它可以提高性能。
通过使用功能alv,可以使用功能模块创建屏幕,但是需要调用单独的程序来生成屏幕。
alv类提供了面向对象的功能,因此很容易重用。
您可以异步执行功能模块,也可以被其他系统远程调用。
下面是ALV类的示例:DATA: lcl_alv TYPE REF TO cl_gui_alv_grid,
t_gly TYPE STANDARD TABLE OF Travels .
SELECT * FROM Travels INTO TABLE t_gly.
CREATE OBJECT lcl_alv
EXPORTING I_PARENT = cl_gui_container=>screen0.
CALL METHOD lcl_alv->set_table_for_first_display
EXPORTING
I_STRUCTURE_NAME = 'Travels'
CHANGING
IT_OUTTAB = t_gly.
CALL SCREEN 100.
功能模块很少创建ALV报告:序号功能模块及说明
1REUSE_ALV_LIST_DISPLAY
显示ALV列表
2REUSE_ALV_GRID_DISPLAY
显示ALV网格
3REUSE_ALV_COMMENTARY_WRITE
输出列表标头信息
4REUSE_ALV_VARIANT_F4
显示变量选择对话框
5REUSE_ALV_VARIANT_EXISTENCE
检查是否存在变体
6REUSE_ALV_FIELDCATALOG_MERGE从字典结构或内部表创建字段目录
下面显示了使用功能模块显示ALV网格的方法:DATA: it_spfli TYPE TABLE OF spfli.
SELECT * FROM spfli INTO TABLE it_spfli.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = 'SPFLI'
TABLES
t_outtab = it_spfli.