实现一个最基本的SALV

【博主SAP/ABAP交流群53144545

ALV是ABAP报表开发里最常用的屏幕表格输出技术之一,目前有多种方法实现。

比如REUSE_ALV_GRID_DISPLAY_LVC和OO的ALV,这里再介绍一种SALV,SALV也是面向对象的,下面一个REPORT的例子里实现一个最基本的SALV。


*定义类型和内表

TYPES:
  BEGIN OF ty_tab,
    vbeln TYPE vbeln,
    posnr TYPE posnr,
    werks TYPE werks_d,
    matnr TYPE matnr,
  END  OF ty_tab.

DATA it_tab TYPE TABLE OF ty_tab.


*选择屏幕

SELECT-OPTIONSs_vbeln FOR vbap-vbeln.


*类定义

CLASS cl_zymoorsalv DEFINITION.
     PUBLIC SECTION.
           METHODS:
                 get_data,
                 generate_salv.
ENDCLASS.                    "CL_ZYMOORSALV DEFINITION


* 类实现

CLASS cl_zymoorsalv IMPLEMENTATION.
  METHOD get_data.
    SELECT vbeln posnr werks matnr
      FROM vbap
      INTO CORRESPONDING FIELDS OF TABLE it_tab
     WHERE vbeln IN s_vbeln.
  ENDMETHOD."GET_DATA

  METHOD generate_salv.
    DATAsalv TYPE REF TO cl_salv_table.
        cl_salv_table=>factory(
          IMPORTING
            r_salv_table salv
          CHANGING
            t_table      it_tab ).

    salv->display).
  ENDMETHOD"GENERATE_SALV
ENDCLASS.                    "CL_ZYMOORSALV IMPLEMENTATION


START-OF-SELECTION.
  DATAobj_zymoorsalv TYPE REF TO cl_zymoorsalv.
  CREATE OBJECT obj_zymoorsalv.

  obj_zymoorsalv->get_data).


  obj_zymoorsalv->generate_salv).


输出结果:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值