AT END OF、AT*、AT NEW

AT END OF、AT*、AT NEW
添加链接描述
AT FIRST: 循环内表的第一行时触发执行的代码。只执行一次。

AT LAST: 循环内表的最后一行数据时执行代码。即在LOOP里把该执行的都执行完了才执行它。

AT NEW F1: 如果字段F及F的左则全部字段的数据,与上一行数据不一致,则执行代码。 先执行一行,开始判断,如果第二行和第一行值不一样,执行 AT END OF F1;

如果值一样,继续循环AT NEW F1.

AT END OF F1: 如果字段F及F的左则全部字段的数据,与下一行数据不一致时,则执行代码。

AT…End AT语句块内:循环每一行数据时都执行.

At new At F1: 如果字段F及F的左则全部字段的数据,与上一行数据不一致,则执行代码。

非At/End At语句块内:循环每一行数据时都执行

根据上述程序运行的结果可得出如下结论:

  1. At First 与At last为一对,分别在循环至整个内表的第一行与最后一行数据时运行。

  2. Af new f 与At end of f 为一对,分别在同一个行组内的第一行与最后一行执行。(行组:f字段及f字段前的数据行集合)

  3. at 与end at语句块内,工作区的内容,并不是当前行的内容。

    a. At First 与At last: 工作区的内容,字符型被 * 填充,数字类型被初始化值填充。

    b. Af new f 与At end of f: 工作区的内容, f及f前的字段被当前行填充,f后, 字符型被* 填充,数字类型被初始化值填充,与At First 与At last情况一致。

  4. sum 后工作区的数字类型字段的值将等于sum(f),但sum行集的范围存在差异,在文本字段保持不变。

    a. At First 与At last: 在整个内表sum

    b. Af new f 与At end of f: 在其行组内sum

  5. 非At/End At语句块内:

    a. 工作区的内容,被当前行填充

    b. sum的范围是整个内表,也At First 与At last一样。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值