ABAP--新语法--New Keyword in ABAP--第一天--DATA FIELD-SYMBOL NEW[转]
原创 尤其是十月的风
DATA 新语法允许在语句内部动态声明变量,该作用域与普通定义的变量范围一致
1 *&--------------------------------------------------------------------* 2 * 通过赋值的方式来动态声明变量,系统会根据所赋的值来确定变量类型 3 * 其中,字符类型会参照数据长度来指定 4 *&--------------------------------------------------------------------* 5 DATA(LV_CHAR1) = 'THIS IS A SENTENCE'. 6 DATA(LV_INT1) = 10. 7 8 9 *&--------------------------------------------------------------------* 10 * 动态声明内表/结构,字段类型与 SELECT LIST 对应的字段一致, 11 * 在包含常量字段时,需要赋别名,以指定内表/结构中的字段名 12 *&--------------------------------------------------------------------* 13 SELECT 14 MATNR, 15 MAKTX 16 FROM MAKT 17 INTO TABLE @DATA(LT_MAKT1). 18 19 SELECT SINGLE 20 MATNR, 21 'CONSTANT' AS FIELD 22 FROM MAKT 23 INTO @DATA(LW_MAKT1). 24 25 26 *&--------------------------------------------------------------------* 27 * 在 LOOP 内表时动态声明结构,可以避免使用带表头的内表 28 *&--------------------------------------------------------------------* 29 LOOP AT LT_MAKT1 INTO DATA(LW_MAKT2). 30 ENDLOOP. 31 32 33 *&--------------------------------------------------------------------* 34 * 在常见的操作语句中动态声明变量,多数情况下可以在 INTO 语 35 * 句后使用,如下为连接/拆分字符串示例 36 *&--------------------------------------------------------------------* 37 CONCATENATE 'TEXT' '-' '01' INTO DATA(LV_CONCAT1). 38 SPLIT LV_CONCAT1 AT '-' INTO DATA(LV_PART1) DATA(LV_PART2). 39 SPLIT LV_CONCAT1 AT '-' INTO TABLE DATA(LT_CONCAT1). 40
FIELD-SYMBOL 与DATA关键字类似,FIELD-SYMBOL允许在语句内部动态声明字段符号
1 *&--------------------------------------------------------------------* 2 * 在 LOOP 时动态声明字段符号,需要区分的是, 3 * 普通定义使用的是 FIELD-SYMBOLS 4 *&--------------------------------------------------------------------* 5 LOOP AT LT_MAKT1 ASSIGNING FIELD-SYMBOL(<FS_MAKT1>). 6 ENDLOOP. 7 8 *&--------------------------------------------------------------------* 9 * 在 ASSIGN 时动态声明字段符号并分配 10 *&--------------------------------------------------------------------* 11 ASSIGN (LW_MAKT2) TO FIELD-SYMBOL(<FS_FIELD>).
NEW 使用 NEW 创建(实例化)引用对象,用来代替CREATE OBJECT 1… NEW dtype( value ) … 创建一个类型为dtype的匿名数据对象,然后传值给创建的对象(左操作符)。 2… NEW class( p1 = a 1 p2 = a2 … ) … 创建一个名为class类的实例,并且传参到实例的构造函数。 3… NEW #( … ) … 根据操作数类型创建一个匿名数据对象或者一个类的实例。 如 a = new #( … ), new #( … )这里创建的匿名类是参考a的类型来的,即和a的类型一致。 ———————————————— 版权声明:本文为CSDN博主「尤其是十月的风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_34060435/article/details/116995586
1 *&--------------------------------------------------------------------* 2 * 使用 NEW 关键字时,如果等号左侧的对象还没有确定类型, 3 * 则必须在 NEW 关键字后指定类型,如 GO_GRID_NEW; 4 * 如果是已经预定义的对象,则可以用 # 代替,如 GO_GRID 5 *&--------------------------------------------------------------------* 6 DATA(GO_GRID_NEW) = NEW CL_GUI_ALV_GRID( I_PARENT = GO_CON ). 7 8 DATA: GO_GRID TYPE REF TO CL_GUI_ALV_GRID. 9 GO_GRID = NEW #( I_PARENT = GO_CON ).
post SAP-Garson
原文链接:https://www.cnblogs.com/ultraluck/p/16102667.html文章来自于网络,如果侵犯了您的权益,请联系站长删除!