SAP ABAP中的类alv和函数alv之间的区别?

  • 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.