3、OO SALV
利用函数和GRID的功能发布的SALV包程序(SALV也称为New ALV)。通过类cl_salv_table,实现ALV的输出。
示例:
示例: TABLES:sflight. TYPES:type_flight TYPE sflight OCCURS 0. CLASS lcl_alv DEFINITION. PUBLIC SECTION. METHODS:getdata RETURNING VALUE(lt_table) TYPE type_flight, show_alv IMPORTING VALUE(lt_table) TYPE type_flight. PRIVATE SECTION. DATA:gr_table TYPE REF TO cl_salv_table. "cl_salv_table对象 ENDCLASS. CLASS lcl_alv IMPLEMENTATION. "获取数据 METHOD:getdata. SELECT * INTO TABLE lt_table FROM sflight. ENDMETHOD. "显示alv METHOD:show_alv. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = lt_table ). CATCH cx_salv_msg. ENDTRY. gr_table->display( ). ENDMETHOD. ENDCLASS. START-OF-SELECTION. "数据定义 DATA:lt_sflight LIKE sflight OCCURS 0. "创建alv对象 DATA:lcl_alv1 TYPE REF TO lcl_alv. CREATE OBJECT lcl_alv1. "获取数据 lt_sflight = lcl_alv1->getdata( ). "显示alv lcl_alv1->show_alv( lt_sflight ).