OO实现ALV TABLE 二:ALV显示的三种形式

一般的ALV有三种显示形式,分别为

一、普通的List

 

二、全屏的Grid

 

 

三、在自定义屏幕的显示的Grid

 

跟以往实现这三种ALV显示方式相比,以往的三种显示方式分别是调用不同的FunctionClass,实现方式复杂。现在这三种显示方式可以通过一个类(CL_SALV_TABLE)来实现,而且通过这个类和它的子类可以更加容易的实现ALV的功能,比如:排序,总计,过滤,页眉页脚,单击双击事件等。

 

下面让我们一步一步地来实现这三种显示形式。

 

1.首先我们先创建选择屏幕,屏幕有三个选项,三个选项分别为三种显示方式。

SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.

  PARAMETERS: p_full RADIOBUTTON GROUP rg,

              p_list RADIOBUTTON GROUP rg,

              p_grid RADIOBUTTON GROUP rg.

SELECTION-SCREEN END OF BLOCK blk.

 

2取得要显示的数据。

SELECT * INTO TABLE lt_tab FROM spfli

 

3.判断选择屏幕的选项创建不同的实例。

   CASE 'X'.

      WHEN p_full.             

        me->alv_full( lt_tab ).

      WHEN p_list.

        me->alv_list( lt_tab ).

      WHEN p_grid.

        me->alv_grid( lt_tab ).

ENDCASE.

 

4.当用户选择第一个选项,列表输出为全屏的网格列表,执行方法alv_full( )

METHOD alv_full.

    "创建实例

    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_full

 

 

5.当用户选择第二个选项,列表输出为普通的列表,执行方法alv_list( ).alv_list方法跟alv_full方法不同的是在创建实例的时候多了一个选项list_display = ‘X’.

  METHOD alv_list.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值