【ABAP】 常见abap 7.5 新语法构造

目录

1、双重表赋值

2、不同结构表赋值

3、转18位物料

4、去空格

5、获取内表符合条件的行数

6、更改内表指定的某个值字段

7、判断内表包含

8、增删前导0

9、 是否判断

10、拼接字符强制各字符占有原位数

11、自适应赋值 部分字段

12、具有符合条件的数据丢进新表

13、数值的处理

14、取制定X-N列的值

15、 取内表指定行

1、双重表赋值

ls_data VALUE #head  VALUE #( ( mblnr  ls_header-mblnr

                                      mjahr  ls_header-mjahr )

                                  ) ).

ls_data-head[ linesls_data-head ]-item lt_item.

2、不同结构表赋值

    lt_item = CORRESPONDING #( DEEP is_input-data-item[] ).

3、转18位物料

  lv_matnr CONV wty_matnr18|{ ls_alv-tl_matnr ALPHA IN }| ).

  lv_matnr |{ lv_mantr1 WIDTH 18 ALIGN RIGHT PAD '0' }|.

4、去空格

replace( val = CONV rspos( lv_tabix ) sub = ` ` with = `` )

5、获取内表符合条件的行数

DATA(lv_lines2) = REDUCE iINIT FOR gs_tabkp IN gt_tab WHERE chk abap_true ) NEXT x )

6、更改内表指定的某个值字段

MODIFY _t_purchasereq FROM VALUE #banfn l_banfn  ) TRANSPORTING banfn WHERE banfn_o is_purchasereq-banfn_o.

7、判断内表包含

IF line_existsgt_display[ box 'X' icon icon_led_red ] ).

    MESSAGE '选中内容存在错误数据,不可导入TYPE 'S' DISPLAY LIKE 'E'.

ENDIF.

8、增删前导0

DATA(ls_in_matnr) = |{ ls_matnr ALPHA IN }|" '000000000015000042'.

DATA(gs_out_matnr) = |{ gs_matnr ALPHA OUT }|."'15000042'

9 是否判断

COND #( WHEN LS_OUT-MESSAGE =SPACE THEN LS_RETURN-MESSAGE ELSE |{ LS_OUT-MESSAGE }/{ LS_RETURN-MESSAGE }| ).

10、拼接字符强制各字符占有原位数

CONCATENATE lv_matnr abap_true abap_true INTO ls_bapiparexx-valuepart1 RESPECTING BLANKS.

11、自适应赋值 部分字段

lt_list = CORRESPONDING #( _t_alv_9003 MAPPING zscx = zscx wemng = wemng ).

12、具有符合条件的数据丢进新表

lt_temp = VALUE #( FOR wa IN _t_alv_9000 WHERE ( sel = abap_true ) ( wa ) ) .

13、数值的处理

lv_weeks roundval lv_days dec mode cl_abap_math=>round_up )    1.5 转后 2.0

LV_QTY |Quantity{ im_record-psmng SIGN LEFT }|.              转换前:原500-   转换后:  -500

LV_QTY |Quantity{ im_record-psmng SIGN RIGHT }|.             转换前:原500-   转换后:500-

LV_QTY |Quantity{ im_record-psmng DECIMALS  }|.            转换前:原500   转换后:500.00

LV_QTY |Quantity{ im_record-psmng CURRENCY 'USD'  }|.                  转换前:原500   转换后:500  

14、取制定X-N列的值

    DO lv_tabix TIMES"计算循环次数(M-5+1

      ASSIGN COMPONENT sy-index OF STRUCTURE <fs_tab> TO FIELD-SYMBOL(<val>). "从第5列开始

      IF sy-subrc AND <val> IS ASSIGNED.

        <fs_tab>-plnmg <fs_tab>-plnmg + <val>.

      ENDIF.

    ENDDO.

15 取内表指定行

DATA(ls_safe_copy) = gt_table[ ]

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ramos丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值