SAP ABAP SALV DEMO

这几天听了翱翔云天的几个分享视频,发现做了这么多年的ABAP,更多的是实现功能,但是在优化和原理层面,还是相当欠缺,虽然在甲方是属于6边形战士的存在(ABAP,BASIS,BW,PO,PP,SD,MM,QM,FICO,HR,只要是代码的,都有关系,业务也就做着做着熟悉起来了,但是大多都是“知其然”,但是其所以然,好像有深入,好像又不够深入)

借此视频里的几个问题,做下总结和深入 

BT005 - ABAP ALV 原理解读(面试必备)_哔哩哔哩_bilibili

1、ALV的有几种方式 ( 我艹,好像孔乙己 “回”字几种写法 )

a) 调用 BAPI ”REUSE_ALV_GRID_DISPLAY_LVC“ (面向过程  已经过时的技术,但是实用 )

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = i_callback_program
      i_grid_title             = title
      i_grid_settings          = i_grid_settings
      i_callback_pf_status_set = 'SET_PF_STATUS'
      is_layout_lvc            = is_layout_lvc
      it_fieldcat_lvc          = it_fieldcat
      it_events                = it_events
      i_callback_user_command  = 'USER_COMMAND'
    TABLES
      t_outtab                 = itab[]
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

b)调用SALV  (后续新开发用 )

*&---------------------------------------------------------------------*
*& Report ZSALV_TEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSALV_TEST.


DATA:gt_itab  TYPE TABLE OF ZJHDTTL,
      gr_table TYPE REF TO cl_salv_table.

data: gr_functions type ref to cl_salv_functions_list.

SELECT * FROM ZJHDTTL INTO CORRESPONDING FIELDS OF TABLE gt_itab.


*全屏模式
cl_salv_table=>factory(
IMPORTING
  r_salv_table = gr_table
CHANGING
  t_table = gt_itab
  ).

gr_functions = gr_table->get_functions( ).
  gr_functions->set_all( ABAP_TRUE ).
CALL METHOD gr_table->display.

SAP标准的demo案例 SE80  SALV_OM_OBJECTS SAP ABAP SALV DEMO_abap salv set_key_SAP小菜鸡的博客-CSDN博客

c) OO ALV (还没有用过,没有必须的场景 )

========================================================================

Function ALV:function一般有grid和list两种,grid以网格显示,list以表格显示,两者的工具栏有一点不同。

OO ALV:使用面向对象的方法创建的ALV,需要创建一个容器,然后将cl_gui_alv_grid分配给这个容器,它存在很多的事件,这些实现需要注册这些事件处理方法,但是ALV的布局参数不用依靠Object来设置,和function一样,还是依靠函数。

OO SALV:也是面向对象创建ALV的一种方式,但不提供编辑的功能,(当你需要编辑的时候,可以通过SALV适配器调用CL_GUI_ALV_GRID修改为编辑模式),一般情况下SALV是不需要创建容器的,但是ALV的布局也是需要通过Object老控制。

总结:需求非常简单,仅仅是作为报表使用的话可以使用function alv,需要触发动作但是ALV布局的设置不高的时候,而且不需要编辑的时候可以使用SALV,其他情况下尽量使用ALV,个人更偏爱使用OO ALV。(注:当download excel有特殊需求的时候,可以优先考虑SALV,在往期文章download excel中有介绍)。

ALV (一)、funtion ALV,OO ALV,SALV_ooalv和alv的区别-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gavin_gxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值