ABAP学习笔记(1)

ABAP语言是一个很方便,很简洁,很人性的语言,并不存在一些很难的知识,对于有语言基础的人来说仅仅是需要熟悉和转变风格而已。
     
今天就和大家谈谈ABAP中的STRUCTURE, WORK AREA HEADER LINEINTERNAL TABLE
首先谈谈STRUCTURE----结构体。
      
ABAP中定义一个结构体是利用TYPES来声明的,作用与其他语言中的结构体作用一样,就是制作一个需要的数据类型,比如。
       types: begin of structure,
                 name type c,
                 grade type i,
                 id type i,
                 end of structure.
 
这样就定义了一个结构体可以用来存放 一条 数据记录,那么定义这样的结构体有什么用呢?定义出这样的数据类型就是为了我们对数据库中的DICTIONARY TABLE操作而准备的。利用data声明我们就可以定义一个类型给这个结构体的数据了,例如:
       data
wa type structure.
     
这样我们就定义了一个数据,类型给我们所DECLARINGSTRUCTURE结构。那么您肯定要问了我们做这个定义这样一个数据有什么用呢?这下就不得不提我们ABAP中内表的概念了。
     
ABAP中内表是一个很重要的概念,除了DB中的字典表,那么用到最多的就是内表了,简单的说内表就是在程序中所虚拟的一个表,仅仅存在程序中,不会存放在数据库中,是为了方便数据调用的一种表。
     
内表分为两种,一种是有HEADER LINE另一种就是没有的。具有表头的内表可以直接将从字典表中SELECT的数据通过表头放入内表中,而没有表头的内表则不可以这样操作,需要有一个中转,所以我们所定义的WORK AREA在这里就派上用场了。各位看了我下面举的例子就能明白这两种内表的操作和数据流向有何不同了。
         1.
有表头的iter table
table student.
*(
定义一个结构体) ********************************************************
types: begin of structure,
                 name type c,
                 grade type i,
                 id type i,
                 end of structure.
*
(定义一个内表)******************************************
data: itab type standard table of structure initial 10 with header line.
*(
将字典表STUDENT中相应的数据LOADING到我们所定义的内表中)*************
select * from student.
move-corresponding student to itab.
append itab

endselect.
       2.
没有表头的内表:
table student.
*(
定义一个结构体) ********************************************************
types: begin of structure,
                 name type c,
                 grade type i,
                 id type i,
                 end of structure.
*
(定义一个WORK AREA*******************************
datawa type structure.
*
(定义一个内表)******************************************
data: itab type standard table of structure initial 10 .
*(
将字典表STUDENT中相应的数据LOADING到我们所定义的内表中)*************
select * from student.
move-corresponding student to wa .
append wa to itab

endselect.
         
通过以上的例子我们可以知道,我们定义一个结构体就是为了得到一种需要的数据类型,而这样的数据类型可以让我们定义work area和内表使用。在对内表进行读写的时候当是有表头的内表时,我们可以直接将字典表中的数据读入内表中,但是如果内表是没有表头的话我们需要用WA来进行中转,写到这里大家应该很好理解,简单的说表头和WA的作用都是起数据转录的中转作用,但是区别是一个是在表内一个是在表外,具体效率上的差别有兴趣的朋友可以自己尝试。
          
有头内表的数据流向:
              dictionary table=====
header line======internal table
          
无表头的数据流行为:
             dictionary=======
wa========iternal table

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值