加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ABAP 工作区、内表、结构的认识

(2013-07-25 17:10:39)
结构
se11创建或者使用DATA声明,类似于java中的类
结构只是做作为数据类型的参照.不进行数据操作.

DATA : begin of stru_ztaly,

 

         Name(10) type c,

 

         ……

 

        End of stru_ztaly.“结构


TYPES: BEGIN OF struc_material,
                       mblnr   LIKE mseg-mblnr,     " 定义物料凭证号, 使用SAP已定好的类型
                      name   TYPE char(20),        " 通过TYPE 定义字符类型的,长度为20
              END OF struc_material.



工作区

 

是程序中处理的一个中间结果 只存放一条数据。

而定义工作区的时候可能会引用到结构

 

Data begin of stru_ztaly,

         Name(10) type c,

     End of stru_ztaly.“结构

DATA:  like  stru_ztaly.  "工作区



内表

内表是一种二维的数据变量

使用DATA参考结构定义内表或直接使用DATA定义

如DATA: itab_mseg   LIKE TABLE OF mseg WITH HEADER LINE. 这个语句就是定义一个内表, 它的结构是mseg表的结果,它里面可以存放mseg表字段的数据。 在定义中, 我们使用到了WITH HEADER LINE 这个语句的意思是定义的这个内表的名字可以在操作内表时同时当作工作区使用,

 

Data begin of itab occurs 0,

         Name(10) type c,

     End of stru_ztaly.“内表


 

数据的展示通过把数据库的结果记录插入到内表,由内表循环到工作区进行展示

以上为个人新学习见解,如有误之处敬请指出.

下面为摘抄

1.内表和工作区都是变量,而构造是一种类型,是变量定义的时候参照用的。

2.构造是一种数据的描述,不是真实存在的变量,但是它定义了参照它定义的数据的样子。

3.内表是一种二维的数据变量(多条),工作区是一维的(单条),工作区可以被看作内表中的一条(一行)数据。


 

  • 内表清空

refresh itab    "清除内表数据
clear  itab      "清除没有headerline的内表数据,或者有headerline的内表工作区数据。
free itab      " 清除内表内容,并收回内存

  • 内表数据删除

(1) delete itab where name = 'northsnow'.
(2) delete itab index i.  (利用 sy-tabix)
(3)
loop at itab.
    delete itab.   相当于delete itab index i.  ,只不过是省略了 index i
endloop.          
或者
loop at itab.
    delete itab index sy-tabix.
endloop.      
 (4)delete itab from n1 to n2    (利用 sy-tabix)

(5) delete itab from wa   根据关键字删除

(6)  DELETE ADJACENT DUPLICATES FROM itab
         COMPARING fieldlist.  删除重复的数据

where 条件和 from to 条件可以同时使用,处理两个条件的交集

 

  • 内表记录数

(1)  data a type i.

       a = lines( itab ).

 

(2)  data a type i.

      describe table itab lines a.



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有