2019.11.10【每天学点SAP小知识】Day3 - ABAP 7.40新语法 值转化和值赋值

1.语法为 CONV dTYPE|#(...)\

# 代表任意类型

"7.40之前表达式 
DATA text   TYPE c LENGTH 255.
DATA helper TYPE string.
DATA xstr   TYPE xstring.
helper = text.
xstr = cl_abap_codepage=>convert_to( source = helper ).

 

"7.40之后

DATA text TYPE c LENGTH 255.
text 'zhujx'.
DATA(xstr1= cl_abap_codepage=>convert_to( source = CONV stringtext ).
*OR
DATA(xstr2= cl_abap_codepage=>convert_to( source = CONV #text ).
"转化为16进制

 

2.新语法:操作值

"操作值
*   Variables:    VALUE dtype|#( )
*
*   Structures:  VALUE dtype|#( comp1 = a1 comp2 = a2 … )
*
*   Tables:         VALUE dtype|#( ( … ) ( … ) … ) …

TYPES:BEGIN OF ty_mara,
        matnr TYPE mara-matnr,
        matkl TYPE mara-matkl,
      END OF ty_mara.

TYPES:BEGIN OF ty_makt,
        maktx TYPE makt-maktx,
        mara1 TYPE ty_mara,
      END OF ty_makt.

"1 给变量赋值
DATA(lv_matnr) = 'AT001'.
"2 给结构赋值
DATA(ls_makt1) = VALUE ty_makt( maktx = 'TEST MATERIAL'
                           mara1-matnr = lv_matnr
                           mara1-matkl = 'Z001').
"3 给内表赋值
"(1)标准的内表
TYPES: ty_t_makt TYPE STANDARD TABLE OF ty_makt WITH EMPTY KEY.

DATA(lt_makt) = VALUE ty_t_makt(
( maktx = 'MATERIAL 1' mara1-matnr = 'AT001' mara1-matkl = 'Z001')
( maktx = 'MATERIAL 2' mara1-matnr = 'AT002' mara1-matkl = 'Z001')
( maktx = 'MATERIAL 3' mara1-matnr = 'AT003' mara1-matkl = 'Z001')

结果为:

 

 

-TAB 热爱技术 享受生活

 

 

 

posted @ 2019-11-10 16:44  TAB_Zhu  阅读(1029)  评论(0编辑  收藏  举报