接下来几篇文章我们来学习一下ABAP变量定义部分的内容。定义部分总共包括三部分:变量/常量,工作区域,内部表。程序为什么要定义呢。有编程经验的学员应该知道,只有定义过的变量/常量,才能使用,没定义的话,编译是不过通过的。而且定义的时候要指定类型,长度等等。这些我们在后面会慢慢介绍,今天先介绍一下变量是如何定义的。首先什么是变量。
变量是可以存放单一的数值。这个数值在程序中是可以变化的。所以叫变量,看看是如何定义变的。定义的时候有好几种方法的。
1,参照已有的数据库,结构体,值类型等进行定义。例:
a,直接参照数据库
DATA: WK_LIFNR TYPE EKKO-LIFNR,
解释:指把WK_LIFNR定义成跟表EKKO类型LIFNR一样的结构。比如EKKO-LIFNR的是长度为10的文本型的话,WK_LIFNR也是长度为10的文本型。
b,直接参照element
DATA: WK_LIFNR TYPE LIFNR,
解释:指把WK_LIFNR定义成跟elemetn: LIFNR一样的结构。比如LIFNR的是长度为10的文本型的话,WK_LIFNR也是长度为10的文本型。
c,直接定义成系统结构类型
DATA: WK_UPDDATE TYPE SY-DATUM.
解释:指把WK_UPDDATE定义成跟系统字段一样SY-DATUM的结构。可用SE11参看结构SYST的字段DATUM的类型。
二,直接利用SAP数据类型定义值类型DATA: WK_TX_TTL(20) TYPE C VALUE 'ABCDE'.表示类型是C,长度为20,初期值为ABCDE
DATA: WK_RECNUM TYPE I VALUE 123.表示类型为I,初期值为123
DATA: WK_TIMES TYPE P DECIMALS 3.表示类型为P,小数位为3
DATA: WK_SEQNO(5) TYPE N.表示类型为N,长度为5
DATA: WK_INSDATE TYPE D.表示类型为D
DATA: WK_INSTIME TYPE T.表示类型为T
DATA: WK_MENGE_F TYPE F.表示类型为F
DATA: WK_FILENAME TYPE STRING.表示类型为STRING