REPORT ZYC_DEMO02.
*声明屏幕选择字段
PARAMETERS p_carrid TYPE sflight-carrid.
*声明model
CLASS lcl_model DEFINITION.
PUBLIC SECTION.
METHODS:
read_db IMPORTING iv_carrid TYPE sflight-carrid,
*获取输出结果
get_output EXPORTING et_output TYPE STANDARD TABLE.
PRIVATE SECTION.
DATA:
mt_output TYPE TABLE OF sflight WITH DEFAULT KEY.
ENDCLASS.
*实现model
CLASS lcl_model IMPLEMENTATION.
*读取数据
METHOD read_db.
SELECT * FROM sflight INTO TABLE mt_output WHERE carrid = iv_carrid.
ENDMETHOD.
*获取输出结果
METHOD get_output.
et_output = mt_output.
ENDMETHOD.
ENDCLASS.
*声明controller
CLASS lcl_controller DEFINITION.
PUBLIC SECTION.
METHODS:
*实例化实体对象
constructor,
*执行ALV
run.
PRIVATE SECTION.
DATA:
mo_model TYPE REF TO lcl_model.
ENDCLASS.
*实现controller
CLASS lcl_controller IMPLEMENTATION.
*实例化实体对象
METHOD constructor.
CREATE OBJECT mo_model.
ENDMETHOD.
*执行ALV
METHOD run.
DATA:lt_output TYPE TABLE OF sflight.
mo_model->read_db( p_carrid ).
mo_model->get_output( IMPORTING et_output = lt_output ).
*调用ALV函数
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_structure_name = 'sflight'
TABLES
t_outtab = lt_output
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
*执行
NEW lcl_controller( )->run( ).
ABAP alv oo
最新推荐文章于 2024-07-12 16:27:40 发布