定义内表与工作区最方便的方法
定义内表与工作区最方便的方法
*定义 名为 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,不执行下面的语句。
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号