ABAP 新特性 - CORRESPONDING

一、工作区Work Area

​DATA: gt_out    TYPE STANDARD TABLE OF zssd005_out_1,
      gs_out    TYPE zssd005_out_1.

**********************************************
*OLD SYNTAX:先定义工作区ls_export
DATA: ls_export TYPE zssd005_out_2.

  LOOP AT gt_out INTO gs_out.
    MOVE-CORRESPONDING gs_out TO ls_export.
  ENDLOOP.

**********************************************
*NEW SYNTAX:不需要预先定义工作区ls_export
  LOOP AT gt_out INTO gs_out.
    DATA(ls_export) = CORRESPONDING zssd005_out_2( gs_out ).
  ENDLOOP.​

工作区(mapping&except)

REPORT ztest.

DATA:BEGIN OF ls_data1,
       fd1 TYPE char10,
       fd2 TYPE char10,
       fd3 TYPE char10,
     END OF ls_data1.

DATA:BEGIN OF ls_data2,
       fd1 TYPE char10,
       fd2 TYPE char10,
       fd4 TYPE char10,
     END OF ls_data2.

ls_data1 = VALUE #( fd1 = |First|
                    fd2 = |Second|
                    fd3 = |Third| ).

ls_data2 = CORRESPONDING #( ls_data1 ).
WRITE: / |****************************************|.
WRITE: / |*CORRESPONDING NO MAPPING AND NO EXCEPT*|.
WRITE: / |FD1:|,ls_data2-fd1,|FD2:|,ls_data2-fd2,|FD4:|,ls_data2-fd4.
SKIP.
ls_data2 = CORRESPONDING #( ls_data1 MAPPING fd4 = fd3 ).
WRITE: / |****************************************|.
WRITE: / |*CORRESPONDING MAPPING AND NO EXCEPT*|.
WRITE: / |FD1:|,ls_data2-fd1,|FD2:|,ls_data2-fd2,|FD4:|,ls_data2-fd4.
SKIP.
ls_data2 = CORRESPONDING #( ls_data1 EXCEPT fd2 ).
WRITE: / |****************************************|.
WRITE: / |*CORRESPONDING NO MAPPING AND EXCEPT*|.
WRITE: / |FD1:|,ls_data2-fd1,|FD2:|,ls_data2-fd2,|FD4:|,ls_data2-fd4.
SKIP.
ls_data2 = CORRESPONDING #( ls_data1 MAPPING fd4 = fd3 EXCEPT fd2 ).
WRITE: / |****************************************|.
WRITE: / |*CORRESPONDING MAPPING AND EXCEPT*|.
WRITE: / |FD1:|,ls_data2-fd1,|FD2:|,ls_data2-fd2,|FD4:|,ls_data2-fd4.

 

二、内表 Internal table

REPORT ZTEST.

DATA: LT_T001 TYPE STANDARD TABLE OF ACDOCA.

SELECT
  BUKRS,
  BELNR,
  GJAHR,
  BUZEI
  FROM BSEG
  UP TO 3 ROWS
  INTO TABLE @DATA(LT_BSEG).

"CORRESPONDING
LT_T001 = CORRESPONDING #( LT_BSEG MAPPING RBUKRS = BUKRS
                                           DOCLN  = BUZEI ).
"Display data
CL_SALV_TABLE=>FACTORY(
      IMPORTING
        R_SALV_TABLE = DATA(LCL_ALV)
      CHANGING
        T_TABLE      = LT_T001 ).

LCL_ALV->DISPLAY( ).

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王小磊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值