AT NEW 用法和注意

用法:

AT New事件触发说明
如 AT New f.
f 是内表的一个字段,当f字段或者f字段左边的字段内容发生变化是该事件后面的语句都会执行。

 

注意:

使用at new, at first, at last, at end of的时候要注意:loop的时候不能加条件;at和endat之间不能使用loop into的working area。手动实现at new, at end of的时候,需要注意,容易出错,尤其是在at end of的时候。

 

使用 AT NEW f. 和 .AT END OF f 时需要注意:

1,f 必须是内表的第一个字段。

2,内表中f 之后的字段的值都会变成 *

 

 

更加详细用法:转自:http://hi.erp100.com/space.php?uid=93378&do=blog&id=13549832

由于提供的引用内容中未涉及ABAP中AT NEW语句在多字段情况下使用方法的相关信息,不过根据ABAP的专业知识,在多字段场景下使用AT NEW语句时,AT NEW语句用于在内部表循环中检测指定字段值的变化,当指定的多个字段组合的值发生变化时,触发特定逻辑。 以下是一个多字段场景下使用AT NEW语句的示例代码: ```abap REPORT z_multi_field_at_new. * 定义内部表结构 TYPES: BEGIN OF ty_data, field1 TYPE char10, field2 TYPE char10, field3 TYPE i, END OF ty_data. * 定义内部表 DATA: it_data TYPE STANDARD TABLE OF ty_data, wa_data TYPE ty_data. * 填充内部表数据 wa_data-field1 = 'A'. wa_data-field2 = 'X'. wa_data-field3 = 1. APPEND wa_data TO it_data. wa_data-field1 = 'A'. wa_data-field2 = 'X'. wa_data-field3 = 2. APPEND wa_data TO it_data. wa_data-field1 = 'A'. wa_data-field2 = 'Y'. wa_data-field3 = 3. APPEND wa_data TO it_data. wa_data-field1 = 'B'. wa_data-field2 = 'X'. wa_data-field3 = 4. APPEND wa_data TO it_data. * 对内部表进行排序 SORT it_data BY field1 field2. * 使用AT NEW语句处理多字段 LOOP AT it_data INTO wa_data GROUP BY ( field1 field2 ). AT NEW ( field1 field2 ). WRITE: / 'New combination:', wa_data-field1, wa_data-field2. ENDAT. WRITE: / wa_data-field1, wa_data-field2, wa_data-field3. ENDLOOP. ``` 在上述代码中: 1. 首先定义了一个内部表结构`ty_data`,包含三个字段`field1`、`field2``field3`。 2. 然后填充内部表`it_data`,包含了不同组合的数据。 3. 对内部表按照`field1``field2`进行排序,这是使用`AT NEW`语句的前提,因为它依赖于排序后的顺序来检测字段值的变化。 4. 在`LOOP AT`语句中使用`GROUP BY ( field1 field2 )`,表示按照`field1``field2`的组合进行分组。 5. `AT NEW ( field1 field2 )`用于检测`field1``field2`组合的值发生变化的情况,当变化时,会执行相应的逻辑,这里是输出新的组合信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值