ABAP基本语法
ABAP/4:Advanced Business Application Programming
1.表声明
Tables: 表名[,表名].  声明多个表时可用逗号分隔
当你声明了一个数据表的同时,系统也同时自动生成了一个和数据表同名的结构,结构的变量集等于数据表里面的字段。
2.定义变量
Data: v1[(l)] [type t] [decimals d] [value 'xxx'].
v1        是变量名。
  (l)          是变量的长度。
  t            是数据类型。
  d        是小数位。
  'xxx'        是缺省值。
如:data num(10) type p decimals 3 value '1.12'.
数据类型
描述
缺省长度
最大长度
可用字符
缺省值
C
字符型
1
65536
任意字符
N
数字文本
1
65536
0 ~ 9
0
D
日期
8(固定)
-
0 ~ 9
00000000
T
时间
8(固定)
-
0 ~ 9
000000
X
十六进制数
1
65536
0 ~ 9,A ~ F
数据类型
描述
缺省长度
最大长度
最大小数位
缺省值
I
整型
4(固定)
-
0
0
P
十进制数
8
16
14
0
F
浮点型
8
8
15
0.1
3.常用算术操作符:
算术符
描述
+
加法
-
减法
*
乘法
/
除法
**
取幂
DIV
整除
MOD
取模
4.常用比较操作:
wa字符串是什么
比较操作
描述
v1 = v2
等于
v1 <> v2
不等于
v1 > v2
大于
v1 < v2
小于
v1 >= v2
大于等于
v1 <= v2
小于等于
v1 between v2 and v3
在……之间
not v1 between v2 and v3
不在……之间
5.赋值语句
total = 10.
mess = 'this is a test! '.
如果字符串中包括 ' 号,用 '' 进行付值,如:mess = 'this is a ''test''! '.
6.IF语句
if i = 2.
  write 'i 等于 2'.
[else.
  write 'i 不等于 2'. ]
endif.
7.CASE语句
case i.        类似于VFP中的DO CASE语句
    when 1. write 'i = 1'.
    when 2. write 'i = 2'.
    [when others. write 'i <> 1 and i <> 2'.]
endcase.
8.DO语句
do [n] times.  类似于VFP中的FOR语句
  [执行代码]
enddo.
9.WHILE语句
while [条件].  类似于VFP中的DO WHILE语句
      [执行语句]
endwhile.
10.从数据库中取数据集
select * from 数据表 [where 条件].
    [操作语句]
endselect.
如:select * from t000 [where mandt < 200]. 
        write: / t000-mandt,t000-mtext.
    endselect.
11.取出单行记录
select single * from 数据表 [where 条件].    注:仅取出符合条件的第一行记录
select single 字段 from 数据表 into 变量 [where 条件].
12.WRITE语句
write: [/][定位][数据1][,[定位] [数据2]]……
[/] 为插入一行空行,注意单独write一个[/]和在其它数据之前加 [/] 的效果是不一样的,单独的write[/]在插入空行后光标定位在空行的下面,在其它数据前加[/]在插入空行后光标定位于所插的空行。
13.ULINE语句
uline.            在当前行下一行显示一直线。
uline  n.        在当前行第n列显示一直线。
uline /n.        在当前行下一行第n列显示一直线。
uline 和 write  | 一起使用可实现画表格的功能。
14.SKIP语句
SKIP.            光标跳到下一行。
SKIP n.          光标跑到下n行。
SKIP to line n.  光标跳到第n行。
15.定义常量
作用:定义一些不会改变的数据,如一年的月数、圆围率等。
语法:constants c1[(l)] [type t] [decimals d] value 'xxx'.
或者:constants c1 like cv value 'xxx'.
例如:constants pi type p value ‘3.14’.
16.定义结构
(1)基本结构
data: begin of 结构名,
      f1[(l)] [type t] [decimals d] [value 'xxx'],
      f2[(l)] [type t] [decimals d] [value 'xxx'],
      ……
end of 结构名.
(2)结构中包含另一结构
data: begin of 结构名,
      f1[(l)] [type t] [decimals d] [value 'xxx'],
      f2[(l)] [type t] [decimals d] [value 'xxx'],
      f3 like 另一结构名,
      ……
end of 结构名.
(3)定义结构的另一种写法:
data begin of 结构名.
data f1[(l)] [type t] [decimals d] [value 'xxx'].
data f2[(l)] [type t] [decimals d] [value 'xxx'].
[include structure 另一个结构.]
data end of 结构名.    注:此种写法data后可以加冒号也可以不加
例如:
data:begin of person,
    educ(10) type c,
    train(10) type c,
end of person.
data:begin of employee,
    code(10) type c,
    name(10) type c,
    department(20) type c,
    address like person,  "person为另一个结构名
    ……
end of employee.
employee-code = '1001'.
employee-name = '张三'. 
employee-department = 'IT部'.
employee-person-educ = '本科'
employee-person-train = '工程师'
write: / employee-code,employee-name,employee-department,employee-person-educ.
write: / employee.
17.TYPES语句
将结构定义成数据类型,这样在程序中可以象定义一个变量那样简单地定义一个结构。语法同定义结构,只是把data换成types即可。
如:
types: begin of employee,
      code(10) type c,                             
      name(10) type c,
end of employee.
types: address(50) type c.
data: emp type employee.      “使用TYPES定义的结构类型
data: myadd type address.    “使用TYPES定义的变量类型
emp-code = '1001'.
emp-name = '张三'. 
myadd = 'this is a address'.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。