SAP ABAP OO ALV记录

本文介绍了如何使用CL_SALV_TABLE类以面向对象的方式替代传统的REUSE_ALV_GRID_DISPLAY函数来显示ALV列表。通过创建类的实例并调用Display方法,可以实现ALV列表的显示。示例代码展示了一个简单的数据获取和ALV处理过程。
摘要由CSDN通过智能技术生成

以前都是通过函数“REUSE_ALV_GRID_DISPLAY”来显示列表,这种方式是面向过程的,现在有另外一种面向对象化的方式来显示列表,函数REUSE_ALV_GRID_DISPLAY可以做到的它也能够做到。它主要是通过一个类CL_SALV_TABLE来实现的.

下面让我们来实现最简单的ALV列表。

1取得要显示的数据。

SELECT * INTO TABLE lt_tab FROM spfli up to 100 rows.

2.调用类CL_SALV_TABLE的静态方法Factory()创建类的实例。(Neu erzeugte Instanz für ALV-Tabellenobjekt holen)

TRY.

        cl_salv_table=>factory(

          IMPORTING

            r_salv_table = lr_table

          CHANGING

            t_table      = lt_tab

        ).

      CATCH cx_salv_msg.

    ENDTRY.

3.取得实例之后再调用方法Display()显示列表.

       lr_table->display( ).

下面是报表的所有源代码:

*变量定义

TYPES ty_spfli TYPE spfli OCCURS 0.

 

*----------------------------------------------------------------------*

*       CLASS lcl_alv DEFINITION

*----------------------------------------------------------------------*

*       ALV操作类(定义)

*----------------------------------------------------------------------*

CLASS lcl_alv DEFINITION.

  PUBLIC SECTION.

    METHODS: getdata         "取得要显示的数据

               RETURNING value(lt_tab) TYPE ty_spfli,

             alv_process     "ALV处理方法

               IMPORTING value(lt_tab) TYPE ty_spfli,

             main.           "主方法

  PRIVATE SECTION.

    DATA gr_table TYPE REF TO cl_salv_table.

ENDCLASS.                    "lcl_alv DEFINITION

 

*----------------------------------------------------------------------*

*       CLASS lcl_alv IMPLEMENTATION

*----------------------------------------------------------------------*

*       ALV操作类(实现)

*----------------------------------------------------------------------*

CLASS lcl_alv IMPLEMENTATION.

*取得要显示的数据

  METHOD getdata.

    SELECT * INTO TABLE lt_tab FROM spfli.

  ENDMETHOD.                    "getdata

 

*ALV处理方法

  METHOD alv_process.

    "创建实例

    TRY.

        cl_salv_table=>factory(

          IMPORTING

            r_salv_table = gr_table

          CHANGING

            t_table      = lt_tab

        ).

      CATCH cx_salv_msg.

    ENDTRY.

    "显示列表

    gr_table->display( ).

  ENDMETHOD.                    "alv_process

 

*主方法,整合数据

  METHOD main.

    DATA: lt_tab TYPE TABLE OF spfli.

 

    "取得要显示的数据

    lt_tab = me->getdata( ).

    "处理数据

    me->alv_process( lt_tab ).

  ENDMETHOD.                    "main

ENDCLASS.                    "lcl_alv IMPLEMENTATION

 

*报表执行

start-of-selection.

  data  lr_alv   type ref to lcl_alv.

  create object lr_alv.

  lr_alv->main( ).

关于ALV的最全文档可以参考SAP Help

http://help.sap.com/saphelp_nw70/helpdata/EN/5e/88d440e14f8431e10000000a1550b0/content.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值