定义内表与工作区最方便的方法

定义内表与工作区最方便的方法 

*定义 名为 ITAB 的内表, 内表结构 参照表 TABLE 。 

DATA: ITAB TYPE TABLE OF TABLE.  

*定义 名为 WA 的工作区, 其 行结构与 内表 ITAB 相同 。 

DATA: WA LIKE LINE OF ITAB. 

---------------------------------------------------------------- 

1.使用occurs 0,定义的不再是对象,而是internal table  

2.使用with header line后缀,定义为internal table的同时也定义了一个同名对象,因此可以用以下语句:  

  LOOP AT STH.  

      WRITE: / STH.  

      ENDLOOP. 

3.TYPE后面接结构,LIKE后面接对象  

4.OBLIGATORY为必输字段  

5.DATA SEPARATER . = DATA SEPARATER TYPE C. 

6.关于内表的结构描述,它的当前记录数据是放在header line中的,Occurs 是分配数据缓冲区,大小不重要,系统会自动分配。但定义内表不用occurs就需要用with header line,occurs语句记得是为了向下兼容。 

7.occurs 指明的數量是有一點學問的.  

      1).當你知道可能每次用Select命中或交換的紀錄數xxx時,可指明 occurs xxx.  

      2).如用occurs 0 聲明時, buffers 由系統自動分配.  

8.SELECT 在into时记得一般都要加上table,不然是into一个工作区,即wa,而工作区要写入内表,则需要再append,所以直接定放内表即可,内表和工作区的区别就在于工作区就相当于表头,是有一行,data定义begin of itab时不加occurs就是工作区,加了就是内表,occurs *,后面表示系统初始分配给此内表多少行,每次满时再多分配多少行,我们平常为了节约内存,一般直接用0,with header line是为了定义含表头的内表,平常occurs就直接带表头,而with header line一般是在itab1 like itab occurs 0 with header line时用,这是参照一个内表定义另一内表,如果要带表头,一定要加with header line。  

你这样问不是办法,最好不懂时直接接F1,查到SAP的帮助即可. check是检查后面的逻缉是否满足,不满足则在上例是跳出form,不执行下面的语句。 

posted @ 2011-10-09 15:37  VerySky  阅读(504)  评论(0)    收藏  举报