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报告:
序号 | 功能模块及说明 |
1 | REUSE_ALV_LIST_DISPLAY 显示ALV列表 |
2 | REUSE_ALV_GRID_DISPLAY 显示ALV网格 |
3 | REUSE_ALV_COMMENTARY_WRITE 输出列表标头信息 |
4 | REUSE_ALV_VARIANT_F4 显示变量选择对话框 |
5 | REUSE_ALV_VARIANT_EXISTENCE 检查是否存在变体 |
6 | REUSE_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.