赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 11663|回复: 59

[P2J22]ABAP内部表处理之内部命令

  [复制链接]
发表于 2010-11-10 15:23:00 | 显示全部楼层 |阅读模式
内部表的内部命令是ABAP和其他语言最大的区别,这几个命令是ABAP特有的,也正是有了这几个命令,它才能处理成千上万复杂的程序报表。如果你把这几个命令学好的话,可以说ABAP你会了八成了。下面我们来看看这四个命令。AT FIRST, AT NEW, AT END OF, AT LAST.下面我们来举例说明。
那么当我们进行如下程序代码时会进行如下的操作。
LOOP AT IT_SAMP INTO WA_SAMP.
   AT FIRST.
   WRITE:'When the loop is the first, come here!'.
   ENDAT.

  AT NEW MATNR.
   WRITE:'When the MATNR is the first, come here!'.
  ENDAT.

  AT END OF MATNR.
   WRITE:'When the MATNR will be changed, come here!'.
   SUM.
   WRITE:NUM.
  ENDAT.

  AT LAST.
   WRITE:'When the loop is last, come here!'.
  ENDAT.
ENDLOOP.

例如内部表IT_SAMP里保存了如下的数据。


我们来解释一下:
1,AT FIRST和ENDAT:这之间的语句是在LOOP循环第一次的执行。一个LOOP语句里只会执行一次。上图中,LOOP第一行的时候执行此语句。
2,AT NEW和ENDAT:这个会根据NEW后面的字段,结合此字段前的所有字段拼接起来,只要拼接的字段改变了话,就会执行这之中的语句。比如AT NEW MATNR。在MATNR前的还有DDATE这个字段,那么把这两个字段拼起来,第一句就是20080407物料A,所以改变的地方有1,3,5,8,9。故在本例中'When the MATNR is the first, come here!'会被输出五次,而且是在第1,3,5,8,9次LOOP循环的时候。
3,AT END OF和ENDAT:这个会根据OF后面的字段,结合此字段前的所有字段拼接起来,只要拼接的字段将要改变的时候,就会执行这中间的语句。比如AT END OF MATNR。在MATNR前的还有DDATE这个字段,那么把这两个字段拼起来,第一句就是20080407物料A,所以在将要改变的地方就是2,4,7,8,9.故在本例'When the MATNR will be changed, come here!'会被输出五次,而且是在第2,4,7,8,9次LOOP循环的时候。
4,AT LAST和ENDAT:这之间的语句是在LOOP循环的最后一次执行。也就是要结束的时候。本例中就是在第九次循环后面。
在上面我们还用到了SUM这个语句,这个意思是说把每组的数量进行合计。比如本例中。第一次SUM是在第二次LOOP执行的时候,这时如果我们输入出的NUM就是300,即200+100.

本文通过举例说明了这四个命令的用法,不过要真正明白他的意思,还得到环境上实习一下。到环境上我们ABAP培训一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

最近访客

  • tbb1177
    2024-01-16
  • uno
    2022-04-25
  • austin
    2022-03-23
  • chenc880
    2021-07-03
  • wangxiao
    2021-01-18
  • admin
    2020-10-25




上一篇:[P2J21]ABAP内部表处理之数据变更
下一篇:[P2J23]ABAP内部表处理之其他
本楼点评(0) 收起
发表于 2011-3-24 13:30:33 | 显示全部楼层
学习      学习
本楼点评(0) 收起
发表于 2011-4-7 22:39:00 | 显示全部楼层
凡走过必留下痕迹
本楼点评(0) 收起
发表于 2011-4-29 14:16:57 | 显示全部楼层
谢谢楼主分享。对内部表的处理是如此的重要啊!
本楼点评(0) 收起
发表于 2011-6-3 14:33:44 | 显示全部楼层
凡走过必留下痕迹
本楼点评(0) 收起
发表于 2011-6-5 16:10:49 | 显示全部楼层
good good study
本楼点评(0) 收起
发表于 2011-6-13 16:34:14 | 显示全部楼层
好好学习一下
本楼点评(0) 收起
发表于 2011-7-9 19:40:24 | 显示全部楼层
呵呵abaper吗
本楼点评(0) 收起
发表于 2011-8-3 10:44:39 | 显示全部楼层
看隐藏内容
本楼点评(0) 收起
发表于 2011-8-4 15:24:50 | 显示全部楼层
学习一下SAP
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-30 10:41 , Processed in 1.100320 second(s), 66 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表