ABAP ALV with IDA (Integrated Data Access) on HANA

Jerry 也介绍过这个IDA,一句话写ALV
于是在saplearner上找了一个系列的帖子学习了一下

传统的ALV是在应用层实现的, 也就是从数据库中取到数据到内表,然后使用ALV使用这个内表来展示数据。使用IDA ALV,只用被选中的数据发送到UI来展示。
在这里插入图片描述
使用模糊搜索,可以看到有这么多IDA ALV相关类可以使用。
在这里插入图片描述
从类的命名基本上可以猜其用途。
下面示例中基本展示了IDA ALV的过程,其中345步如果注释掉的话就是一句话展示ALV了。

*&---------------------------------------------------------------------*
*& Report ZREP_IDA_001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zrep_ida_001.


TABLES : snwd_pd.

DATA: lo_additional_condition TYPE REF TO if_salv_ida_condition,
      lo_condition_factory    TYPE REF TO if_salv_ida_condition_factory.

*0... Declare PARAMETERS
PARAMETERS: p_prdctg TYPE snwd_product_category.

*1... Declare SELECT-OPIONS
SELECT-OPTIONS s_prdid FOR snwd_pd-product_id.

START-OF-SELECTION.
*2... Create object reference ALV with IDA
  DATA(lo_alv_display) = cl_salv_gui_table_ida=>create( iv_table_name    = 'SNWD_PD' ).

*3... Build range tables
  DATA(lo_range_collector) = NEW cl_salv_range_tab_collector( ).

  lo_range_collector->add_ranges_for_name( iv_name = 'PRODUCT_ID'
                                           it_ranges = s_prdid[] ).
  lo_range_collector->get_collected_ranges(
                      IMPORTING
                       et_named_ranges = DATA(lt_select_options) ).

*4... Build conditions
  lo_condition_factory = lo_alv_display->condition_factory( ).
  lo_additional_condition = lo_condition_factory->equals( name = 'CATEGORY'
                                                          value = p_prdctg ).

*5... Set select options and conditions
  lo_alv_display->set_select_options( it_ranges    = lt_select_options
                                      io_condition = lo_additional_condition ).

*6... Display ALV
  lo_alv_display->fullscreen( )->display( ).
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值